MySQL的架构介绍之修改数据库编码格式
1、配置文件介绍
#编写时间:2017.3.6
#编写地点:广州
上一篇文章可知mysql的配置文件在:/usr/share/mysql,其中/usr/share/mysql/my-huge.cnf是mysql的重要配置文件,MySQL的配置文件有如下,分别用于不同的硬件环境。一般把my-huge.cnf文件拷贝到/etc/my.cnf中,my-huge.cnf留作备份,而/etc/my.cnf才是系统正真启动执行的配置文件。配置文件详细介绍可以看这篇文章:http://www.05bk.com/280.html
拷贝命令:cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
my-small.cnf (内存 <= 64M)
my-medium.cnf (内存 128M)
my-large.cnf (内存 512M)
my-huge.cnf (内存 1G-2G)
my-innodb-heavy-4G.cnf (内存 4GB)
1、修改数据库编码格式
(1)先插入中文字符“张三”,出现乱码
use db01;
create table user(id int not null,name varchar(20));
show tables;
insert into user values(1,'zhangsan');
insert into user values(1,'张三');
select * from user;
(2)查看默认字符集
进入mysql执行以下命令:
方式1:show variables like '%char%';
方式2:show variables like 'character%';
(3)修改/etc/my.cnf配置文件中的编码格式
需要在/etc/my.cnf文件中添加以下内容,然后重启mysql。
[client]
#password = your_password
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8
[mysqld]
port = 3306
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_ci
[mysql]
no-auto-rehash
default-character-set=utf8
重启MySQL:
再在db01数据库插入中文,还是显示乱码,但是新建一个db02数据库,插入中文显示正常。原因是在mysql设置字符编码前的数据库还保持原因字符格式,不会将其改变,对之后建立的数据库才起作用,所以新建好的数据库一定要先设置相关配置,比如字符集格式。