MySQL中文乱码

 


 

一、中文乱码案例

1.1.发现乱码:

MariaDB [relay01]> select * from relay_test;
+------+------+
| id   | city |
+------+------+
|    1 | ??   |
+------+------+
1 row in set (0.00 sec)

 1.2.查看字符集

检查表的编码格式:
MariaDB [relay01]> show create table relay_test\G
*************************** 1. row ***************************
       Table: relay_test
Create Table: CREATE TABLE `relay_test` (
  `id` int(10) DEFAULT NULL,
  `city` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1

检查MysqL支持的字符集:
MariaDB [(none)]> 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/ |
+--------------------------+----------------------------+

检查数据库实例对应的编码:
MariaDB [relay01]> show create  database relay01;
+----------+--------------------------------------------------------------------+
| Database | Create Database                                                    |
+----------+--------------------------------------------------------------------+
| relay01  | CREATE DATABASE `relay01` /*!40100 DEFAULT CHaraCTER SET latin1 */ |
+----------+--------------------------------------------------------------------+
1 row in set (0.00 sec)

二、解决中文乱码

2.1.设置认编码utf8:

[root@master01 ~]# cat /etc/my.cnf
添加两行代码:
[MysqLd]
#解决中文乱码
init-connect='SET NAMES utf8'
character-set-server = utf8
重启数据库
[root@master01 ~]# systemctl restart mariadb.service 

2.2.登录数据库操作

进行如下五步操作:
将涉及的数据库的表手动修改字符集
1.查看当前数据库字符集:
show VARIABLES like 'character%';
2.修改数据库字符集:
alter database 数据库名 character set utf8mb4;
3.修改表字符集:
ALTER TABLE  表名 DEFAULT CHaraCTER SET utf8 COLLATE utf8_general_ci;
4.修改涉及的字段认字符集:
--如果不修改字段属性,之前认的字段编码方式可能是latin1
alter table relay_test modify 字段名varchar(10); 
5.测试验证(发现已经解决乱码问题):
MariaDB [relay01]>  select * from relay_test;
+------+--------+
| id   | city   |
+------+--------+
|    1 | ss     |
|    1 | 宿舍   |
+------+--------+
2 rows in set (0.00 sec)

MariaDB [relay01]> 

2.3.检查编码格式

MariaDB [(none)]> show variables like 'character%'
    -> ;
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

 

 


 

相关文章

安装开始...1.打开“https://dev.mysql.com/downloadsepo/yu...
安装Helm3#官网下载慢#wgethttps://get.helm.sh/helm-v3.5.4...
通过Linux命令行启动用的指令:systemctlstartmariadb.servi...
InstallingMariaDBServer10.4TodeployMariaDBCommunityServe...
阅读目录一什么是存储引擎二mysql支持的存储引擎三使用存储引...
1、安装MariaDB安装命令yum-yinstallmariadbmariadb-server安...