`
can_do
  • 浏览: 248200 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

解决MySQL采用mysqldump导出再导入时因中文乱码导致的失败问题

阅读更多
一、首先,描述下问题现象:
1、在Linux服务器端,通过mysqldump命令导出数据库文件后,再通过mysqldump导入文件,
出现导入失败的问题;
二、其次,分析问题原因:
1、在Linux命令行下,通过more或者vim查看导出的mysql文件abc.sql,发现里面的中文显示是乱码;
2、初步认为,是mysqldump文件时出现乱码?
3、但是通过部分导入成功入库的库表数据来看,排除导出的文件是乱码问题;
4、将dump文件abc.sql,sz到windows本机,通过文本编辑器notepad++查看,里面中文显示是正常的,
5、由此,定位到问题原因:dump文件的编码是ok的,只是由于在Linux终端操作时,出现乱码;
三、最后,解决步骤:
1、通过Linux命令locale确认当前服务器的字符集,发现不是utf8的;
   需要修正为:
$ locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
如果以上不是zh_CN.UTF-8,则vim /etc/profile设置如下:
=>export LANG=zh_CN.UTF-8
=>source /etc/profile
2、检查终端工具Xshell显示是否中文正常
$ ll
总用量 2996956
drwxrwxr-x. 9 can_do can_do        263 6月  17 20:42 application
drwxrwxr-x. 2 can_do can_do        234 6月  18 19:32 db
drwxrwxr-x. 2 can_do can_do         38 6月  18 11:28 deploy
drwxrwxr-x. 3 can_do can_do         77 6月   2 14:55 installedware
drwxrwxr-x. 2 can_do can_do         57 6月  20 10:41 temp
此处:能看到中文显示正常,则ok,否则,下一步
3、设置终端工具支持的字符集为UTF-8
XShell-->File-->Properties-->Terminal-->Encoding==>Unicode(UTF-8)
4、查看从mysql导出文件是否中文乱码,通过more或者vim查看即可
此时:查看dump的sql文件,中文显示正常。
5、通过mysqldump import执行成功

【小结】
1、Linux下vim或者more乱码解决原则:要求如下一致
1> Linux字符集
2> 终端工具字符编码
3> 文件内容编码
三个一致,建议都按utf-8配置,中文处理是正常的。

2、建议在服务器端执行mysqldump命令,这样效率更高。

3、补充mysqldump命令如下:
1> 单库export
$ mysqldump -u root -p'yourpassword' -B yourDBName > /home/username/db/`date +%F`/yourDBName_`date +%F`.sql
2> 单库import
$ mysql -u root -p'yourpassword'  < //home/username/db/yourDBName_20200620.sql

【温馨提示】
如果您觉得满意,可以选择支持下,您的支持是我最大的动力:

分享到:
评论

相关推荐

    mysql导入导出数据中文乱码解决方法小结

    解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上–default-character-set=utf8, 例如下面的代码: 代码如下:mysqldump -uroot -p –default-character-set=...

    Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]

    一、导出数据。...错误没治了,最终找到解决方案,可以指定mysql的mysqldump,路径为:/usr/local/mysql/bin/mysqldump,这样是把数据导出为sql语句的insert语句。 由于需要是把数据导出为excel,所以通过

    实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法

    中文全是乱码。咋回事呢?搜索了一下,改变什么连接属性啥的。不管用。试着在单张表上,转储sql,嘿,中文正常。但是82个表,我一个个转储我不累死。不行。看来只能弃用我心爱的navicat了。想起有个mysqldump,好试

    快速解决mysql导出scv文件乱码、蹿行的问题

    而csv格式的也常常出现导出的中文乱码,或者蹿行等问题,从而陷入两难境地。老板要数据,你却导不出来,急死人了。 1.问题:我们原本要把如左图所示的数据库中的数据导出成他原本的样子,无奈成了右边的乱七八糟的...

    解决MySQL中文乱码以及版本不一致问题

    一、导出数据  先说明一下自己的环境:Mac OS X 10.8.3,MySQL Community ...  错误没治了,终找到解决方案,可以指定mysql的mysqldump,路径为:/usr/local/mysql/bin/mysqldump,这样是把数据导出为sql语句的inse

    mysql升级教程文档

    mysql升级教程文档。• in-place upgrade: • 适合小版本的升级。...• 即:使用mysqldump 或 mydumper 导入导出数据,实现版本的升级。 • 特点:可以跨操作系统,跨大版本;但,升级速度慢,容易出现乱码等问题。

    mysql使用source 命令乱码问题解决方法

    今天从windows上导出一个sql执行文件,再倒入到unbutn中,结果出现乱码,折腾7-8分钟, 解决方式 在导出mysql sql执行文件的时候,指定一下编码格式: 代码如下: mysqldump -uroot -p –default-character-set=utf8 ...

    mysql 中文乱码 解决方法集锦

    第一个方法: MySQL 4.1 中文乱码的问题 最近要将 MySQL 4.0 升级到 MySQL 4.1 ,发现了中文乱码的问题,希望以下见解对大家有用。 1. MySQL 4.1 在文字上有很大改进,它有了 Character Set 与 Collation 的慨念。 2...

    完美转换MySQL的字符集 解决查看utf8源文件中的乱码问题

    本人转换过好多数据了,也用过了好多的办法,个人感觉最好用的就是使用MySQL命令导出导入中将字符集转换过去! 现在我将用图文并茂的方式向大家展示一下如何将MySQL字符集进行转换,由于字符集比较多,现在主要举GBK和...

    MySQL的备份工具mysqldump的基础使用命令总结

    这几天用phpMyAdmin备份数据库的时候出现乱码,反复在本地跟远程的Dreamhost空间上测试了数据库,但是还是导出数据库会出现乱码,应该是phpMyAdmin出现的问题,数据库本身没有问题.扯远咯,呵呵.我Google到的关于...

    MySQLDBA运维笔记.pdf

    mysql 总结........................................................................................................................................6 1.1 数据库的种类.......................................

Global site tag (gtag.js) - Google Analytics