MYSQL:Access denied for user 'root'@'localhost' 解决方案(Windows,Linux,MacOS三个系统各自的解决方案)
2017-01-05 00:00
513 查看
摘要: Access denied for user 'root'@'localhost' 问题
今天在一个Windows Server上用Navicat打开数据库的时候,报了这个错,无法打开,上百度查了一下,发现是个挺常见的问题,很多人都遇到过,所以在此记录一下,以备后用。
解决方案:绕过登录进入Mysql,然后修改密码即可。
Windows下的操作:
1.停止Mysql服务,可以在 开始菜单->控制面板->系统和安全->管理工具->服务 里停止MySQL服务,也可以用cmd开命令行,然后输入命令:
2.打开命令行,cd到你的MySQL的目录下,比如我的目录是:C:\Program Files\MySQL\MySQL Server 5.5\bin,所以我的命令就是:
3.输入命令:
(default-file的地址取决于你自己电脑上的MYSQL的地址,不要直接复制,--skip-grant-tables这个参数的意思是启动mysql时跳过授权表,简单的说,就是不需要输入账号密码即可登录进数据库)
4.然后命令行里会打印一堆日志,证明命令已经生效,这时,我们就重新开一个命令行(不要关闭当前的命令行)
5.在新开的命令行里输入:
(cd后面的目录取决于你本身的MYSQL的目录)
6.直接输入:
,不用账号密码就可以直接进入mysql了
7.输入:
(选择mysql这个database)
8.输入:
(更新root用户的密码,不解释了,NewPassword这个值自己改)
9.刷新一下,输入:
10.然后就可以退出mysql了,然后再把刚刚的那个命令行也停止了,重新打开MYSQL服务,接着就拿着你的新密码去打开mysql吧~~
Linux下的操作:(#后面跟的是命令行命令,mysql>后跟的是mysql命令行的命令)
Mac下的操作: (#后面跟的是命令行命令,mysql>后跟的是mysql命令行的命令)
P.S.
1.如果发现mysql的User表中没有Password字段,那就把
改为:
2.如果进入数据库后,进行操作时提示:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
那就输入下面的命令(youPassword自行替换):
今天在一个Windows Server上用Navicat打开数据库的时候,报了这个错,无法打开,上百度查了一下,发现是个挺常见的问题,很多人都遇到过,所以在此记录一下,以备后用。
解决方案:绕过登录进入Mysql,然后修改密码即可。
Windows下的操作:
1.停止Mysql服务,可以在 开始菜单->控制面板->系统和安全->管理工具->服务 里停止MySQL服务,也可以用cmd开命令行,然后输入命令:
net stop mysql
2.打开命令行,cd到你的MySQL的目录下,比如我的目录是:C:\Program Files\MySQL\MySQL Server 5.5\bin,所以我的命令就是:
cd C:\Program Files\MySQL\MySQL Server 5.5\bin
3.输入命令:
mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server 5.5\my.ini" --console --skip-grant-tables
(default-file的地址取决于你自己电脑上的MYSQL的地址,不要直接复制,--skip-grant-tables这个参数的意思是启动mysql时跳过授权表,简单的说,就是不需要输入账号密码即可登录进数据库)
4.然后命令行里会打印一堆日志,证明命令已经生效,这时,我们就重新开一个命令行(不要关闭当前的命令行)
5.在新开的命令行里输入:
cd C:\Program Files\MySQL\MySQL Server 5.5\bin
(cd后面的目录取决于你本身的MYSQL的目录)
6.直接输入:
mysql
,不用账号密码就可以直接进入mysql了
7.输入:
use mysql
(选择mysql这个database)
8.输入:
update user set password=PASSWORD("NewPassword") where user="root";
(更新root用户的密码,不解释了,NewPassword这个值自己改)
9.刷新一下,输入:
FLUSH PRIVILEGES;
10.然后就可以退出mysql了,然后再把刚刚的那个命令行也停止了,重新打开MYSQL服务,接着就拿着你的新密码去打开mysql吧~~
Linux下的操作:(#后面跟的是命令行命令,mysql>后跟的是mysql命令行的命令)
# /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
Mac下的操作: (#后面跟的是命令行命令,mysql>后跟的是mysql命令行的命令)
# sudo /usr/local/mysql/bin/mysqld stop # sudo 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
P.S.
1.如果发现mysql的User表中没有Password字段,那就把
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;
改为:
mysql> UPDATE user SET authentication_string=PASSWORD(’newpassword’) where USER=’root’;
2.如果进入数据库后,进行操作时提示:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
那就输入下面的命令(youPassword自行替换):
SET PASSWORD = PASSWORD('youPassword');
相关文章推荐
- linux下连接windows mysql的错误:Access denied for user 'root'@'localhost' (using password: YES)
- MySql错误1045 Access denied for user 'root'@'localhost' (using password:YES) windows下的解决方案(忘记密码)
- windows系统下mysql出现Error 1045(28000) Access Denied for user 'root'@'localhost'
- MySql错误1045 Access denied for user 'root'@'localhost' (using password:YES) windows下的解决方案(忘记密码)
- Mysql连接错误:Access denied for user 'root'@'localhost' (using password:YES)解决方案以及WINDOWS下修改Mysql密码
- 【转】MYSQL问题解决方案:Access denied for user 'root'@'localhost' (using password:YES)
- MYSQL问题解决方案:Access denied for user 'root'@'localhost' (using password:YES)
- mysql在linux上出现Access denied for user 'root'@'localhost' (using password: NO)解决方案
- windows mysql提示:1045 access denied for user 'root'@'localhost' using password yes 解决方案
- windows mysql提示:1045 access denied for user 'root'@'localhost' using password yes 解决方案
- windows系统下mysql出现Error 1045(28000) Access Denied for user 'root'@'localhost'
- Linux环境下进入MySQL环境报权限问题:Access denied for user 'root@localhost' (using password:YSE)
- 在linux系统中安装mysql服务器详细步骤并解决ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passw
- mysql在linux上出现Access denied for user 'root'@'localhost' (using password: NO)解决方案
- windows系统下mysql出现Error 1045(28000) Access Denied for user 'root'@'localhost'
- windows mysql提示:1045 access denied for user 'root'@'localhost' using password ye
- 解决mysql“Access denied for user 'root'@'localhost'”
- Linux mysql 5.6: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
- Mysql(Windows)--- Access denied for user 'root'@'localhost'(using password:YES)
- 【linux】 尝试解决mysql Access denied for user 'root'@'localhost