|
linux系统中
linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题。
解决mysql导入导出数据乱码问题
首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8,
例如下面的代码: 复制代码 代码如下:mysqldump -uroot -p --default-character-set=utf8 dbname tablename > bak.sql
那么导入数据的时候也要使用--default-character-set=utf8:
复制代码 代码如下:mysql -uroot -p --default-character-set=utf8 dbname < bak.sql
这样统一编码就解决了mysql数据迁移中的乱码问题了
我使用windows作为导出数据源,并导入 freebsd环境下的mysql库
解决方法:
导出数据
一、首先在windows平台下mysql用作导出数据库源。查看字符编码的系统变量:
复制代码 代码如下: mysql> show variables like ‘%char%'; +――――――――C+―――――――――-+ | Variable_name | Value | +――――――――C+―――――――――-+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | gbk | | character_set_system | utf8 | | character_sets_dir | D:mysqlsharecharsets |
+――――――――C+―――――――――-+
查看character_set_database,这里是latin1,latin1是装不了多字节字符集的
二、在windows下设置系统变量为utf8
复制代码 代码如下:mysql>set character_set_database=utf8; ##设置默认的字符集为utf8
三、导出数据
复制代码 代码如下:mysql> select * from table into outfile ‘c:table.txt' where +条件
这时导出了我想要的部分数据,并以txt文件存在 table.txt中。
导入数据
在freebsd平台下
一、同样设置字符编码的系统变量
复制代码 代码如下: mysql> show variables like ‘%char%';
+――――――――C+―――――――――-+ | Variable_name | Value | +――――――――C+―――――――――-+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | gbk | | character_set_system | utf8 |
+――――――――C+―――――――――-+
mysql>set character_set_database=utf8; ##设置默认的字符集为utf8
二、转载数据
复制代码 代码如下: mysql>load data local infile ‘/home/table.txt' into table `table`; 至此、条件数据完整导入导出,并处理了乱码的情况。 总之,两台mysql服务器导入导出时,一定要确保两台服务器的character_set_database参数相同,这样才能防止一些 乱码的情况。当然我们还可以使用其他字符集,如gbk来进行调整。视情况操作了
解决方法三
乱码解决方法 导入数据后,在命令行查看发现中文乱码 使用以下命令查看系统字符集
复制代码 代码如下:show variables like 'char%';
如果不是GBK或UTF8,则停止mysql服务,然后到安装目录修改my.ini文件, 将文件中下面的变量改成如下,如果没有这个变量则增加这些变量
复制代码 代码如下: [mysql] default-character-set=gbk
[mysqld] character-set-server=utf8
重新启动服务,重新导入数据,如果还乱码,
最后得出经验时只要把导入与导出编码统一一下就没问题了。
您可能感兴趣的文章:- Mysql命令行导入sql数据
- MYSQL 数据库导入导出命令
- mysql source 命令导入大的sql文件的方法
- mysqldump备份还原和mysqldump导入导出语句大全详解
- MySQL 文本文件的导入导出数据的方法
- MYSQL导入导出命令详解
- MYSQL数据库导入数据时出现乱码的解决办法
- PHP导入Excel到MySQL的方法
- MySQL数据库导出与导入及常见错误解决
- MySQL导入csv、excel或者sql文件的小技巧
(编辑:安卓应用网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|