如何解决:mysql中文查询不出结果(软件与SQL语句都正常)
2017-09-29 09:31
681 查看
问题描述:(mysql)用英文作为查询关键字,所有都正常,用中文作为关键字查询不到,同时也不报错,另外通过日志打印,中文也无乱码,数据库也没有出现乱码,数据库的字符集与软件的字符集一样(这里假设都是utf-8)
问题分析:
首先描述中排除了软件问题,数据库与软件的字符集不一致问题。
那么,基本可以分析问题的方向:还是字符集的问题,一定是哪里还有默认的字符集没有设置(我们不知道而已)。
问题解决:
mysql有一个默认的启动配置,有个字符集需要设置,试试解决方案吧。
方法:修改mysql的安装目录的my.ini文件的字符集,并重启mysql(详细步骤如下)
例如我的安装目录是C:\Program Files (x86)\MySQL\MySQL Server 5.5(如果不知道,可以这么找:快捷键win+r(或开始-运行)->输入 services.msc ->找到mysql服务->右键查看属性->找到安装目录)
打开my.ini文件,修改以下内容(背景色的,将其修改为你要的字符集,我这里使用的是utf8),保存文件。
.....................
重启mysql(快捷键win+r(或开始-运行)->输入 services.msc ->找到mysql服务->右键菜单->重新启动)
你再试试吧。
问题分析:
首先描述中排除了软件问题,数据库与软件的字符集不一致问题。
那么,基本可以分析问题的方向:还是字符集的问题,一定是哪里还有默认的字符集没有设置(我们不知道而已)。
问题解决:
mysql有一个默认的启动配置,有个字符集需要设置,试试解决方案吧。
方法:修改mysql的安装目录的my.ini文件的字符集,并重启mysql(详细步骤如下)
例如我的安装目录是C:\Program Files (x86)\MySQL\MySQL Server 5.5(如果不知道,可以这么找:快捷键win+r(或开始-运行)->输入 services.msc ->找到mysql服务->右键查看属性->找到安装目录)
打开my.ini文件,修改以下内容(背景色的,将其修改为你要的字符集,我这里使用的是utf8),保存文件。
.....................
[client] port=3306 [mysql] default-character-set=utf8 # SERVER SECTION # ---------------------------------------------------------------------- # # The following options will be read by the MySQL Server. Make sure that # you have installed the server correctly (see above) so it reads this # file. # [mysqld] # The TCP/IP Port the MySQL Server will listen on port=3306 #Path to installation directory. All paths are usually resolved relative to this. basedir="C:/Program Files (x86)/MySQL/MySQL Server 5.5/" #Path to the database root datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/" # The default character set that will be used when a new schema or table is # created and no character set is defined character-set-server=utf8 # The default storage engine that will be used when create new tables when default-storage-engine=INNODB # Set the SQL mode to strict sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
.......... 9bd9 .................
重启mysql(快捷键win+r(或开始-运行)->输入 services.msc ->找到mysql服务->右键菜单->重新启动)
你再试试吧。
相关文章推荐
- 解决:hibernate+mysql中文查询不出结果,SQL语句也正常
- hibernate+mysql中文查询不出结果,其他查询正常,SQL语句也正常
- 【转】如何解决plsql查询oracle数据库语句where条件带有中文无法匹配结果
- mysql的sql查询语句含有中文,rs.next()就false的解决办法
- mysql 的优化(如何查询mysql中执行效率低的sql语句)
- CenOS下mysql5.6修改字符编码,解决sql语句中带有中文,会乱码问题
- struts+hibernate+mysql HQL语句查询带中文的查询不出数据的解决方法
- Linux下,sqlplus中查询结果中文乱码问题的解决 实战
- 探讨:MySQL中如何查询当前正在运行的SQL语句
- JSP+Servlet+tomcat6.0+mysql中查询英文正常,但是中文查不出结果也不报错
- Mysql中文乱码以及导出为sql语句和Excel问题解决
- 在使用Hibernate时,因为一个查询需要更多的表连接而要使用SQL来解决性能问题。然而返回的结果集中包含了没有映射的Entity类中的表字段,在这个SQL中还有使用如何将层次关系的父子结点显示为横行
- PHP连接MySQL查询结果中文显示乱码解决方法
- 关于mysql中sql语句查询不区分大小写的解决办法
- MySQL5.6 如何优化慢查询的SQL语句 -- SQL优化
- linux下使用mysql,查询出来的结果中文显示不正常的解决方案
- Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]
- MYSQL 字符编码不对导致查询语句含有中文就出错的解决办法
- PHP连接MySQL查询结果中文显示乱码解决方法
- MySQL的一个一条SQL语句查询所有不同种类产品的一部分结果实例的SQL语句