笔者新部署一个java项目,但在项目运行的时候出现了错误提示:
Access denied for user ‘root’@‘XX.XX.XX.XX’ (using password: YES)
在源代码中无法查找到对应的IP地址,百思不得解,后来发现是配置数据库的连接用户出问题了,具体如下:
安装完mysql出现无法远程数据库的问题。
安装过程略;安装后出现无法远程连接数据库的情况,以下是排查过程:
1、use mysql 登录到数据库,使用下面的命令可以查看所有的用户
select user,host from user;
2、因为自己建立mysql用户的时候设置的密码强度不够,注意这时local的密码和远程%的密码是一致的。
所以我想更改本地local及远程%的mysql的密码
所有我在网络上搜索到参考资料:
https://www.cnblogs.com/qianzf/p/7089197.html
但这个网站上面提示的都是mysql的本地密码的修改,修改远程密码需要将local修改为%。
我采用的修改操作是:
方法2:用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123
这个操作仅仅只能更改本地密码,不能更改远程的密码,导致了一个问题:mysql用户的local用户的密码与远程%的mysql用户的密码不一致。
而我在java代码中设置的数据库连接密码,用的是mysql本地local用户的密码,导致java程序无法连接到数据库,所以导致了一个出错的信息:
部署好java项目以后,执行代码会出现
Access denied for user ‘root’@‘XX.XX.XX.XX’ (using password: YES)
XX.XX.XX.XX实际为mysql的外部IP地址。
出现这个错误提示的朋友,可以先检查一下mysql连接的账户密码设置。
3、解决方法:
修改java代码中,mysql远程%用户的链接密码;重新启动程序,问题解决。