Skip to main content

Mysql数据库中文乱码

查看默认编码

show variables like "character_set_%"

修改默认编码

SET NAMES 'utf8';
它相当于下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

查看连接编码

show variables like "collation_%";

修改连接编码

set collation_connection=utf8_general_ci;
set collation_database=utf8_general_ci;
set collation_server=utf8_general_ci;

修改后查看编码

MariaDB [(none)]> show variables like "character_set_%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

MariaDB [(none)]> show variables like "collation_%";
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+

注意:

修改默认字符编码不会修改原有数据库的编码。

请用 show database 数据库名;和 show create table 表名;查看一下原有数据库和表的字符集是否为UTF8 ,

如果已经创建完成的表或者数据库通过ALTER进行修改

---修改某一个数据库
ALTER database sql_test character set utf8;

---修改某一个表
ALTER table sql_test character set utf8;

创建数据库 数据表指定编码

/*创建数据库的时候指定编码格式*/
MariaDB [lhc]> create database python_test character set utf8;


/*创建表的时候指定编码格式*/
MariaDB [lhc]> create table python_test(
-> id int(11),
-> name varchar(50) character set utf8,
-> class_time int(11),
-> PRIMARY KEY(id)
-> )DEFAULT CHARSET=utf8;

修改配置文件方法如下:

打开 /etc/my.cnf 搜索default-character-set,将后面的字符集修改为UTF8,注意要修改两个地方,一个事客户端的,一个是服务端的。

 指令:`vim /etc/my.cnf`,在  [mysqld]  下面添加一行代码
character_set_server=utf8
......

如果没有找到my.cnf文件,就从 /usr/share/mysql/ 中将 my-meduim.cnf 复制到 /etc/ 下并重命名为 my.cnf; cp/usr/share/mysql/my-medium.cnf /etc/my.cnf。

然后保存,重启mysql服务.