方法1:通過客戶端修改表字段的默認字符集
目前創(chuàng)新互聯(lián)公司已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計、井陘網(wǎng)站維護等服務(wù),公司將堅持客戶導向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
打開SQLyog客戶端,連接數(shù)據(jù)庫如下圖所示,點擊connection 按鈕 連接數(shù)據(jù)庫
我的數(shù)據(jù)庫名稱為edu,然后我隨意找到數(shù)據(jù)庫中test2表,右鍵-----》Alter Table
如果安裝數(shù)據(jù)庫的 時候 沒有選擇字符集設(shè)置,那么mysql數(shù)據(jù)庫默認為latin1,在箭頭部分選擇utf8字符集
方法2:用數(shù)據(jù)庫命令修改字符集
首先查看當前數(shù)據(jù)庫字符集,在命令框中執(zhí)行如下命令:show variables like 'character_set_%';
查看字符集排序設(shè)置,執(zhí)行命令:show variables like 'collation_%';
修改服務(wù)器級別字符集,執(zhí)行命令:
1,臨時修改:SET GLOBAL character_set_server=utf8;
修改表級別,命令如下:ALTER TABLE table_name DEFAULT CHARSET utf8;
修改數(shù)據(jù)庫級別,命令如下:use edu(換成你要修改的數(shù)據(jù)庫名,在這里我的數(shù)據(jù)庫為edu),,然后執(zhí)行命令:alter database edu character set utf-8;
或者修改mysql的my.ini文件中的字符集鍵值
[mysql]
[mysqld]
重啟mysql
如何修改mysql表字段的字符集
關(guān)鍵字:字符集gbkutf8開始表W的字符集設(shè)置成了gbk,但是現(xiàn)在的建的表要求字符集為utf8。于是:alter table `W` default character set utf8;或者ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;但是發(fā)現(xiàn)其中一個字段CONTENT的字符集還是gbk。于是更改mysql數(shù)據(jù)庫表中某個字段的字符集,修改字段的定義:alter table `W` modify column `CONTENT` varchar(30) character set utf8 not null;
1)修改數(shù)據(jù)庫默認字符集,例如:
alter database Test default character set gb2312;
2)修改數(shù)據(jù)表的默認字符集,例如:
alter table t1 default charset=gb2312;
mysql如何更改數(shù)據(jù)庫字符編碼?借助客戶端工具很容易就可以更改了,下面來看一下。
打開navicat客戶端工具,在左邊找到要更改的數(shù)據(jù)庫。
右鍵點擊這個數(shù)據(jù)庫,在菜單上點擊數(shù)據(jù)庫屬性選項。
在彈出的屬性窗口上,點擊默認字符集下的下拉框。
在彈出的下拉選項里,點擊選中要使用的字符集就行了,比如選擇常用的utf8字符集,點擊ok按鈕就行了。
Liunx下修改MySQL字符集:
1.查找MySQL的cnf文件的位置
find / -iname '*.cnf' -print
/usr/share/mysql/my-innodb-heavy-4G.cnf
/usr/share/mysql/my-large.cnf
/usr/share/mysql/my-small.cnf
/usr/share/mysql/my-medium.cnf
/usr/share/mysql/my-huge.cnf
/usr/share/texmf/web2c/texmf.cnf
/usr/share/texmf/web2c/mktex.cnf
/usr/share/texmf/web2c/fmtutil.cnf
/usr/share/texmf/tex/xmltex/xmltexfmtutil.cnf
/usr/share/texmf/tex/jadetex/jadefmtutil.cnf
/usr/share/doc/MySQL-server-community-5.1.22/my-innodb-heavy-4G.cnf
/usr/share/doc/MySQL-server-community-5.1.22/my-large.cnf
/usr/share/doc/MySQL-server-community-5.1.22/my-small.cnf
/usr/share/doc/MySQL-server-community-5.1.22/my-medium.cnf
/usr/share/doc/MySQL-server-community-5.1.22/my-huge.cnf
2. 拷貝 small.cnf、my-medium.cnf、my-huge.cnf、my-innodb-heavy-4G.cnf其中的一個到/etc下,命名為my.cnf
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
3. 修改my.cnf
vi /etc/my.cnf
在[client]下添加
default-character-set=utf8
在[mysqld]下添加
default-character-set=utf8
4.重新啟動MySQL
[root@bogon ~]# /etc/rc.d/init.d/mysql restart
Shutting down MySQL [ 確定 ]
Starting MySQL. [ 確定 ]
[root@bogon ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.22-rc-community-log MySQL Community Edition (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
如果用戶想改變表的默認字符集和所有的字符列的字符集到一個新的字符集,使用下面的語句:
ALTER
TABLE
tbl_name
CONVERT
TO
CHARACTER
SET
charset_name;警告:上述操作是在字符集中轉(zhuǎn)換列值。如果用戶在字符集(如
gb2312)中有一個列,但存儲的值使用的是其它的一些不兼容的字符集(如
utf8),那么該操作將不會得到用戶期望的結(jié)果。在這種情況下,用戶必須對每一列做如下操作:
ALTER
TABLE
t1
CHANGE
c1
c1
BLOB;
ALTER
TABLE
t1
CHANGE
c1
c1
TEXT
CHARACTER
SET
utf8;
這樣做的原因是:從
BLOB
列轉(zhuǎn)換或轉(zhuǎn)換到
BLOB
列沒有轉(zhuǎn)換發(fā)生。
如果用戶指定以二進制進行
CONVERT
TO
CHARACTER
SET,則
CHAR、VARCHAR
和
TEXT
列將轉(zhuǎn)換為它們對應(yīng)的二進制字符串類型(BINARY,VARBINARY,BLOB)。這意味著這些列將不再有字符集,隨后的
CONVERT
TO
操作也將不會作用到它們上。
如果僅僅改變一個表的缺省字符集,可使用下面的語句:
ALTER
TABLE
tbl_name
DEFAULT
CHARACTER
SET
charset_name;
DEFAULT是可選的。當向一個表里添加一個新的列時,如果沒有指定字符集,則就采用缺省的字符集(例如當ALTER
TABLE
...
ADD
column)。
ALTER
TABLE
...
DEFAULT
CHARACTER
SET
和
ALTER
TABLE
...
CHARACTER
SET
是等價的,修改的僅僅是缺省的表字符集。