MySQL8.0正确修改密码的姿势[通俗易懂]

MySQL8.0正确修改密码的姿势[通俗易懂]mysql更新完密码,总是拒绝连接、登录失败?MySQL8.0不能通过直接修改mysql.user表来更改密码。正确更改密码的方式备注:清空root密码MySQL8.0不能通过直接修改mysql.user表来更改密码。因为authentication_string字段下只能是MySQL加密后的43位字符串密码,其他的导致错误。错误不报出,但是无法再登录mysql,总是会提示无…


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

mysql 更新完密码,总是拒绝连接、登录失败?MySQL8.0 不能通过直接修改 mysql.user 表来更改密码。正确更改密码的方式备注: 清空root密码
MySQL8.0 不能通过直接修改 mysql.user 表来更改密码。

因为authentication_string字段下只能是MySQL加密后的43位字符串密码,其他的导致错误。错误不报出,但是无法再登录mysql,总是会提示 无法认证。
参考:MySQL8.0

mysql> USE mysql;
Database changed
mysql> UPDATE user SET authentication_string="123456" WHERE user="root";
Query OK, 1 row affected (0.39 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> FLUSH privileges;  # 刷新保存
Query OK, 0 rows affected (0.13 sec)

mysql 5.7.9 之后取消了password 函数,authentication_string=password("123456") 会报错

C:\WINDOWS\system32>mysql -u root -p
Enter password: ******
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
1234567891011121314
如果 你已经这样更改密码,并且导致了无法进入mysql。本人表示同情之时,还为了你提供了详细的解决方案。请查看本文备注:清空root 密码
正确更改密码的方式

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY "your_password";
mysql> USE mysql;
Database changed
mysql> ALTER USER 'root'@'localhost' IDENTIFIEED WITH mysql_native_password BY "markjun";
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIEED WITH mysql_native_password BY "markjun"' at line 1
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY "markjun";
Query OK, 0 rows affected (0.18 sec)

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY "123456";
Query OK, 0 rows affected (0.08 sec)

mysql> SELECT user, authentication_string FROM user;
+------------------+------------------------------------------------------------------------+
| user             | authentication_string                                                  |
+------------------+------------------------------------------------------------------------+
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9                              |
+------------------+------------------------------------------------------------------------+
4 rows in set (0.00 sec)

mysql> FLUSH privileges;
Query OK, 0 rows affected (0.38 sec)

mysql> quit;
Bye

F:\MySQL\mysql-8.0.13-winx64\bin>mysql -u root -p
Enter password: *******
...

mysql>
  • 备注: 清空root密码

    停止 MySQL 任务 net stop MySQL

    mysqld 命令 mysqld –console –skip-grant-tables –shared-memory

    无密码进入mysql mysql -u root

    清空root 密码 UPDATE user SET authentication_string=”” WHERE user=“root”;

另一个终端无密码进入

F:\MySQL\mysql-8.0.13-winx64\bin>mysql -u root -p
Enter password: *******
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

F:\MySQL\mysql-8.0.13-winx64\bin>mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
...
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> USE mysql;
Database changed

mysql> SELECT user, authentication_string FROM user;
+------------------+------------------------------------------------------------------------+
| user             | authentication_string                                                  |
+------------------+------------------------------------------------------------------------+
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | 123456                                                                |
+------------------+------------------------------------------------------------------------+
4 rows in set (0.34 sec)

mysql> UPDATE user SET authentication_string="" WHERE user="root";
Query OK, 1 row affected (0.20 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT user, authentication_string FROM user;
+------------------+------------------------------------------------------------------------+
| user             | authentication_string                                                  |
+------------------+------------------------------------------------------------------------+
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             |                                                                        |
+------------------+------------------------------------------------------------------------+
4 rows in set (0.00 sec)

mysql> FLUSH privileges;
Query OK, 0 rows affected (0.10 sec)

mysql> quit;
Bye

停止 mysqld 任务,Ctrl+C 结束任务,或者直接关闭 运行 mysqld 的 cmd 终端。

需要先停止运行上述 mysqld 任务,否则报错

F:\MySQL\mysql-8.0.13-winx64\bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务无法启动。

服务没有报告任何错误。

请键入 NET HELPMSG 3534 以获得更多的帮助。

先停止上述 mysqld 任务

F:\MySQL\mysql-8.0.13-winx64\bin>net start mysql
MySQL 服务正在启动 ...
MySQL 服务已经启动成功。

现在 mysql root 已经没有了密码

F:\MySQL\mysql-8.0.13-winx64\bin>mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.

...
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170161.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 花生壳安全吗_花生壳ddns怎么一直连接不上

    花生壳安全吗_花生壳ddns怎么一直连接不上dyndns和花生壳组织文化中最强大的方面以最小的个体姿态来实现,有时甚至不及花生。不久前,当我坐在达拉斯机场等待航班延误时,我看到另一个乘客在吃一些花生时感到不安。它们的贝壳掉落在地板上,几分钟后,乘客将它们踢入过道,大概是供机场清洁人员稍后收集。直到最近的一次内部RedHat活动中,有人问我有关我的宠物怒气冲冲,我才对花生壳没多加考虑。我开始考虑在RedHat浴室的地板…

    2022年11月3日
  • php实现工厂模式

    php实现工厂模式

    2021年11月15日
  • 批处理的for循环_bat脚本for循环

    批处理的for循环_bat脚本for循环本文引用DOS批处理命令For循环命令详解FOR/F的选项usebackq的用法批处理命令For循环命令详解!

    2022年10月12日
  • java 上传文件接口_Java接口实现文件上传

    java 上传文件接口_Java接口实现文件上传因工作需要,在后台管理页面加入一个上传文件的模块,虽然接口的代码很简单,但实现期间遇到了一些比较有趣的坑,特记录下来。需求实现文件上传,并提供一个可供下载的路径。想法文件上传代码暂且不谈,先说说文件放在服务器什么位置比较合适。我首先想到的是两个地方:tomcat的webapps/ROOT目录下,如果放在这个目录下,数量少了还好,一旦数量多了,必定会影响tomcat本身的运行速度。这个虽然可用但不可…

    2022年5月14日
  • 【C#】list 去重(转载)

    【C#】list 去重(转载)一、查阅文档Enumerable.Distinct方法是常用的LINQ扩展方法,属于System.Linq的Enumerable方法,可用于去除数组、集合中的重复元素,还可以自定义去重的规则。有两个重载方法:////摘要://通过使用默认的相等比较器对值进行比较返回序列中的非重复元素。////参数://source://要从中移除重复元素的序列。.

    2022年5月25日
  • 蚂蚁金服通信框架SOFABolt解析 | 连接管理剖析

    蚂蚁金服通信框架SOFABolt解析 | 连接管理剖析

    2021年6月18日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号