java.sql.SQLException: Access denied for user 'regulation'@'xxx.xxx.xxx.xxx' (using password: YES)

今天运行同事在其他环境使用了我写的一个数据共享的jar包出现了这个错误,但是这个IP并不是mysql连接的IP而是本机的IP,加上日志可以判定是用户连接host权限的问题.
先说一下mysql user表中host常见的各个值:

大致分为4种,分别是

localhost,127.0.0.1,::1,%

localhost:表示本地机,mysql进行连接时,使用 Unix socket进行连接,mysql server则认为该client是来自"localhost"。

127.0.0.1:表示本地机,使用TCP/IP 连接, mysql server 认为该连接来自于127.0.0.1或者是"localhost.localdomain"。

::1:表示为ipv6,即ipv4的127.0.0.1,表示本地机。

%:指任何ip都可以连接,但是不包括localhost,本机需要用本机ip连接,当我们需要指定网段连接时,可以写程xxx.xx.xxx.%。

查询user表

select host,user from mysql.user


然后编辑对应用户信息,讲host改为'%'即所有ip可连接,问题解决。


如果这篇文章对你有所帮助,点个赞吧,么么哒!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容