linux 指令行檢視mysql的庫字元集是utf8,查詢某個表時,仍然是顯示不了中文,
之後使用了指令 mysql>set names utf8;就可以正常顯示中文了。
如何才更好的使mysql支援顯示中文呢?
第一,建立table的時候就使用utf8編碼;
create table entries2 (
idintauto_increment,
title text,
content text,
posted_on datetime,
primary key (id)
) characterset = 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;