当前位置: 首页 > 工具软件 > mysqldump-php > 使用案例 >

mysql 导出gbk_mysqldump指定编码导出数据,GBK编码实践

龚勇锐
2023-12-01

第一步,导出旧库

mysqldump --default-character-set latin1 -uroot -pXXX --database db > /tmp/old.sql

第二步,转换编码

iconv -t utf-8 -f gb2312 -c /tmp/old.sql > /tmp/new.sql

第三步,导入新库

修改new.sql,增加一条sql语句: "SET NAMES utf8;",保存。

mysql -hlocalhost -uroot db < new.sql

来自:PHP高级技术群 8745758

Gbk编码导出这个Mysql的注释也就对了:

view plaincopy to clipboardprint?

1.mysqldump --default-character-set gbk -d db_adc t_tst_sum_info > /tmp/old.sql

而存入的时候是:

要想显示 正常,需要在Mysql Client输入:

1.set names latin1;

再select数据也就正常了。是表存的内容是latin1,而这个表结构的注释是gbk编码的,所以这块还是多少有一些问题;

证明:

1,只导出数据:

mysqldump --default-character-set gbk -t db_adc t_tst_sum_info > /tmp/old.sql 理论是乱码,实践出也是乱码。

mysqldump --default-character-set latin1 -t db_adc t_tst_sum_info > /tmp/old.sql 理论上是正常,实践也是正常。

充分说明这个表的结构注释和表内容是不一样的,要想一样,得统一为lation,或者gbk,但历史原因都是lation,所以,统一为lation较好。

最后:尽管说明这样两种编码是可以的,但是还是可以统一为lation的,线上我也就发现是可以的。

 类似资料: