加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL访问受限的问题解析

发布时间:2022-04-06 11:46:32 所属栏目:MySql教程 来源:互联网
导读:今天帮同事看了一个MySQL的连接问题,蛮有意思,有两个用户,一个用户连接正常,另外一个连接抛错。 开发同学提供的错误日志如下: 当然从error.log里面也看到了不少的警告信息,看起来他是在解析这个IP信息的时候出了问题。 [Warning] IP address 10.127.
       今天帮同事看了一个MySQL的连接问题,蛮有意思,有两个用户,一个用户连接正常,另外一个连接抛错。
 
       开发同学提供的错误日志如下:
 
       当然从error.log里面也看到了不少的警告信息,看起来他是在解析这个IP信息的时候出了问题。
 
[Warning] IP address '10.127.xxxx' could not be resolved: Temporary failure in name resolution
[Warning] IP address '10.127.xxxx' could not be resolved: Temporary failure in name resolutio
 
        那么当时的操作大体是怎么样呢,因为这个操作已经很长时间了,我们就简单复现下这个问题,首先使用grants的方式创建用户,当然还是推荐create user的方式。
 
> grant usage on *.* to webadmin@'10.127.xxx.xxx' identified by 'testmysql.com';      
Query OK, 0 rows affected, 1 warning (0.00 sec)
 
这个时候查看show  grants的结果,是有usage的权限的,就跟oracle里面的connect角色差不多,也就是最起码你能连接到数据库。
 
> show grants for webadmin@'10.127.xxx.xxx';
+---------------------------------------------------+
| Grants for webadmin@10.127.xxx.xxx|
+---------------------------------------------------+
| GRANT USAGE ON *.* TO 'webadmin'@'10.127.xxx.xxx' |
+---------------------------------------------------+
1 row in set (0.00 sec)而后面的就是访问权限了,比如开发同学不知道哪个权限合适,说你给我所有的权限吧,于是DBA说好,就写下了*.*,然后问题就来了。
 
> GRANT ALL PRIVILEGES ON *.* TO 'webadmin'@'10.127.xxx.xxx';使用show grants查看权限,发现原来的usage权限竟然没了。
 
> show grants for webadmin@'10.127.xxx.xxx';
+------------------------------------------------------------+
| Grants for webadmin@10.127.xxx.xxx|
+------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'webadmin'@'10.127.xxx.xxx' |
+------------------------------------------------------------+
 
但是很快又收到了开发同学的信息说,程序的错误变了,现在是这个错误。
 
{main} Attempted reconnect 3 times. Giving up.
 {main} at com.mysql.jdbc.Connection.createNewIO(Connection.java:2781)
 {main} at com.mysql.jdbc.Connection.(Connection.java:1485)
 {main} at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
 {main} at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
 
 这个错误让我看起来有些迷茫,我说实在不行就重启大法吧,但是重启之后依然不行,最后又开始定位,发现可能和密码有关,于是我按照备份的加密串重新配置权限,就没问题了,说明开发同学提供给我的密码是有问题的,而幸好有了备份,这个问题才能在这种摸着石头过河的情况继续前进。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读