Mysql数据库插入中文出现乱码相关

查看数据库编码的命令:show variables like "character%";
mysql> show variables like "character%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

  有关上面八个character_set相关的变量表明的意思:html

1. character_set_client
主要用来设置客户端使用的字符集。
2. character_set_connection
主要用来设置链接数据库时的字符集,若是程序中没有指明链接数据库使用的字符集类型则按照这个字符集设置。
3. character_set_database
主要用来设置默认建立数据库的编码格式,若是在建立数据库时没有设置编码格式,就按照这个格式设置。
4. character_set_filesystem
文件系统的编码格式,吧操做系统上面的文件名转化成此字符集,即把character_set_client转换character_set_filesystem,默认binary不作任何转换。
5. character_set_results
数据库给客户端返回时使用的编码格式,若是没有指明,使用服务器默认的编码格式。
6. character_set_server
服务器安装时指定的默认编码格式,这个变量建议由系统本身管理,不要认为指定。
7. character_set_system
数据库系统使用的编码格式,这个值一直时utf8,不须要设置,它是存储系统元数据的编码格式。
8. character_sets_dir
这个变量是字符集安装的目录。python


 

修改指定编码为utf-8,在/etc/mysql/my.cnf中添加如下内容,添加完后重启mysql服务(sudo systemctl restart mysql)。mysql

[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] collation-server = utf8_unicode_ci init-connect='SET NAMES utf8' character-set-server = utf8

已经建立的表里面的字符集尚未被改过来。sql

mysql> show create table tbl_dept; +----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                                                   |
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tbl_dept | CREATE TABLE `tbl_dept` ( `dept_id` int(11) NOT NULL AUTO_INCREMENT, `dept_name` varchar(255) NOT NULL, PRIMARY KEY (`dept_id`) ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1 |
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> alter table tbl_dept convert to character set utf8;数据库

Query OK, 6 rows affected (0.18 sec)
Records: 6 Duplicates: 0 Warnings: 0服务器

mysql>
mysql> show create table tbl_dept;
+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tbl_dept | CREATE TABLE `tbl_dept` (
`dept_id` int(11) NOT NULL AUTO_INCREMENT,
`dept_name` varchar(255) NOT NULL,
PRIMARY KEY (`dept_id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 |
+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)编码

须要使用如下修改语句url

查看表编码
show create table tbl_dept;
修改表编码
alter table tbl_dept convert to character set utf8;spa

 

 

 

 

参考:https://blog.csdn.net/sun8112133/article/details/79921734操作系统

           https://dev.mysql.com/doc/refman/5.7/en/faqs-cjk.html

           http://www.pianshen.com/article/663784398/

      https://www.cnblogs.com/lynlovehyl/articles/6642792.html  

相关文章
相关标签/搜索