记录一次Mysql GRANT PRIVILEGES 授权未生效,报错1045 - Access denied for xxx
Logon denied for user/password.
Able to find the database server and database, but the login request was rejected.
原因:
GRANT ALL PRIVILEGES ON xxx.* TO ‘xx’@’%’ identified by ‘xx’ ;
因为mysql 有其他的历史授权,且授权主机的模糊匹配粒度更细,怀疑mysql连接时使用匹配精度优先从高到低,如历史授权更细,则新的授权不生效;
如已有 GRANT ALL PRIVILEGES ON xx .* TO ‘xx’@‘192.164%’ identified by ‘abc’;
重新授权GRANT ALL PRIVILEGES ON xx .* TO ‘xx’@‘192.%’ identified by ‘123’;
则使用123访问无法登录,报上面的拒绝访问错误,因为192.168% 精度 高于192.%,
而常见得使用xx@’%’ 授权更难被匹配到,导致失败;
授权记录可参见用户表:
select * from mysql.user where user like ‘%xx%’
待验证



