My local 10.20.12.190 mysql -uhellow -h 10.20.72.190 -p rrt147
Or mysql -uroot -prrt147
用户hellow 配对ip10.20.72.143使用
Root 配对localhost使用。错位不行。Why?
下面的spring配置是不行的,Access denied for user 'hellow'@'localhost' (using password: YES)
spring.datasource.monitor.url=jdbc:mysql://localhost:3306/xgsdk_monitor_db?useUnicode=true&characterEncoding=UTF-8
spring.datasource.monitor.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.monitor.username=hellow
spring.datasource.monitor.password=rrt147
将localhost换成ip 10.20.72.143
为啥会出现上面的情况了。
从stackoverflow 搜索到
以及 MySQL 5.7 Reference Manual
http://dev.mysql.com/doc/refman/5.7/en/connection-access.html
总结如下:
Mysql 登录即为登录校验的过程。
读取msql.user表到内存,排序 host, user .
如果有多个匹配的则以排序的第一个为准。
注:匿名的用户,例如 ‘’@’localhost’ ‘’@’127.0.0.1’ 都可以匹配’hello’@localhost’ 因为’’可以匹配任何用户。
User host
hellow %
root 127.0.0.1
root ::1
localhost
root localhost
hellow localhost
从我的user表中的user,host两列可以得知,如果登录为’hellow’@’localhost’,那么就会
匹配到’’@’localhost’这个匿名的用户。
其实这里有点不对。User表排序之后是这样的:
localhost root
localhost
::1 root
127.0.0.1 root
如上所示,应该会匹配到第一行的,那这样就不会出现问题了。
为啥还会出现Access denied的问题呢?
通过查询 select * from mysql.user where User='hellow';
发现 两组host,user 密码不一致。
Host user
localhost hellow
% hellow
统一密码后就可以了。现在用户hellow用localhsot, ip都可以登录了。