mysql8默认字符编码_mysql默认字符编码问题

在mysql中导入一个2m多的数据db.sql,由于.sql 文件不是自己写的,在win下用mysql命令行客户端导入时一直提示错误。

开始导入一直崩溃:mysql server has gone away

在my.ini中添加:max_allowed_packet = 10m  顺利解决。

继续导入,又提示:

error 1064 (42000): you have an error in your sql syntax; check the manual that corresponds to your mysql server version for the right syntax to use near '95鏋夎垂闈掓槬婕?',374,'757','2010-10-' at line 1

错误提示单引号附近有问题,查看文档发现这地方的单引号已经用反斜杠转义了,应该不会有问题,为了调试过去我索性把单引号删除,测试还是不行,

error:incorrect string value:'\xb1250\xe9\x83...' for column 'good_name' at row 1.

查看.sql文件的编码格式是utf-8,没有问题,我建表的时候指定字符格式是utf-8,

刚才因为在客户端插入中文数据,执行了set names gbk;

马上设置成utf-8 :set names utf8

重新导入:source  c:/db.sql

顺利通过

总结:

1,在导入或执行一个过大sql语句是,相应的max_allowed_packet参数应增大。

2,导入数据时,数据文件编码要和数据表编码、mysql客户端编码一致。

相关链接:

mysql字符编码设置问题

linux下mysql字符编码问题的解决方法

mysql默认字符编码的设置

mysql的默认编码是latin1,不支持中文,那么如何修改mysql的默认编码呢,下面以utf-8为例来说明

需要注意的是,要修改的地方非常多,相应的修改方法也很多。下面是一种最简单最彻底的方法:

一、windows

1、中止mysql服务

2、在mysql的安装目录下找到my.ini,如果没有就把my-medium.ini复制为一个my.ini即可

3、打开my.ini以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭

4、启动mysql服务

二、linux

1、中止mysql服务(bin/mysqladmin -u root shutdown)

2、在/etc/下找到my.cnf,如果没有就把mysql的安装目录下的support-files目录下的my-medium.cnf复制到/etc/下并改名为my.cnf即可

3、打开my.cnf以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭

4、启动mysql服务(bin/mysqld_safe &)

修改后,mysql一切相关的默认编码均为utf-8了,创建新表格的时候无需再次设置

注意,当前数据库中已存在的数据仍保留现有的编码方式,因此需要自行转码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值