今天配置CentOS Mysql数据库时发现奇怪的现象:
在CentOS上安装好MysqL数据库,在CentOS本机上可以连到MySQL,但是在局域网的机器上连centos的时候,奇怪的现象就开始了,
从centos上打开mysql数据库查看user表,
select host,user,password from user ;有这样显示:
Host User Password
localhost root
127.0.0.1 root
localhost.domain root
按照远程连接方法修改之后
Host User Password
% root
localhost root
127.0.0.1 root
localhost.domain root
这时候远程机器上不用密码可以访问到centos上的Mysql,但是一旦加上密码
Host User Password
% root 123456
localhost root
127.0.0.1 root
localhost.domain root
远程访问centos的mysql就禁止了,经过反复测试,发现Mysql的数据插入原来是使用了加密,关键是他有几个用户,比如localhost
这个他就没有加密,所以在本地上访问没问题,但是%这个远程访问的用户,Mysql就使用了加密,
即使是在centos上看到密码是123456
远程访问的密码也不会是123456,因为Mysql已经加密了。
实际上mysql的远程连接是在远程登录的机器上输入密码的时候,mysql就将输入的密码加密,然后再与数据库里面的密码对比。
要解决这个问题也很简单
只要先把centos上的密码设置为空,然后用远程机器登录,再重新设置密码如123456,这时候你看到的数据库里面的密码就已经是加了密的字符串了,这时,你可以再用其它的电脑使用设置的密码123456远程登录了。。。。
如果要在centos的mysql设置密码,那输入的就要是123456加密了的字符串。可惜的是我现在还不知道mysql是使用哪种加密方式。。。。谁研究过的,给我看看。。。。