MySQL常见问题之——Access denied for user 'root'@'localhost' (using password:YES)解决方法

由于我使用的是Windows系统,所以方法也是Windows系统的修改方法:

  1、开始 → 搜索栏里面输入cmd → 右键cmd.exe选择以管理员的身份运行(亦可以在C:\Windows\System32目录下找到这个cmd.exe,右键,以管理员身份运行)

  2、输入net stop mysql停止MySQL服务

  3、输入命令行来到mysql的bin目录下,输入下列粗体命令

  D:\MySQL\bin>mysqld  --defaults-file="D:\MySQL\my.ini" --console --skip-grant-tables

  等一下,显示出以下结果说明MySQL启动:

  170215 22:26:09 [Warning] The syntax '--log' is deprecated and will be removed  inMySQL 7.0. Please use '--general_log'/'--general_log_file' instead.
  170215 22:26:09 [Warning] The syntax '--log_slow_queries' is deprecated and will be removed in MySQL 7.0. Please use '--slow_query_log'/'--  slow_query_log_file' instead.
  170215 22:26:09 [Warning] The syntax '--log' is deprecated and will be removed in MySQL 7.0. Please use '--general_log'/'--general_log_file' instead.
  170215 22:26:09 [Warning] The syntax '--log_slow_queries' is deprecated and will be removed in MySQL 7.0. Please use '--slow_query_log'/'--slow_query_log_file' instead.
  170215 22:26:09 [ERROR] The update log is no longer supported by MySQL in version 5.0 and above. It is replaced by the binary log. Now starting MySQL with --log-bin='' instead.
  170215 22:26:09  InnoDB: Started; log sequence number 0 324221
  170215 22:26:09 [Note] mysqld: ready for connections.Version: '5.1.33-community-log'  socket: ''  port: 3306  MySQL Community Server (GPL)

  4、再以管理员的身份打开一个cmd.exe,输入命令行来到mysql的bin目录下,输入:mysql -uroot mysql

  5、进入mysql之后,输入命令行修改密码:

  mysql>update user set authentication_string=password('123456') where user='root';

  6、刷新权限:mysql>flush privileges;

  7、退出mysql:mysql> quit;

  8、关闭MySQL:D:\MySQL\bin>mysqladmin shutdown(出现错误,则:mysqladmin -uroot -p shutdown 然后输入新密码)

  9、至此修改密码完成,可以输入命令行:net start mysql 启动MySQL服务,mysql -uroot -p ,输入密码就可以进入mysql了。

如果再用工具链接数据库报错,请看下面步骤:

MySQL错误号码1862:your password has expired

运行窗口中进入bin目录,>mysql -uroot -p123456登录进去,然后执行select * from mysql.users

会有如下信息:ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

解决:mysql> SET PASSWORD = PASSWORD('123456');

          Query OK, 0 rows affected (0.03 sec)

然后再select * from mysql.users就有结果了。然后再SQLyog就登录进去了。

猜你喜欢

转载自blog.csdn.net/qq_37369161/article/details/83927915