您好,登錄后才能下訂單哦!
MySQL中數據庫亂碼一般進行字符集的設定即可,但是亂碼可以出現在各個階段,所以這篇文章整理一下亂碼出現的各個階段以及對應方法。
建庫/建表時添加charset設定
建庫
CREATE DATABASE 數據庫名稱 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
建表
create table 表名(字段構成詳細列表信息) default charset=utf8;
客戶端顯示
locale
確認locale設定是否為UTF8方式,一般服務器端沒有問題,僅在客戶端存在問題。或者一部分客戶端有問題,往往就是客戶端顯示設定存在問題。
確認命令:locale
mysql設定
使用show variables like ‘%character%'進行確認,一般修改character_set_database和character_set_server可以僅在當前session修改設定
使用mysql命令可以進行session范圍內的字符集設定
確認命令(mysql):show variables like '%character%'
局部設定
僅在當前session起作用,設定方式為:
set character_set_database=utf8
全局設定
多個session起作用的設定方式為:
set global character_set_database=utf8
當然session方式會再數據庫重啟后失效,需要持久化保存,同樣的設定要設定到mysql的配置文件my.cnf中即可.
這樣在創建數據庫或者創建數據庫表的時候缺省就是指定的utf8了
如果是純粹的顯示問題,很多時候還有可能是由于character_set_results設定顯示的。
使用show variables like ‘%character%'進行確認,如果設定不正確,可以使用如下方式解決
set character_set_results='utf8';
數據庫數據導出
一般使用mysqldump進行數據庫導出會使用如下命令
mysqldump -u用戶名 -p用戶密碼 數據庫名稱 >mysqlbackup.sql
如果出現亂碼,可以實現添加如下Option
mysqldump -u用戶名 -p用戶密碼 --default-character-set=utf8 數據庫名稱 >mysqlbackup.sql
如果含有blob類型,則需要使用hex-blob選項進行mysqldump導出
mysqldump -u用戶名 -p用戶密碼 --hex-blob 數據庫名稱 >mysqlbackup.sql
數據庫數據導入
導入的時候如果出現問題,也可考慮添加字符級的設定
mysql -u用戶名 -p用戶密碼 --default-character-set=utf8 數據庫名稱 <mysqlbackup.sql
也可使用如下方式,導入之前執行如下命令
set names utf8;
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。如果你想了解更多相關內容請查看下面相關鏈接
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。