JDBC查询条件为中文时出错解决
2013-05-02 16:36
225 查看
JDBC查询条件为中文时结果集为空,一直以为是程序的问题,但是在数据库中执行可以,最终发现出现这种问题的原因是MySQL的配置文件中默认字符集没有更改,由于有些Linux主机安装时自带MySQL,而安装的默认字符字不一定都是UTF-8,所以更改默认字符集其实很重要,DBA应该对号入座。
更改方法:
修改mysql的默认字符集是通过修改它的配置文件来实现的。一般分两种情况:
[编辑]
Windows平台
windows下的mysql配置文件是my.ini,一般在C:\Program Files\MySQL\MySQL Server 5.0
default-character-set=gbk #或gb2312,big5,utf8
然后重新启动mysql
运行->services.msc->停止MySql->启动 OK
或
/etc/init.d/mysql restart
或用其他方法重新启动,就生效了。
[编辑]
Unix平台
linux下的mysql配置文件是my.cnf,一般是/etc/my.cnf,如果找不到可以用find命令找一下:
find / -iname my.cnf
在这个文件里面加上
default-character-set=gbk #或gb2312,big5,utf8
然后重新启动mysql
net stop mysql
net start mysql
方法二:
MySQL (mysql5)的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。
查看系统的字符集和排序方式的设定可以通过下面的两条命令:
mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
配置/etc/my.cnf文件:(linux 下local为UTF-8);
找到客户端配置[mysql] 在下面添加
default-character-set=utf8 默认字符集为utf8
在找到[mysqld] 添加
default-character-set=utf8 默认字符集为utf8
再执行:show variables like '%character%';
通过MySQL命令行修改:
mysql> set character_set_client=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_connection=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_database=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_results=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_server=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_system=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> set collation_connection=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> set collation_database=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> set collation_server=utf8;
Query OK, 0 rows affected (0.01 sec)
查看:
mysql> show variables like 'character_set_%';
utf8 改为 gb2312
重启mysql :
如何启动/停止/重启MySQL
启动、停止、重启 MySQL 是每个拥有独立主机的站长必须要撑握的操作,下面为大家简单介绍一下操作方法:
一、启动方式
1、使用 service 启动:service mysqld start
2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start
3、使用 safe_mysqld 启动:safe_mysqld&
二、停止
1、使用 service 启动:service mysqld stop
2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop
3、mysqladmin shutdown
三、重启
1、使用 service 启动:service mysqld restart
2、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart
更改方法:
修改mysql的默认字符集是通过修改它的配置文件来实现的。一般分两种情况:
[编辑]
Windows平台
windows下的mysql配置文件是my.ini,一般在C:\Program Files\MySQL\MySQL Server 5.0
default-character-set=gbk #或gb2312,big5,utf8
然后重新启动mysql
运行->services.msc->停止MySql->启动 OK
或
/etc/init.d/mysql restart
或用其他方法重新启动,就生效了。
[编辑]
Unix平台
linux下的mysql配置文件是my.cnf,一般是/etc/my.cnf,如果找不到可以用find命令找一下:
find / -iname my.cnf
在这个文件里面加上
default-character-set=gbk #或gb2312,big5,utf8
然后重新启动mysql
net stop mysql
net start mysql
方法二:
MySQL (mysql5)的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。
查看系统的字符集和排序方式的设定可以通过下面的两条命令:
mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
配置/etc/my.cnf文件:(linux 下local为UTF-8);
找到客户端配置[mysql] 在下面添加
default-character-set=utf8 默认字符集为utf8
在找到[mysqld] 添加
default-character-set=utf8 默认字符集为utf8
再执行:show variables like '%character%';
通过MySQL命令行修改:
mysql> set character_set_client=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_connection=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_database=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_results=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_server=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_system=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> set collation_connection=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> set collation_database=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> set collation_server=utf8;
Query OK, 0 rows affected (0.01 sec)
查看:
mysql> show variables like 'character_set_%';
utf8 改为 gb2312
重启mysql :
如何启动/停止/重启MySQL
启动、停止、重启 MySQL 是每个拥有独立主机的站长必须要撑握的操作,下面为大家简单介绍一下操作方法:
一、启动方式
1、使用 service 启动:service mysqld start
2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start
3、使用 safe_mysqld 启动:safe_mysqld&
二、停止
1、使用 service 启动:service mysqld stop
2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop
3、mysqladmin shutdown
三、重启
1、使用 service 启动:service mysqld restart
2、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart
相关文章推荐
- 解决Oracle 查询条件带中文 出错问题
- (完美解决)PL/SQL显示乱码-无法进行中文条件查询解决
- 关于oracle中无法查询中文条件的解决办法
- PLSQL显示乱码-无法进行中文条件查询解决
- 解决pl/sql developer 中文字段显示乱码或无法用中文作查询条件的问题
- PLSQL显示乱码-无法进行中文条件查询解决
- PLSQL显示乱码-无法进行中文条件查询解决
- 解决hql语句查询条件为中文时结果集为空,为英文查询条件时不为空的问题
- 客户端用plsql进行中文条件查询时无结果的解决办法
- JDBC查询条件中包含中文,无查询结果(编码问题)
- PLSQL显示乱码-无法进行中文条件查询解决
- 不修改SQL_Latin1_General_CP1_CI_AS 字符集 解决中文条件查询问题
- 数据库where查询条件是中文时查找无结果的解决方法
- java中sql查询条件为中文时,rs.next为false,查询不到结果的解决办法
- MySQL 中文显示乱码以及中文查询条件返回0条结果的问题解决
- jdbc连接数据库,查询条件为汉字,查询无结果解决办法
- PLSQL显示乱码-无法进行中文条件查询解决
- 写了一个查询数据库的程序,不熟的Tomcat6。查询条件为英文时运行正常,为中文时出现乱码。后在tomcap的server.xml中加入useBodyEncodingForURI="true解决了问题
- PLSQL无法进行中文条件查询解决
- 客户端用plsql进行中文条件查询时无结果的解决办法