Linux下安装的mysql数据库插入中文乱码或sql查询语句条件中有中文查不到数据
2017-08-19 17:43
876 查看
问题描述:Linux下的mysql数据库表中插入中文乱码,或sql查询语句条件中有中文查不到数据,但是数据表中已有的中文读取出来不乱码
解决方法如下,我在网上找了别人的解决方法,并整理了出来.
首先在登录mysql的情况向使用 show variables like ‘%char%’; 查看下当前编码,发现有的是utf8,有的不是,server和database都不是utf8,而是latin1,
![](https://oscdn.geek-share.com/Uploads/Images/Content/201708/19/69bf9704a1047bc4b1666cc2ff620b85)
我在网上找解决方法,说可以在mysql的配置文件中修改,文件为/etc/my.cnf.
可是在/etc 目录下找不到my.cnf 配置文件。最后查明了原因:
1、本机的mysql版本是5.6的,5.6及以上配置文件是my-default.conf ,5.5及以下版本为 my.cnf
2、本机的mysql安装包是rpm的,所以不会自带my.cnf 或者my-defaule.cnf
找到这两个原因就好解决了,从mysql的安装目录复制一份my-default.cnf 文件到 /etc/my.cnf
cp /usr/share/mysql/my-default.cnf /etc/my.cnf
(或者自己在etc下新建一个也行,添加下如下内容)
接着下一步修改my.cnf 文件配置如下(没有就加上):
:wq!
保存后,重启mysql服务:service mysql restart
重启成功后,使用 mysql -u root -p 登录客户端后,再查一下字符集:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201708/19/8180b2d9ee0a5e81f1d3eaa81c1cec29)
看到字符集已经改了,
创建一个数据库和数据表,插入一条中文数据,发现没问题了。
解决方法如下,我在网上找了别人的解决方法,并整理了出来.
首先在登录mysql的情况向使用 show variables like ‘%char%’; 查看下当前编码,发现有的是utf8,有的不是,server和database都不是utf8,而是latin1,
我在网上找解决方法,说可以在mysql的配置文件中修改,文件为/etc/my.cnf.
可是在/etc 目录下找不到my.cnf 配置文件。最后查明了原因:
1、本机的mysql版本是5.6的,5.6及以上配置文件是my-default.conf ,5.5及以下版本为 my.cnf
2、本机的mysql安装包是rpm的,所以不会自带my.cnf 或者my-defaule.cnf
找到这两个原因就好解决了,从mysql的安装目录复制一份my-default.cnf 文件到 /etc/my.cnf
cp /usr/share/mysql/my-default.cnf /etc/my.cnf
(或者自己在etc下新建一个也行,添加下如下内容)
接着下一步修改my.cnf 文件配置如下(没有就加上):
#/etc/my.cnf [client] default-character-set=utf8 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 #default-character-set=utf8 character-set-server=utf8 init_connect='SET NAMES utf8' [mysql] no-auto-rehash default-character-set=utf8 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
:wq!
保存后,重启mysql服务:service mysql restart
重启成功后,使用 mysql -u root -p 登录客户端后,再查一下字符集:
看到字符集已经改了,
创建一个数据库和数据表,插入一条中文数据,发现没问题了。
相关文章推荐
- 以中文为查询条件查询mysql数据库时有数据却查不到数据或者中文乱码的问题
- s2sh向数据库插入数据,控制台有打印sql语句,数据库查询不到数据问题
- MySQL数据库 查询表数据出现中文乱码 及 插入中文报错Incorrect string value问题解决方法
- MYSQL数据库(十)- 数据表的插入(insert)、删(delete)、改(update)、查(select)、group by 分组、having语句设置分组条件,order by查询结果排序,
- linux sqlplus查询数据中文乱码解决方法记录
- s2sh向数据库插入数据,控制台有打印sql语句,数据库查询不到数据问题
- plsql查询带中文的sql语句查询不到数据
- sql语句查询某列数据是否包含中文或英文
- Linux安装MySQL后找不到my.cnf原因以及从sql语句文件恢复数据库
- PL/SQL 查询和显示的数据 中文乱码
- oracle心得1--oracle简介@基本sql语句@条件查询@排序数据理论与案例
- 在SQLServer2005中使用SQL语句插入数据出现乱码或问号的解决方法
- Oracle学习之路(一):oracle简介+基本sql语句+条件查询+排序数据理论与案例
- 在SQL Server 2005(2008)中用T-SQL插入中文数据时出现的问号或乱码的解决方案
- oracle心得1--oracle简介@基本sql语句@条件查询@排序数据理论与案例
- oracle心得1--oracle简介@基本sql语句@条件查询@排序数据理论与案例
- 转:Linux安装MySQL后找不到my.cnf原因以及从sql语句文件恢复数据库
- 从一张带自增长列的表中按条件导出数据,并将结果重新编号,插入到另外一张表的sql语句
- T-SQL 语句插入中文数据时数据库显示全是问号“???”的解决方法(数据库编码规则)
- 在SQL 2005中用T-SQL插入中文数据时出现的问号或乱码的解决方案 .