求助MYSQL5.0的问题,远程数据库,在用COMMAND LINE中用SQL插入数据时出现错误
发布网友
发布时间:2022-05-04 14:48
我来回答
共6个回答
懂视网
时间:2022-05-04 19:09
下面是我遇到的问题,截图如下,最后的解决办法如下:在int数字的字段上加上一个“像单引号的东西”, 注意,并不是单引号,单引号仍然会报错。 另外,float类型的字段也会有这样的,float数字的字段也要加上这种像单引号的东西。 特别是float这个字段,我总
下面是我遇到的问题,截图如下,最后的解决办法如下:在int+数字的字段上加上一个“像单引号的东西”,
注意,并不是单引号,单引号仍然会报错。
另外,float类型的字段也会有这样的,float+数字的字段也要加上这种像单引号的东西。
特别是float这个字段,我总感觉是mysql的bug,只有float4的时候是不可以
当然今天在命令行中创建表的时候,还发现,Varchar类型的字段必须指定字符串的长度:如下图
热心网友
时间:2022-05-04 16:17
对于数据库级的字符集,如果没有办法重建数据库,可以在my.cnf文件中使用character-set-server = utf8(要重启数据库服务),对于之前已经存在数据库,此参数不产生影响。如果之前的数据库A是latin1,在A中创建的表默认还是latin1,除非指定DEFAULT CHARSET!然而对于新建的数据库,则继承 my.cnf文件中使用character-set-server = utf8!
[root@rac3 ~]# more /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
old_passwords=1
character-set-server = utf8
关闭数据库服务,并重新启动!
[root@rac3 ~]# mysqladmin shutdown
[root@rac3 ~]# mysqld_safe &
[1] 15102
[root@rac3 ~]# Starting mysqld daemon with databases from /var/lib/mysql
[root@rac3 ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.45 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show variables like '%server%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| character_set_server | utf8 |
| collation_server | utf8_general_ci |
| server_id | 0 |
+----------------------+-----------------+
3 rows in set (0.00 sec)
--重新建立数据库,查看其默认字符集:为utf8
mysql> create database yql;
Query OK, 1 row affected (0.00 sec)
mysql> use yql;
Database changed
新建表的默认字符集和数据库的默认字符集一致!
mysql> create table t(id int);
Query OK, 0 rows affected (0.00 sec)
mysql> show create table t;
+-------+-------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-------------------------------------------------------------------------------------+
| t | CREATE TABLE `t` (
`id` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 |
+-------+-------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> show create database yql \G;
*************************** 1. row ***************************
Database: yql
Create Database: CREATE DATABASE `yql` /*!40100 DEFAULT CHARACTER SET utf8 */
1 row in set (0.00 sec)
ERROR:
No query specified
热心网友
时间:2022-05-04 17:35
字符集冲突导致中文乱码,你可以把set names gbk放到全局文件里,这步不能省,要不然把你的数据库连接,数据库表的字符集,页面编码,http头的字符集都统一改成gbk,那样更费事。
热心网友
时间:2022-05-04 19:10
data too long for column 'name' 你插入的数据肯定超过name字段的长度了。追问不是。新建表的时候设的是varchar(50),40个英文字符都不会出现这个错误,但是一个中文字符都会出现这个错误。
追答哦?等会测试一下。
热心网友
时间:2022-05-04 21:01
设置字段的内 容为TEXT,即为文本字段 然后就好了
热心网友
时间:2022-05-04 23:09
设置字段的内容为TEXT,即为文本字段