mysql預設字元編碼設定教程:my.ini設定字元編碼
轉載2016-06-07 21:49:26
標籤:mysql
本文介紹了MySQL資料庫中預設字元編碼的設定方法,如何設定與修改mysql預設編碼,my.ini設定字元編碼的教程,需要的朋友參考下。
本節重點:
mysql基礎配置之mysql的預設字元編碼的設定(my.ini設定字元編碼)
mysql的預設編碼是latin1,不支援中文。
怎麼修改mysql的預設編碼?本文以utf-8預設編碼修改為例來介紹。
注意,修改mysql預設編碼的方法,要修改的地方非常多,相應的修改方法也很多。
為大家分享一種最簡單最徹底的修改mysql預設編碼的方法,一起來看看吧。
一、windows系統下面
1、中止mysql服務
2、mysql設定編碼命令:
set names 'utf8';
然後 mysql> SHOW VARIABLES LIKE '%char%'; 你可以看到全變為 utf8 。
但是,這只是一種假象
此種方式只在當前狀態下有效,當重啟資料庫服務後失效。
所以如果想要不出現亂碼只有修改my.ini檔案,
3、在mysql的安裝目錄下找到my.ini,如果沒有就把my-medium.ini複製為一個my.ini即可。
開啟my.ini以後,
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8 或 character-set-server=utf8
注: 若使用character-set-server=utf8 語句可免去下面步驟(親測可行)
如圖
[mysqld]標籤處使用 ‘character-set-server=utf8’效果
以上3個section都要加default-character-set=utf8,平時我們可能只加了mysqld一項。儲存並關閉.
在data/performance_schema目錄下的: db.opt檔案:
default-character-set=utf8
default-collation=utf8_general_ci
4、啟動mysql服務,由於資料庫在開始配置時,我選擇的編碼是utf8,所以在這裡使用 show variables like '%char%'; 結果顯示編碼均為utf8
mysql> SHOW VARIABLES LIKE '%char%';
確保所有的Value項都是utf8即可。
但是可惡的事情又來了,
|character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8
注意 該配置| character_set_server | latin1 無法設定成UTF8 互動時候仍然會出現亂碼。
第二階段:找到下面這東東
X:\%path%\MySQL\MySQL Server 5.0\bin\MySQLInstanceConfig.exe
重新啟動設定,將預設編碼設定為utf8.這樣就能達到我們所要的效果了。
mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+ | character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set
修改已有表格編碼
alter table map_data modify province varchar(32) character set utf8;
另外注意事項:
1、建表時加utf8,表字段的Collation可加可不加,不加時預設是utf8_general_ci了。
2、網頁xxx.php/jsp儲存時選擇utf8編碼,頁頭最好加上
header('conten-type:text/html;charset=utf-8');
在執行CRUD操作前先執行一下
mysql_query("set names utf8");
-------------------------
連線資料庫設定編碼
jdbc:mysql://地址:3306/資料庫名?characterEncoding=utf8
-------------------------
Java中的常用編碼UTF-8;GBK;GB2312;ISO-8859-1;
對應mysql資料庫中的編碼utf8;gbk;gb2312;latin1
二、linux系統下面(這部分只是轉載,沒嘗試過)
1、中止mysql服務(bin/mysqladmin -u root shutdown)
2、在/etc/下找到my.cnf,如果沒有就把mysql的安裝目錄下的support-files目錄下的my-medium.cnf複製到/etc/下並改名為my.cnf即可
3、開啟my.cnf以後,在[client]和[mysqld]下面均加上default-character-set=utf8
,儲存並關閉
4、啟動mysql服務(bin/mysqld_safe &)
提示:當前資料庫中已經存在的資料仍保留現有的編碼方式,因此需要自行轉碼。
注意:如果是高版本的mysql中,增加時,將mysql預設編碼修改為utf-8呢?只需在my.ini中的[mysqld]組名的末尾新增:character-set-server=utf8即可。
mysqld:unknown variable 'default-character-set=utf8'的錯誤原因是什麼?因為引數:default-character-set=utf8 在較新版本的mysql 中已移除。建議高版本的mysql使用”character-set-server“,而不要使用“default-character-set”。