对于Ubuntu18.04
,使用apt install mysql-server
安装的mysql
,系统默认的字符编码是latin1
,这个字符集并不支持中文,输入中文时会出现乱码甚至错误,因此可以修改字符编码为常用的utf8
、支持emoji
的utf8mb4
编码集、GBK
等。
- 进入数据库,有两条命令可以查看当前数据库的编码集。
show variables like 'character%';
status;
-
修改默认编码
-
Ubuntu
绝大多数系统和相关服务的配置文件都在etc
目录下,默认情况下,mysql
的配置文件在/etc/mysql/
目录下
-
进入
/etc/mysql
文件夹,查看当前文件夹的文件
mysql配置文件# 进入 /etc/mysql/文件夹 cd /etc/mysql/ # 查看当前文件夹下的文件以及目录 ls -l
mysql.cnf
就是mysql
的配置文件。 -
查看
mysql.cnf
的内容# 查看文件内容并展示行号 cat -n mysql.cnf
mysql.cnf
是mysql
的基础配置文件,在最后引用了两个文件/etc/mysql/conf.d/
(client端)和/etc/mysql/mysql.conf.d/
(server端)-
编辑
server
端的编码集vim /etc/mysql/mysql.conf.d/mysqld.cnf
- 在
skip-external-locking
下面添加character-set-server = utf8
-
重启
mysql
/etc/init.d/mysql restart
-
进入
方式1 方式2mysql
,查看是否已经修改默认编码 -
创建数据库、数据表并查看编码
展示创建数据库的默认编码# 创建名为 db_test 的数据库 create database db_test; # 展示创建数据库时的信息 show create database db_test;
展示创建数据表的默认编码 查看插入数据是否有误use db_test; # 创建名为 test 的数据表 create table test( test_id int not null primary key auto_increment comment '测试id', test_name varchar(32) not null comment '测试姓名' ); # 展示创建数据表时的信息 show create table test;
-
-
修改默认的排序规则
-
查看数据库的默认排序规则
-
查看默认排序规则show variables like 'collation%';
-
-
可以通过编辑
server
的/etc/mysql/mysql.conf.d/mysqld.cnf
文件来修改默认排序规则-
编辑mysqld.cnfvim /etc/mysql/mysql.conf.d/mysqld.cnf
-
collation-server=utf8_unicode_ci
- 以
utf8_unicode_ci
为例,一般都是utf8_general_ci
- 以
-
重启
mysql
/etc/init.d/mysql restart
-
-
查看排序规则
show variables like 'collation%';
-
-
修改
mysql
编码的坑- 不能修改
client
端的字符集,否则将会不能输入中文
- 修改
mysql.cnf
- 添加
default-charcter-set = utf8
-
sql
语句不能输入中文,但是英文可以
- 不能修改
网友评论