快速解決mysql導(dǎo)出scv文件亂碼、躥行的問題
工作原因,常常不能實現(xiàn)完全的線上化(即,所有數(shù)據(jù)都在線上完成,不需要導(dǎo)入導(dǎo)出),而導(dǎo)出Excel常常比修煉成仙還慢,因此,我們將數(shù)據(jù)庫文件導(dǎo)出到本地使用的時候,常常使用的方法的是導(dǎo)成CSV格式。
而csv格式的也常常出現(xiàn)導(dǎo)出的中文亂碼,或者躥行等問題,從而陷入兩難境地。老板要數(shù)據(jù),你卻導(dǎo)不出來,急死人了。
1.問題:我們原本要把如左圖所示的數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出成他原本的樣子,無奈成了右邊的亂七八糟的東西;
2.解決:
a:原本怎么導(dǎo)出為csv的還是怎么導(dǎo);
b:選中你導(dǎo)出的csv文件,右鍵選擇打開方式為【記事本】;
c:文件-->另存為-->編碼選擇UTF-8-->保存;(文件名和保存類型都不需要改,點擊保存之后會提示該文件已存在,是否替換,選擇【是】就好)
d:打開剛剛保存的文件,只是這次選擇打開方式為excel,然后數(shù)據(jù)就會像你數(shù)據(jù)庫里的樣子一樣,干干凈凈(如下圖)。
補充知識:mysql的備份--導(dǎo)入導(dǎo)出--并解決亂碼問題
1.導(dǎo)出整個數(shù)據(jù)庫
mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 > 導(dǎo)出的文件名
mysqldump -u dbuser -p dbname > dbname.sql
2.導(dǎo)出一個表
mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 表名> 導(dǎo)出的文件名
mysqldump -u dbuser -p dbname users> dbname_users.sql
3.導(dǎo)出一個數(shù)據(jù)庫結(jié)構(gòu)
mysqldump -u dbuser -p -d --add-drop-table dbname >d:/dbname_db.sql
-d 沒有數(shù)據(jù) --add-drop-table 在每個create語句之前增加一個drop table
4.導(dǎo)入數(shù)據(jù)庫
1) 從 文件恢復(fù)到數(shù)據(jù)庫
mysql -uroot -p dbName < fileName
例如:從 test.sql 恢復(fù)到 數(shù)據(jù)庫db1
mysql -uroot -p db1 <test.sql
2) 常用source 命令 進(jìn)入mysql數(shù)據(jù)庫控制臺,
如 mysql -u root -p mysql>use 數(shù)據(jù)庫 然后使用source命令
后面參數(shù)為腳本文件(如這里用到的.sql)
mysql>source d:/dbname.sql
5.解決導(dǎo)出亂碼
例如:
mysqldump -uroot -p --default-character-set=utf8 dbname tablename > bak.sql
那么導(dǎo)入數(shù)據(jù)時也要使用--default-character-set=utf8:
mysql -uroot -p --default-character-set=utf8 dbname < bak.sql
統(tǒng)一編碼后,mysql數(shù)據(jù)遷移中的亂碼問題就解決了。
以上這篇快速解決mysql導(dǎo)出scv文件亂碼、躥行的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Oracle數(shù)據(jù)庫網(wǎng)絡(luò)與安全常見問題集錦2. 詳解Mysql 函數(shù)調(diào)用優(yōu)化3. 由淺至深講解Oracle數(shù)據(jù)庫 B-tree索引4. MySQL按指定字符合并以及拆分實例教程5. 實例驗證MySQL|update字段為相同的值是否會記錄binlog6. 分享Sql Server 存儲過程使用方法7. MySQL/MariaDB 如何實現(xiàn)數(shù)據(jù)透視表的示例代碼8. oracle19c卸載教程的超詳細(xì)教程9. MySQL 字符串函數(shù):字符串截取10. 解決MyBatis中Enum字段參數(shù)解析問題
