”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 重新控制 MySQL 中的 root 用户

重新控制 MySQL 中的 root 用户

发布于2024-08-26
浏览:601

Retake control of the root user in MySQL

第一次安装MySQL时,无法使用无密码登录。
您应该在 my.cnf 中添加以下行以无需密码即可登录。

skip-grant-tables

存在巨大的安全风险,应设置密码,防止外部非法访问。

如何重新获得 MySQL 中 root 用户的控制权

第一步:连接MySQL

mysql

Step2:使用主数据库

use mysql;

第三步:重新定义用户root密码

UPDATE user SET `authentication_string` = PASSWORD('myNuevoPassword') WHERE `User` = 'root';

警告
如果无法执行该命令,则应检查mysql.user表的authentication_string列。

SELECT User, authentication_string  FROM mysql.user\G
*************************** 1. row ***************************
                 User: mysql.infoschema
authentication_string: $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED
*************************** 2. row ***************************
                 User: mysql.session
authentication_string: $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED
*************************** 3. row ***************************
                 User: mysql.sys
authentication_string: $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED
*************************** 4. row ***************************
                 User: root
W&2-*D:1FsLlMJEFsvaZNpaAlnJDEyTNo2QO7Eu7P0rhe10psBsC
4 rows in set (0.00 sec)

然后执行以下命令。

UPDATE user SET `authentication_string` = 'myNuevoPassword' WHERE `User` = 'root';

第四步:显示 mysql.user 表是否可以更改 root 密码

SELECT User, authentication_string  FROM mysql.user\G
*************************** 1. row ***************************
                 User: mysql.infoschema
authentication_string: $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED
*************************** 2. row ***************************
                 User: mysql.session
authentication_string: $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED
*************************** 3. row ***************************
                 User: mysql.sys
authentication_string: $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED
*************************** 4. row ***************************
                 User: root
authentication_string: ZAQ$2wsx2408
4 rows in set (0.00 sec)

第五步:从 my.cnf 中删除行

skip-grant-tables

第六步:重启MySQL服务

sudo systemctl restart mysqld

第七步:使用密码连接mysql

mysql -u root -p
Enter password: [new password]

mysql> 

需要执行此操作时,请谨慎使用!

版本声明 本文转载于:https://dev.to/kyotanakada/retake-control-of-the-root-user-in-mysql-308h?1如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3