mysql中insert数据编码错误问题

错误描述:

在数据表中插入数据(含有中文字符),结果提示“(1406, "Data too long for column 'name' at row 1")”??

解决方法:

这个问题是编码造成的问题,

use guest  //切换到该数据库

show variables like 'charater_set_database'  //查看该数据库编码


原来是安装mysql时没有把字符编码设为utf8和gb2312,而且在建立数据库时直接使用create database guest也没有为其设置编码。

alter database guest character set utf8;   //修改数据库guest的编码,修改为utf8

show variables like 'character_set_database';  //再次查看修改后的数据编码


建立数据库时最好指定编码方式为utf8:

create database guest default set utf8 collate utf8_general_ci;   //创建数据库guest,指定编码是utf8
use guest                                       //切换到guest数据库
create table sign_event(
	id int not null,
	name varchar(255) not null,
	sex varchar(255) not null,
	primary key(id)
);                                              //创建sign_event 表
insert into sign_event values(1,'测试','男');  //插入数据成功,不会提示(1406, "Data too long for column 'name' at row 1")了
另一种方法:

安装完mysql之后,到其安装目录,找到my.ini配置文件,从上往下找,将第一个编码(57行)改为gbk,第二个编码改(81行)为utf-8 。
这种方法需要重启mysqld

重启mysqld:

方法1:计算机--》管理(右键)--》服务与应用程序--》服务--》mysql(右键就可以重启、关闭mysqld)

方法2:dos命令行下,先关闭mysqld:net stop mysql 

                                              启动mysqld:net start mysql

              Windows下不能直接重启mysql服务,只能先关闭后启动!!

启动mysqld提示如下错误:


mysql在mysql启动时要读取mysql的配置文件my.ini,提示1067是因为无法读取配置文件,该文件缺少mysql服务启动exe文件配置,可能上面修改配置文件的编码方式错了。

重新修改该编码方式如:utf-8改为utf8,保存即可。

在centos中:service mysql  stop 关闭mysqld;

service mysql start 启动mysqld;

service mysqld restart   直接重启mysqld

====================================================

django 开发中数据库迁移到mysql后出现编码问题??解决方案:

采用django自带的SQLite3数据没问题,当数据迁移到mysql后插入中文字符数据,出现(1406, "Data too long for column 'name' at row 1")这个问题,这个是由于mysql的编码方式引起的,通过上面内容修改mysql的编码方式为utf8后,

  • 删除原来出现问题的数据库,drop database guest
  • 重新创建数据库:create database guest 
  • 查看编码方式:show variables like '%character%';  ======》utf8
  • 重新迁移数据库到mysql:> python manage.py migrate
  • 重新设置django密码:  > python manage.py createsurperuser
  • 那就可以insert中文字符了

http://blog.csdn.net/ethan706/article/details/40435309

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值