1. 程式人生 > >如何在 Linux 中重置 MySQL 或者 MariaDB 的 root 密碼

如何在 Linux 中重置 MySQL 或者 MariaDB 的 root 密碼

轉自

https://linux.cn/article-8301-1.html

如果你是第一次設定 MySQL 或 MariaDB 資料庫,你可以直接執行 mysql_secure_installation 來實現基本的安全設定。

其中一項是設定資料庫 root 帳戶的密碼 - 你必須保持私密,並僅在絕對需要時使用。如果你忘記了密碼或需要重置密碼(例如,當資料庫管理員換人或被裁員!),這篇文章會派上用場。我們將解釋如何在 Linux 中重置或恢復 MySQL 或 MariaDB 的 root 密碼。

雖然我們將在本文中使用 MariaDB,但這些說明同樣也適用於 MySQL。

恢復 MySQL 或者 MariaDB 的 root 密碼

開始之前,先停止資料庫服務並檢查服務狀態,我們應該可以看到先前設定的環境變數:

  1. -------------SystemD-------------
  2. #systemctl stop mariadb
  3. -------------SysVinit-------------
  4. # /etc/init.d/mysqld stop

接下來,用 --skip-grant-tables 選項啟動服務:

  1. -------------SystemD-------------
  2. #systemctlset-environment MYSQLD_OPTS="--skip-grant-tables"
  3. #systemctl start mariadb
  4. #systemctl status mariadb
  5. -------------SysVinit-------------
  6. # mysqld_safe --skip-grant-tables &

Start MySQL/MariaDB with Skip Tables

使用 skip tables 啟動 MySQL/MariaDB

這可以讓你不用 root 密碼就能連線到資料庫(你也許需要切換到另外一個終端上):

  1. # mysql -u root

接下來,按照下面列出的步驟來。

  1. MariaDB[(none)]> USE mysql;
  2. MariaDB[(none)]> UPDATE user SET password=PASSWORD('YourNewPasswordHere'
    ) WHERE User='root' AND Host='localhost';
  3. MariaDB[(none)]> FLUSH PRIVILEGES;

最後,停止服務,取消環境變數設定並再次啟動服務:

  1. -------------SystemD-------------
  2. #systemctl stop mariadb
  3. #systemctlunset-environment MYSQLD_OPTS
  4. #systemctl start mariadb
  5. -------------SysVinit-------------
  6. # /etc/init.d/mysql stop
  7. # /etc/init.d/mysql start

這可以讓先前的改變生效,允許你使用新的密碼連線到資料庫。

總結

本文我們討論瞭如何重置 MariaDB/MySQL 的 root 密碼。一如往常,如果你有任何問題或反饋請在評論欄中給我們留言。我們期待聽到你的聲音。

作者簡介:

Gabriel Cánepa - 一位來自阿根廷聖路易斯梅塞德斯鎮 (Villa Mercedes, San Luis, Argentina) 的 GNU/Linux 系統管理員,Web 開發者。就職於一家世界領先級的消費品公司,樂於在每天的工作中能使用 FOSS 工具來提高生產力。

本文由 LCTT 原創編譯,Linux中國 榮譽推出