今天运行同事在其他环境使用了我写的一个数据共享的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可连接,问题解决。
如果这篇文章对你有所帮助,点个赞吧,么么哒!