前言:最近项目在做验收,验收过程中遇到不少大大小小的问题甚是慌张,今天这个帖子针对mysql连接权限做下总结
描述:我们系统有个数据源连接功能,可以输入数据库连接信息,拉取数据库的元数据信息,问题在测试人员在输入IP的方式等信息时连接时,却报错了
Access denied for user 'xncui01'@'localhost' (using password: YES)
,然后测试人数把数据IP换成127.0.0.1确可以连接成功。当时自己对mysql的权限不是很了解,通过网上查贴终于找出问题点,下面开始今天总结内容。
问题分析:看到上面的报错信息,我们知道是用户权限不足导致的
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
123
我们通过页面连接数据源相当于mysql -uroot -proot -h19.63.11.93这种方式来连接的,其实这种方式的连接mysql会在自己的维护的hosts表里去反向映射主机名的,所以通过该图知道该用户是缺少主机名权限的
mysql -uxncui02 -p123456 -h10.161.0.93
ERROR 1045 (28000): Access denied for user 'xncui02'@'gza05-104-bigdata-161000093.ctyun.local' (using password: YES)
紧接着我们创建第二个账户
CREATE USER 'xncui01'@'127.0.0.1' IDENTIFIED BY '123456';
CREATE USER 'xncui01'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'xncui01'@'gza05-104-bigdata-161000093.ctyun.local' IDENTIFIED BY '123456';
mysql -uxncui01 -p123456 -h10.161.0.93
Welcome to the MySQL monitor. Commands end with ; or \g.
优秀博客:https://blog.youkuaiyun.com/u011877833/article/details/41826287