Windows中cmd登錄mysql導入sql文件出現中文亂碼

Windows中cmd登錄mysql導入sql文件出現中文亂碼。

日常工作中我們會通過cmd登錄mysql,然後執行sql文件,但發現如果插入語句中的值有中文,就會亂碼。這個事很頭疼。

現在給大家演示一下,並給出解決方法。

一、演示亂碼

1、首先找一個可以登錄的mysql, 我這裏是我本地安裝的。準備一個sql文件stu.sql,裏面寫上插入語句。

insert into `t_user` (`oid`, `username`, `password`, `realname`, `userstatus`, `usertype`, `systemid`, `createon`) values('111','111','5ecaced2eef10347cbaf15383799242b','測試','1','1','0','2015-06-03 10:18:31');
insert into `t_user` (`oid`, `username`, `password`, `realname`, `userstatus`, `usertype`, `systemid`, `createon`) values('222','222','e10adc3949ba59abbe56e057f20f883e','張三','0','0','32833','2015-06-04 15:16:03');
insert into `t_user` (`oid`, `username`, `password`, `realname`, `userstatus`, `usertype`, `systemid`, `createon`) values('333','333','e10adc3949ba59abbe56e057f20f883e','李四','1','0','32833','2015-06-23 15:08:11');
insert into `t_user` (`oid`, `username`, `password`, `realname`, `userstatus`, `usertype`, `systemid`, `createon`) values('444','444','e10adc3949ba59abbe56e057f20f883e','王五','1','1','163844','2015-06-23 18:13:38');

至於表t_user,你們可以自己弄一個。

2、打開cmd,登錄MySQL,命令爲:mysql -h 127.0.0.1 -P 3306 -u hive -p

3、查看數據庫,並選擇登錄用戶hive所在的數據庫

4、執行我們剛纔準備的sql文件。

source C:\Users\zhanglw\Desktop\stu.sql,寫好文件的全路徑,可以直接拖進cmd中

5、利用其它客戶端查看我們插入的數據,發現出現亂碼了

把插入的數據清理掉吧,亂碼了,不能用了。

二、解決方法

1、確定數據庫編碼,show variables like 'character_set_database';

一般都是utf8格式的

2、退出重新登錄,帶上編碼參數

mysql -h 127.0.0.1 -P 3306 -u hive -p --default-character-set=utf8

3、選擇數據庫,重新執行一下sql文件

4、再利用客戶端查詢

補充:

有人在cmd中直接查看,發現還是亂碼

是不是感覺很鬱悶???其實這裏出現亂碼是跟windows系統有關係。

1、查看windows編碼,採用chcp命令

我的活動代碼頁爲:936,它對應的編碼格式爲GBK。(另外說明:65001 爲utf-8代碼頁)

2、那麼就以gbk編碼方式登錄mysql

mysql -h 127.0.0.1 -P 3306 -u hive -p --default-character-set=gbk

查詢結果正常了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章