我在虚拟机上安装了redhat并安装了mysql数据库,并在本地通过java访问,直接使用jdbc访问。

首先是从无法远程连接开始的,虽然间接遇到一些问题。

后来发现当数据库存储汉字时存在乱码问题,随后在网上找资料进行解决,现在问题已经解决,来总结一下乱码的几个问题。

遇到就找出问题,发后总结发出来给大家分享,如果大家也有问题或者已经解决了,希望进行回复!

 

 

更改数据库默认字符集编码:

进行远程连接报错 1130

更改mysql配置文件,这个配置文件在/etc/my.cnf,可能安装mysql后这个文件就有了,如果没有,请回到根目录然后查询cnf文件:

在mysql数据库表user中记录了一些用户信息,里面的host指定了那些客户端可以访问。

Java代码  

如果是在Windows下安装且指定了可以远程访问,那么就不会出现该问题。

find / -iname ‘*.cnf’ -print  

解决方法就是修改访问权限:

 拷贝
small.cnf、my-medium.cnf、my-huge.cnf、my-innodb-heavy-4G.cnf其中的一个到/etc下,改名为my.cnf:

登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host”
列,从”localhost”改为’%’。

Java代码  

mysql -u root -p

cp /usr/share/mysql/my-medium.cnf /etc/my.cnf  

mysql>use mysql;

 拷贝路径根据查询出来的结果修改。

mysql>select ‘host’ from user where user=’root’;

修改my.cnf

mysql>update user set host = ‘%’ where user =’root’;

Java代码  

mysql>flush privileges;

vi /etc/my.cnf  

mysql>select ‘host’   from user where user=’root’;

 在[client]下添加

退出然后重启mysql服务!

Java代码  

 

default-character-set=gbk  

 

 在[mysqld]下添加

 

Java代码  

作者 cuisuqiang

default-character-set=gbk  

遇到就找出问题,发后总结发出来给大家分享,如果大家也有问题或者已经解决了…

 然后重启mysql。

登录mysql查询是否生效:

Java代码  

mysql> show variables like ‘collation_%’;  

mysql> show variables like ‘character_set_%’;  

注意如果你设置的是UTF-8请设置utf8,而不是utf-8,否则你的mysql重启时不能启动。

 

 

修改数据库字符集后再修改数据库的字符集:

Java代码  

mysql>use mydb  

mysql>alter database mydb character set gbk;  

 建议是在创建数据库时就指定字符集

Java代码  

mysql>create database mydb character set gbk;  

除了使用命令来修改数据的字符集,也可以修改其配置文件

修改 /var/lib/mysql/mydb/db.opt

Java代码  

default-character-set=latin1  

default-collation=latin1_swedish_ci  

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图