目录
问题:
Access denied for user 'root'@'192.168.xx.xx' (using password: YES)
用户“root”@“192.168.xx.xx”的访问被拒绝(使用密码:YES)
一般的解决方法:
跟大多数人一样,遇到这个报错直接复制粘贴到网页搜索、或者询问ChatGPT。
这个时候你获得的大概率是这样的解决方案。
当然,对于大多数人确实只需要像这样,先mysql -u root -p 回车输入yourpassword进入mysql之后,通过下面的代码给root用户设置权限即可解决。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH
GRANT OPTION;
FLUSH PRIVILEGES;
以下解释可以不看
这条SQL语句是用来在MySQL数据库中设置用户权限的。具体来说,这条语句的意思是:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'
:给root
用户授予对所有数据库(*.*
中的第一个*
代表所有数据库)和所有表(第二个*
代表所有表)的所有权限。'root'@'%'
表示这个root
用户可以从任何主机连接到数据库服务器。
IDENTIFIED BY 'yourpassword'
:设置root
用户的密码为yourpassword
。这意味着,使用这个root
用户连接到数据库时,需要用这个密码进行身份验证。
WITH GRANT OPTION
:这个选项允许root
用户将自己拥有的权限授予其他用户。也就是说,root
用户可以将他的权限(或者部分权限)授予数据库中的其他用户。
不一般的解决方法:
我试遍了各种解决方法都未能解决上面的报错,后来惊奇地发现,数据库的密码不能0开头,如果是0开头需要给整个密码使用双引号。比如,配置文件中的密码是012345(被连接的数据库的密码)就会报题目所述错误。要变成"012345"才能成功运行。双引号不行就用单引号。
总结:
- 有时候在检索某个bug的解决办法的时候,可以带上你正在做的项目名。比如我直接搜索“Access denied for user 'root'@'192.168.xx.xx' (using password: YES)”检索出来的全是类似这样的解决办法,包括问ChatGPT也是类似的回答。但是,当我带上我的项目名搜索“Ruoyi项目报错Access denied for user 'root'@'192.168.xx.xx' (using password: YES)”就能出来对应的准确解决方法。再或者,可以直接去对应项目gitee地址(或者项目github地址)下的Issues里找找有没有人遇到过相同的问题,或许能够更快地找到正确的解决方法。
- 以后任何情况下设置密码,都别用0开头了,懒得给密码加引号,人麻了。
顺利解决报错,成功启动若依项目!