mysqld--character-set-server=gbk--collation-server=gbk_chinese_ci;
2、更改某个数据库的编码方式
mysql-uroot-p
alterdatabasecharactersetgbkcollategbk_chinese_ci
3、在创建数据库时指定编码:
mysql-uroot-p
createdatabasedb_namecharactersetgbkcollategbk_chinese_ci
4、更改某个表的编码方式
mysql-uroot-pdb_name
altertabletable_nameconvertto charachtersetgbkcollategbk_chinese_ci
5、在创建表时指定编码方式
mysql-uroot-pdb_name
createtabletable_name(....)charactersetgbkcollategbk_chinese_ci
6、更改某行的编码方式
mysql-uroot-pdb_name
altertabletable_namemodifycolumn_namevarchar(20)charactersetgbkcollategbk_chinese_ci
7、在创建列时指定编码方式:
</pre><prename="code"class="sql">mysql-uroot-pdb_name
createtabletable_name(...,col1varchar(20)charactersetgbkcollategbk_chinese_ci,...)charactersetutf8collateutf8_general_ci
mysql查看数据库编码,打开数据库命令行运行:show variables like 'char%'
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
从以上信息可知数据库的编码为latin1,需要修改为gbk或者是utf8;
其中,character_set_client为客户端编码方式;
character_set_connection为建立连接使用的编码;
character_set_database数据库的编码;
character_set_results结果集的编码;
character_set_server数据库服务器的编码;
只要保证以上四个采用的编码方式一样,就不会出现乱码问题。
1. 查看MySQL数据库的默认编码有如下两种方式,
(1)使用status命令
mysql>status
图1 status命令
(2)使用show variables命令
mysql>show variables like 'char%'
图2 show variables命令
如果要查看某个数据库的编码,在运行上面的命令前,应先执行use db_name命令切换数据库(db_name为要查看的数据库名)。
2. 改变MySQL数据库的默认编码
安装MySQL数据库时的默认编码是latin1,实际使用时可能要使用其他编码。下文描述如何将默认编码改为utf8:
首先修改MySQL的配置文件/etc/mysql/my.cnf:
在[client]下追加:
default-character-set=utf8
在[mysqld]下追加:
character-set-server=utf8
在[mysql]下追加:
default-character-set=utf8
修改完毕后,使用如下命令之一重启mysql服务:
service mysql restart
/etc/init.d/mysql restart
改变后,之前手工创建的数据库如未显式指定编码,则其编码仍是默认的latin1,可使用如下命令更改编码:
mysql>alter database db_name CHARACTER SET utf8
参考资料:
[1] http://www.2cto.com/os/201404/292378.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)