一、中文乱码案例
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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。