解决数据库报错1045-Access denied for user 'root'@'localhost' (using password: YES)的方法
要解决数据库报错1045-Access denied for user ‘root‘@‘localhost‘ (using password: YES),可以尝试以下方法: 1. 确保已经为root用户设置了密码。如果没有设置密码,可以使用以下命令设置: ``` ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password'; ``` 将`your_password`替换为你想要设置的密码。 2. 确保root用户具有访问数据库的权限。可以使用以下命令授权: ``` GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; ``` 这将允许root用户从任何主机访问所有数据库和表。如果需要限制访问范围,可以将`*.*`替换为特定的数据库和表名。 3. 如果问题仍然存在,尝试重启MySQL服务。在Linux系统中,可以使用以下
原因分析
使用的环境:用的宝塔面板、thinkPHP的源码,按照教程写的导入数据库、修改数据库连接配置后,运行代码报错:1045-Access denied for user ‘root‘@‘localhost‘ (using password: YES)。
报错原因分析,自行排除:
第一种:导入的数据库文件没成功
第二种:数据库连接配置账号、密码、地址写错了
第三种:宝塔面板数据库权限的问题
第四种:权限问题mysql服务未启动
第五种:远程链接被拒绝,访问不了数据库
解决方法
导入的数据库文件没成功:
这种错误菜鸡源码真的遇到过,用的低版本的phpmyadmin导入的数据库SQL文件就出错,高版本的就没问题。低版本的可能某些语法不支持,导入的数据库不完整,推荐使用phpmyadmin5.2。
数据库连接配置账号、密码、地址写错了:这种错误就需要你仔细对了,只要填错了数据库信息,当然就连接不上了。
宝塔面板权限问题:
没遇到过,网上看到的,不能宝塔的自带修改root密码,要进入到phpmyadmin管理员权限的账号修改,然后重启mysql就可以了,这种错误应该也是权限的原因导致的。
mysql服务未启动:
访问不了数据库:这种错误也应该是权限导致的,net start mysql无法启动mysql服务。
重启MySQL服务器。
登录mysql,键入mysql –uroot –p;直接回车(Enter)进入数据库。
执行“use mysql;”使用mysql数据库。
执行,
“updateusersetpassword=PASSWORD(“rootadmin”)whereuser=‘root’;”
(修改root的密码,rootadmin记得改成自己的密码)。
打开MySQL目录下的my.ini文件,删除“skip-grant-tables”,保存并关闭文件。
重启MySQL服务。
再次登录即可。
远程链接被拒绝:
如果远程链接数据库需要开启权限,如果没有,数据库地址可以用“127.0.0.1”或者“localhost”