linux 命令行查看mysql的庫字符集是utf8,查詢某個表時,仍然是顯示不了中文,
之后使用了命令 mysql>set names utf8;就可以正常顯示中文了。
如何才更好的使mysql支持顯示中文呢?
第一,創建table的時候就使用utf8編碼;
create table entries2 ( id int auto_increment, title text, content text, posted_on datetime, primary key (id) ) character set = utf8;
第二,修改已經有的table的編碼
當使用默認編碼創建了一個table的時候,是不能支持中文的,這時候使用如下語句對table_name進行修改:
alter table table_name convert to character set utf8;
此后再往這個table插入中文的時候,就可以正常存儲和讀取了,但不知道為什么之前的亂碼還是不能糾正,只能新插入的數據沒有問題。
第三,修改mysql的配置文件,讓mysql默認編碼為utf8
在我的ubuntu機器上,mysql的配置目錄為/etc/mysql
而我們mysql使用的配置文件為
/etc/mysql/my.cnf
我們可以直接加在my.cnf中,當然為了方便移植可復用,也可以如下寫在獨立的配置文件中。
在my.cnf最后又include了 conf.d/ 下面所有的*.cnf文件,所以我們就在conf.d/下面加上一個我們自己的配置文件wy_sql.cnf
添加如下兩行
[mysqld] character-set-server=utf8
再創建表的時候默認編碼就是utf8了。
第四,如何查看一個database,一個table的編碼
查看database的編碼,假如database名字為webpy:
show create database webpy;
查看一個table的編碼,假如table名為entries2:
show create table entries2;