博主在用navicat链接本地Mysql数据库时候,用户名与密码正确,但是链接数据库时会报如下错误:
1045 access denied for user ‘root’@’localhost’ using password yes,
之前用的时候一直好好的,没有错误,找了网上很多方法,很多没有效果,具体解决方案如下,亲测有效:
方法一:
/etc/init.d/mysql stop
mysqld_safe –user=mysql –skip-grant-tables –skip-networking &
mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
/etc/init.d/mysql restart
mysql -uroot -p
Enter password: <输入新设的密码newpassword>
mysql>
方法二:
直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码:
mysql -udebian-sys-maint -p
Enter password: <输入[client]节的密码>
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
mysql -uroot -p
Enter password: <输入新设的密码newpassword>
mysql>
内容来自: 脚本之家 www.jb51.net
另一个方法
Windows:
- 管理员登陆系统,停止mysql服务或者结束mysqld-nt进程
- 进入命令行,来到mysql的安装目录.假设安装目录为 d:\mysql\ , CMD进入命令行
- 运行 d:\mysql\bin\mysqld-nt –skip-grant-tables 启动mysql,关闭权限的检查
- 运行 d:\mysql\bin\mysqladmin -u root flush-privileges password “newpassword” 重设root密码
- 重新启动mysql服务
第4步也可以直接修改mysql表,所用到的SQL语句同linux部分,这里就不再重复了.