mysql的乱码问题主要出现在, 以下4方面:
1、jdbc 的url设定的字符编码问题
2、Mysql server编码问题
3、table 设定的编码问题
4、Mysql Client编码问题
一、 规避出现乱面的方式:
1、在创建数据库时制定编码集
CREATE DATABASE `zkcfg` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
2、创建数据表时制定数据集
CREATE TABLE tb_datacfg ( dataId Varchar (200) not null, data Text not null, createTime TIMESTAMP null, creator Varchar (32) null, modifyTime TIMESTAMP null, modifier Varchar (32) null, primary key (dataId) )ENGINE=InnoDB default charset utf8 collate utf8_general_ci;
二、问题排查
1、 如果已经创建好数据表,这时出现乱码问题,就需要自己排查,方法如下:
mysql> show variables like "%char%"; +--------------------------+----------------------------+ | 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/ | +--------------------------+----------------------------+
上面的结果表明database 与 server的编码都是latin1编码需要修改配置,使用以下语句:
SET character_set_database='utf8'; SET character_set_server='utf8';
2、 查看你所创建数据库的编码
mysql> show create database zkcfg; +----------+------------------------------------------------------------------+ | Database | Create Database | +----------+------------------------------------------------------------------+ | zkcfg | CREATE DATABASE `zkcfg` /*!40100 DEFAULT CHARACTER SET latin1 */ | +----------+------------------------------------------------------------------+
结果表明zkcfg数据的编码为latin1,需要修改为utf-8,语句如下:
ALTER DATABASE `zkcfg` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
3、修改my.cnf文件添加如下配置
[client] port = 3306 socket = /var/lib/mysql/mysql.sock default-character-set=utf8 [mysql] default-character-set=utf8 [server] character_set_server=utf8 [database] character_set_database=utf8
修改完my.cnf文件之后需要重启mysqld服务;
service mysqld restart
完结
相关推荐
MySQL中文乱码问题解决方案,彻底解决mysql中的中文乱码问题
MySql中文乱码问题 Mysql建库建表 Mysql建库建表中文乱码问题 Mysql中文乱码问题解决方案
经过痛苦的折腾,找到了快速解决mysql烦人的中文乱码问题的办法。希望对大家有所帮助。
linux mysql中文乱码问题,通过修改my.cnf文件,重启mysql服务解决。
主要是数据库方面的编码修改,jsp还有tomcat中的修改很简单,这里不做赘述了。
java插入mysql中文乱码解决
解决mysql乱码问题。主要是数据库查询出数据中文为问号???的问题。
Mysql中文乱码问题完美解决方案
解决Navicat for MySql 导入EXCEL中文乱码问题解决的有效方法
关于MySQL中文乱码的解决方法完善版。
mac OSX 系统 MySQL中文乱码解决办法
使用 docker 启动 mysql 容器可能会出现中文乱码的情况,这里记录如何制作支持中文的 mysql 镜像 docker版本:18.06 mysql 版本:5.7 1. 创建 my.cnf 文件 [client] default-character-set=utf8 [mysql] default-...
本文介绍了在mysql安装时选择了utf8编码方式,创建数据库时也选择了utf8,但是通过程序向数据库中插入数据时,仍存在乱码问题的解决方法
MySQL数据库系统中文乱码问题及解决方案.pdf
网上很多关于mysql运行sql语句乱码的解决方法,都没有很好的解决这个问题,经本人不断努力,不断尝试,终于解决这个问题。如有这个问题出现,可参考此文档。
个人总结了遇到使用Mysql数据库插入中文时产生乱码问题的解决方法
史上最全的PHP+MySql中文乱码解决方案
针对于mysql数据库,解决表中中文乱码的问题
Java写入MySQL中文乱码解决方法.docx