」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 重新控制 MySQL 中的 root 用戶

重新控制 MySQL 中的 root 用戶

發佈於2024-08-26
瀏覽:501

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