工作原因,常常不能实现完全的线上化(即,所有数据都在线上完成,不需要导入导出),而导出Excel常常比修炼成仙还慢,因此,我们将数据库文件导出到本地使用的时候,常常使用
工作原因,常常不能实现完全的线上化(即,所有数据都在线上完成,不需要导入导出),而导出Excel常常比修炼成仙还慢,因此,我们将数据库文件导出到本地使用的时候,常常使用的方法的是导成CSV格式。
而csv格式的也常常出现导出的中文乱码,或者蹿行等问题,从而陷入两难境地。老板要数据,你却导不出来,急死人了。
1.问题:我们原本要把如左图所示的数据库中的数据导出成他原本的样子,无奈成了右边的乱七八糟的东西;
2.解决:
a:原本怎么导出为csv的还是怎么导;
b:选中你导出的csv文件,右键选择打开方式为【记事本】;
c:文件-->另存为-->编码选择UTF-8-->保存;(文件名和保存类型都不需要改,点击保存之后会提示该文件已存在,是否替换,选择【是】就好)
d:打开刚刚保存的文件,只是这次选择打开方式为excel,然后数据就会像你数据库里的样子一样,干干净净(如下图)。
补充知识:mysql的备份--导入导出--并解决乱码问题
1.导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u dbuser -p dbname > dbname.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u dbuser -p dbname users> dbname_users.sql
3.导出一个数据库结构
mysqldump -u dbuser -p -d --add-drop-table dbname >d:/dbname_db.sql
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库
1) 从 文件恢复到数据库
mysql -uroot -p dbName < fileName
例如:从 test.sql 恢复到 数据库db1
mysql -uroot -p db1 <test.sql
2) 常用source 命令 进入mysql数据库控制台,
如 mysql -u root -p mysql>use 数据库 然后使用source命令
后面参数为脚本文件(如这里用到的.sql)
mysql>source d:/dbname.sql
5.解决导出乱码
例如:
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数据迁移中的乱码问题就解决了。
以上这篇快速解决mysql导出scv文件乱码、蹿行的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持每日运维。