簡體   English   中英

MySQL:如何重置或更改 MySQL root 密碼?

[英]MySQL: How to reset or change the MySQL root password?

如何在 ubuntu 服務器中更改 MySQL root 密碼和用戶名? 在設置任何更改之前我需要停止 mysql 服務嗎?

我也有一個 phpmyadmin 設置,phpmyadmin 會自動更新嗎?

在 Ubuntu Linux 上設置/更改/重置 MySQL root 密碼。 在您的終端中輸入以下行。

  1. 停止 MySQL 服務器: sudo /etc/init.d/mysql stop
  2. 在某些情況下,如果/var/run/mysqld不存在,您必須首先創建它: sudo mkdir -v /var/run/mysqld && sudo chown mysql /var/run/mysqld
  3. 啟動mysqld配置: sudo mysqld --skip-grant-tables &
  4. 以root身份登錄MySQL: mysql -u root mysql
  5. YOURNEWPASSWORD替換為您的新密碼:

對於 MySQL < 8.0

UPDATE mysql.user SET Password = PASSWORD('YOURNEWPASSWORD') WHERE User = 'root';
FLUSH PRIVILEGES;

如果你的 MySQL 使用新的 auth 插件,你將需要使用: update user set plugin="mysql_native_password" where User='root'; 在刷新權限之前。

注意:在某些版本上,如果password列不存在,您可能想嘗試:
UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';

注意:此方法不被視為重置密碼的最安全方法,但它確實有效。

對於 MySQL >= 8.0

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURNEWPASSWORD';
FLUSH PRIVILEGES;

最后一步:

正如@lambart 在評論中指出的那樣,您可能需要終止您啟動的臨時無密碼 mysql 進程,即sudo killall -9 mysqld然后啟動普通守護進程: sudo service mysql start

參考:

  1. 在 Ubuntu Linux 上設置/更改/重置 MySQL root 密碼
  2. 如何重置根密碼 (v5.6)
  3. 如何重置根密碼 (v8.0)

唯一對我有用的方法是此處描述的方法(我正在運行 ubuntu 14.04)。 為了清楚起見,這些是我遵循的步驟:

  1. sudo vim /etc/mysql/my.cnf
  2. 在末尾添加以下行:

      [mysqld] 跳過授權表
  3. sudo service mysql restart

  4. mysql -u root

  5. use mysql

  6. select * from mysql.user where user = 'root'; - 查看頂部判斷password列是叫password還是authentication_string

  7. UPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and host = 'localhost'; - 從上面使用正確的密碼列

  8. FLUSH PRIVILEGES;

  9. exit

  10. sudo vim /etc/mysql/my.cnf

  11. 如果您想保持安全標准,請刪除在第 2 步中添加的行

  12. sudo service mysql restart

供參考: https ://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

在 ubuntu 服務器上重置 root 密碼的官方簡單方法...

如果您使用的是 16.04、14.04、12.04:

sudo dpkg-reconfigure mysql-server-5.5

如果您使用的是 10.04:

sudo dpkg-reconfigure mysql-server-5.1

如果您不確定安裝了哪個 mysql-server 版本,您可以嘗試:

dpkg --get-selections | grep mysql-server

更新了 mysql-server-5.7 的注釋

請注意,如果您使用的是 mysql-server-5.7,則不能使用上面顯示的更簡單的 dpkg-reconfigure 方法。

如果您知道密碼,請登錄並運行以下命令:

UPDATE mysql.user SET authentication_string=PASSWORD('my-new-password') WHERE USER='root';
FLUSH PRIVILEGES;

或者,您可以使用以下內容:

sudo mysql_secure_installation

這將詢問您一系列有關確保安裝安全的問題(強烈推薦),包括您是否要提供新的 root 密碼。

如果您不知道 root 密碼,請參閱這篇以 Ubuntu 為中心的關於該過程的文章

有關詳細信息,請參閱:

https://help.ubuntu.com/16.04/serverguide/mysql.html https://help.ubuntu.com/14.04/serverguide/mysql.html

什么對我有用(Ubuntu 16.04,mysql 5.7):

停止 MySQL

sudo service mysql stop

制作MySQL服務目錄。

sudo mkdir /var/run/mysqld

授予 MySQL 用戶寫入服務目錄的權限。

sudo chown mysql: /var/run/mysqld

手動啟動 MySQL,無需權限檢查或聯網。

sudo mysqld_safe --skip-grant-tables --skip-networking &

在另一個控制台上,不用密碼登錄。

mysql -uroot mysql

然后:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
EXIT;

關閉 MySQL。

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

正常啟動MySQL服務。

sudo service mysql start

我正在分享在 Linux Ubuntu 中重置 MySQL 密碼的逐步最終解決方案。

引用自博客 (dbrnd.com)

第 1 步:停止 MySQL 服務。

sudo stop mysql

第 2 步:殺死所有正在運行的 mysqld。

sudo killall -9 mysqld

第 3 步:以安全模式啟動 mysqld。

sudo mysqld_safe --skip-grant-tables --skip-networking &

第四步:啟動mysql客戶端

mysql -u root

第五步:登錄成功后,請執行此命令修改任意密碼。

FLUSH PRIVILEGES;

第 6 步:您可以更新 mysql root 密碼。

UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';

注意:在 MySQL 5.7 中, Password列稱為authentication_string

第7步:請執行此命令。

FLUSH PRIVILEGES;

首先運行這個命令:

sudo mysql

然后你應該檢查你的 MySQL 用戶帳戶使用哪種身份驗證方法。所以運行這個命令

SELECT user,authentication_string,plugin,host FROM mysql.user;

現在你已經可以看到這樣的東西了:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

在上表中,您可以看到所有 mysql 用戶帳戶狀態,如果您在插件列中看到mysql_native_password而不是auth_socket之前為 root 帳戶設置了密碼。 總而言之,要更改您的 root 密碼,您應該運行:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

請務必將密碼更改為您選擇的強密碼。 然后重新加載您的服務器以使您的新更改生效運行它;

FLUSH PRIVILEGES;

因此,通過以下命令再次檢查您的 mysql 使用的身份驗證方法:

SELECT user,authentication_string,plugin,host FROM mysql.user;

現在輸出是:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

正如您在授權表中看到的那樣,您的根帳戶具有mysql_native_password 現在你可以退出 MYSQL shell

exit;

就是這樣。只是你應該通過sudo service mysql restart 現在您可以使用您的密碼輕松地以 root 帳戶身份登錄 mysql。

我遇到了 ubuntu 18.04 和 mysql 5.7 的問題,這是解決方案

在執行命令之前嘗試重新啟動 mysql-server

sudo service mysql restart

MYSQL 服務器 >= 5.7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET authentication_string=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;

MYSQL 服務器 < 5.7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET password=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;

更改 MySQL root 密碼。

此方法將密碼暴露給命令行歷史記錄,這些命令應以 root 身份運行。

  1. 通過mysql命令行工具登錄:

     mysql -uroot -poldpassword
  2. 運行此命令:

     SET PASSWORD FOR root@'localhost' = PASSWORD('newpassword');

要么

  1. 運行此命令,為當前用戶設置密碼(在本例中為“root”):

    設置密碼 = 密碼('新密碼');

  1. 停止 MySQL sudo service mysql stop

  2. 制作MySQL服務目錄。 sudo mkdir /var/run/mysqld

  3. 授予 MySQL 用戶寫入服務目錄的權限。 sudo chown mysql: /var/run/mysqld

  4. 手動啟動 MySQL,無需權限檢查或聯網。 sudo mysqld_safe --skip-grant-tables --skip-networking &

5.免密碼登錄。 mysql -uroot mysql

6.更新root用戶的密碼。

更新 mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='%'; 出口;

  1. 關閉 MySQL。 sudo mysqladmin -S /var/run/mysqld/mysqld.sock 關閉

  2. 正常啟動MySQL服務。 sudo服務mysql啟動

如果您想更改 MySQL root 密碼,請在終端中輸入:

sudo dpkg-reconfigure mysql-server-5.5

MySQL 守護進程將停止,系統將提示您輸入新密碼。

這就像我為 Ubuntu 16.04 所做的魅力一樣。 完全歸功於我從那里獲得的以下鏈接。 [ https://coderwall.com/p/j9btlg/reset-the-mysql-5-7-root-password-in-ubuntu-16-04-lts][1]

停止 MySQL

sudo service mysql stop

制作MySQL服務目錄。 sudo mkdir /var/run/mysqld

授予 MySQL 用戶寫入服務目錄的權限。

sudo chown mysql: /var/run/mysqld

手動啟動 MySQL,無需權限檢查或聯網。

sudo mysqld_safe --skip-grant-tables --skip-networking &

無需密碼即可登錄。

mysql -uroot mysql

更新 root 用戶的密碼。 確保至少 root 帳戶通過以下查詢得到更新。 進行一些選擇並根據需要檢查現有值

UPDATE mysql.user SET 
authentication_string=PASSWORD('YOURNEWPASSWORD'), 
plugin='mysql_native_password' WHERE User='root';
EXIT;

關閉 MySQL。

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

正常啟動MySQL服務。

sudo service mysql start

就我而言,此選項有所幫助: https ://stackoverflow.com/a/49610152/13760371
謝謝你,拉胡爾。

除了以下時刻,當我嘗試輸入命令時:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='%';

控制台發出警告:

1681 'password' is deprecated and will be removed in a future release

用這個命令治愈:

UPDATE mysql.user SET authentication_string=CONCAT('*', UPPER(SHA1(UNHEX(SHA1('NEWPASSWORD'))))), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';

MySQL 版本 5.7.X

我的變體:

1. > sudo service mysql stop
2. > sudo mkdir /var/run/mysqld
3. > sudo chown mysql: /var/run/mysqld
4. > sudo mysqld_safe --skip-grant-tables --skip-networking &
5. > mysql -uroot mysql
6. > UPDATE mysql.user SET authentication_string=CONCAT('*', UPPER(SHA1(UNHEX(SHA1('NEWPASSWORD'))))), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
7. > \q;
8. > sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
9. > sudo service mysql start

本方案屬於MySQL舊版本。 通過socket認證方式登錄MySQL,就可以做到。

sudo mysql -u root

然后可以運行以下命令。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

詳情可在此處獲得。

這是我的解決方案。 我在 Ubuntu 18.04 工作: https ://stackoverflow.com/a/46076838/2400373

但在最后一步中進行此更改很重要:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost'; 

對於 Ubuntu 18.04 和 mysql 版本 14.14 Distrib 5.7.22,請按照以下步驟重置 mysql 密碼。

步驟1

sudo systemctl stop mysql

第2步

sudo systemctl edit mysql

此命令將在 nano 編輯器中打開一個新文件,您將使用它來編輯 MySQL 的服務覆蓋。 這些更改了 MySQL 的默認服務參數。 該文件將為空,因此添加以下內容:

[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid --skip-grant-tables --skip-networking

步驟 3

sudo systemctl daemon-reload
sudo systemctl start mysql

第4步

sudo mysql -u root

步驟 5

FLUSH PRIVILEGES;

步驟 6

UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHEREuser = 'root';

步驟 7

UPDATE mysql.user SET plugin ='mysql_native_password' WHERE user = 'root';

步驟 8

sudo systemctl revert mysql

最后

sudo systemctl restart mysql

現在享受

回應 rogerdpack 的評論:如果您不知道 MySQL root 密碼並且您不關心 MySQL 數據/設置,您可以重新安裝它並重置 root 密碼,如下所示:

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo rm -rf /var/lib/mysql
sudo apt-get install -y mysql-server mysql-client 

在安裝過程中,您可以選擇 root 的密碼:

在此處輸入圖像描述

如果您知道當前密碼,則不必停止 mysql 服務器。 打開 ubuntu 終端。 使用以下命令登錄mysql:

mysql - username -p

然后輸入您的密碼。 這將帶您進入 mysql 控制台。 在控制台中,鍵入:

> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

然后刷新權限使用:

> flush privileges;

然后你就完成了。

你不需要這一切。 只需登錄:

mysql -u root -p

然后在mysql>提示符下修改當前用戶的密碼:

mysql> set password=password('the_new_password');
mysql> flush privileges;

關於該主題的大多數答案都已過時; 在撰寫此答案之前,MySQL 發生了兩個主要變化:

1- 用戶表中的“密碼”字段已替換為“authentication_string”列。

2-“密碼”加密功能:不推薦使用 PASSWORD("of some text")。

請參閱此鏈接以獲取更多信息:dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html

當您在要更改密碼的系統上使用 MySQL 的PASSWORD()時,它會導致密碼以明文形式出現在 MySQL 日志中 [ source ]。 讓他們、他們的備份等像密碼一樣安全對我來說聽起來像是噩夢,所以我寧願按如下方式做:

  1. 在您的本地計算機上,使用您的密碼運行此命令:

     mysql -u someuser -p < <(echo "SELECT PASSWORD('mypass');")

    請注意前面的空格,以防止它出現在 bash 歷史記錄中(對於 Ubuntu 以外的其他發行版,這可能會有所不同 –來源)。

  2. 在您的服務器計算機上,執行以下命令以更改其 MySQL root 密碼(將myhash替換為第一個命令打印的密碼哈希值):

     mysql -u root -p < <(echo "SET PASSWORD FOR root@localhost = 'myhash';")
  3. 或者,讓我們有點偏執:在您的本地機器上,使用clear清除您的終端屏幕並清除您的虛擬終端回滾,以隱藏上面命令中出現的明文密碼。

你可以使用這個命令:

UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';

之后請使用沖洗:

FLUSH PRIVILEGES;

要更新“根”Mysql 用戶密碼,您必須記住您需要超級用戶權限。 如果您有超級用戶權限,請嘗試以下命令:

MySQL 5.7.6 及更高版本

sudo su
service mysql stop
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
\q;
exit
mysql -u root -p MyNewPass

MySQL 5.7.5 及更早版本

sudo su
service mysql stop
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
\q;
exit
mysql -u root -p MyNewPass

正如關於password() 函數的 mysql 文檔所說:

該函數在 MySQL 8.0.11 中被移除。

這幾乎使 mysql v8.0.11 和更新版本的所有現有答案無效。

根據 mysql 文檔,重置 root 密碼的新通用方法如下:

前面的部分提供了專門針對 Windows 和 Unix 以及類 Unix 系統的密碼重置說明。 或者,在任何平台上,您都可以使用 mysql 客戶端重置密碼(但這種方法不太安全):

如有必要,停止 MySQL 服務器,然后使用 --skip-grant-tables 選項重新啟動它。 這使任何人都可以在沒有密碼和所有權限的情況下進行連接,並禁用帳戶管理語句,例如 ALTER USER 和 SET PASSWORD。 因為這是不安全的,如果服務器使用 --skip-grant-tables 選項啟動,它會自動啟用 --skip-networking 以防止遠程連接。

使用mysql客戶端連接到MySQL服務器; 不需要密碼,因為服務器是使用 --skip-grant-tables 啟動的:

 shell> mysql

在 mysql 客戶端中,告訴服務器重新加載授權表,以便帳戶管理語句起作用:

 mysql> FLUSH PRIVILEGES;

然后修改'root'@'localhost'賬號密碼。 將密碼替換為您要使用的密碼。 要更改具有不同主機名部分的根帳戶的密碼,請修改說明以使用該主機名。

 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

您現在應該能夠使用新密碼以 root 身份連接到 MySQL 服務器。 停止服務器並正常重啟(不使用 --skip-grant-tables 和 --skip-networking 選項)。

如果您知道“root”用戶密碼,請使用該憑據登錄到 mysql。 然后執行以下查詢來更新密碼。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';

1.打開nano/vim創建一個包含以下內容的文件並將文件另存為~/mysql-pwd

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEWPASSWORD';
  1. 停止 mysql sudo systemctl stop mysql
  2. 運行sudo mysqld -init-file=~/mysql-pwd
  3. 重啟mysql sudo systemctl start mysql
  4. 現在登錄mysql -u root -p 密碼將是您的NEWPASSWORD

以下步驟對我有用。 我在 Ubuntu 上使用 MySQL 8.*

  1. 停止 MySQL 服務並檢查狀態以確認服務已停止
sudo systemctl stop mysql sudo systemctl status mysql
  1. 編輯 systemd 配置文件,這樣你就可以在沒有權限檢查的情況下訪問 MySQL

    sudo systemctl edit mysql

  2. 復制並粘貼以下 3 行

[Service] ExecStart= ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking

粘貼行后CTRL+0保存然后CTRL+X退出

  1. 重新加載 mysql 服務並啟動它(使用 --skip-grant-table 啟動服務)
 sudo systemctl daemon-reload sudo systemctl start mysql

5.現在不用密碼連接MySQL服務器

sudo mysql -u root

6.通過運行加載授權表

mysql> FLUSH PRIVILEGES;
  1. 重置根密碼

mysql> ALTER USER 'root'@'localhost' 通過 'YourPasswordHere' 用 mysql_native_password 標識;

  1. 關閉mysql連接

mysql> 退出

  1. 還原對 mysql systemd 文件所做的修改

sudo systemctl 還原 mysql

  1. 重新加載 mysql 守護程序以使更改生效。

sudo systemctl 守護進程重新加載

  1. 最后重啟MySQL服務

sudo systemctl 重啟 mysql

現在使用步驟 7 中設置的新密碼連接到 mysql

您可以訪問此鏈接為 mysql 8 重置 root 密碼以獲取更多詳細信息。

如果您已將phpmyadmin設置為在不提供密碼或用戶名的情況下進行連接,則可以在本地計算機上解決此問題而不是重置密碼。 通過啟動mysqlapache等來檢查這一點。我在本地機器上安裝了xampp 所以啟動 xampp 將啟動所有必要的服務。 現在去http://localhost/phpmyadmin顯示所有的數據庫。 這確認您已將用戶名和密碼保存在 phpmyadmin 的配置文件中,該文件可以在phpmyadmin安裝位置找到。 如果您安裝了xampp xampp的根文件夾中找到phpmyadmin文件夾。 config.inc.php文件中搜索單詞password 在那里你會找到passwordusername

如果通過提供的 phpadmin gui 部署在 xampp 上,您可以輕松更改 mysql 密碼。

phpMyAdmin -> User Accounts -> Edit Privileges (Select the intended user) -> Change Password (Tab)

對於 mysql 5.6,此命令有效,您可以通過向導設置密碼:

sudo dpkg-reconfigure mysql-server-5.6

我不得不在 Ubuntu 16.04.1 LTS 上走這條路。 它有點混合了上面的一些其他答案 - 但它們都沒有幫助。 我花了一個小時或更長時間嘗試從 MySql 網站到 SO 上的所有其他建議,我終於得到了它的工作:

注意:雖然它顯示 Enter password for user root,但我沒有原始密碼,所以我只輸入了相同的密碼作為新密碼。

注意:沒有 /var/log/mysqld.log 只有 /var/log/mysql/error.log

另請注意,這對我不起作用:
sudo dpkg-reconfigure mysql-server-5.7

也沒有:
sudo dpkg-reconfigure --force mysql-server-5.5

制作MySQL服務目錄。
sudo mkdir /var/run/mysqld

授予 MySQL 用戶寫入服務目錄的權限。
sudo chown mysql: /var/run/mysqld

然后:

  1. 殺死當前的 mysqld pid
  2. 使用 sudo /usr/sbin/mysqld & 運行 mysqld
  3. 運行 /usr/bin/mysql_secure_installation

    mysql_secure_installation 的輸出

    root@myServer:~# /usr/bin/mysql_secure_installation

    保護 MySQL 服務器部署。

    輸入用戶root的密碼:

    VALIDATE PASSWORD PLUGIN 可用於測試密碼並提高安全性。 它檢查密碼的強度並允許用戶只設置那些足夠安全的密碼。 您想設置 VALIDATE PASSWORD 插件嗎?

    按 y|Y 表示“是”,任何其他鍵表示“否”:否 使用現有密碼作為 root。 修改root密碼? ((按 y|Y 表示是,任何其他鍵表示否):y

    新密碼:

    重新輸入新密碼:默認情況下,MySQL 安裝有一個匿名用戶,允許任何人登錄 MySQL 而無需為他們創建用戶帳戶。 這僅用於測試,並使安裝更順利。 在進入生產環境之前,您應該刪除它們。

    刪除匿名用戶? (按 y|Y 表示是,按任何其他鍵表示否):y 成功。

    通常,只應允許 root 從“localhost”進行連接。 這可確保有人無法從網絡中猜出 root 密碼。

    禁止root遠程登錄? (按 y|Y 表示是,按任何其他鍵表示否):y 成功。

    默認情況下,MySQL 帶有一個任何人都可以訪問的名為“test”的數據庫。 這也僅用於測試,應在進入生產環境之前將其刪除。

    刪除測試數據庫並訪問它? (按 y|Y 表示是,任何其他鍵表示否):y

    • 刪除測試數據庫...成功。

    • 刪除測試數據庫的權限...成功。

    重新加載權限表將確保到目前為止所做的所有更改將立即生效。

    現在重新加載權限表? (按 y|Y 表示是,按任何其他鍵表示否):y 成功。

    全部做完!

您可以嘗試以下一些步驟來重置 mysql 5.7 root 密碼:

停止 Mysql 服務 1st

sudo /etc/init.d/mysql stop 

以 root 身份登錄,無需密碼sudo mysqld_safe --skip-grant-tables &

登錄mysql終端后,您應該需要執行更多命令:

use mysql;




UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';


flush privileges;


sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

重新啟動 mysql 服務器后如果仍然遇到錯誤,則必須訪問: 重置 MySQL 5.7 root 密碼 Ubuntu 16.04

更改 MySQL 根密碼。 以更簡單的方式

所有這些命令都應該以 root 身份運行。

使用舊密碼通過 MySQL 命令行工具登錄:

第1步

mysql -uroot -p"your_old_password"

然后運行以下命令:

第2步

SET PASSWORD FOR root@'localhost' = PASSWORD('your_new_password');

方法 2 (使用上述命令使用舊密碼首次登錄)

運行此命令,為當前用戶設置密碼:

SET PASSWORD = PASSWORD('your_new_password');

以上命令適用於當前用戶。 如果您想更改其他用戶的密碼,您可以輸入用戶名而不是"root"

如何在 ubuntu 服務器中更改 MySQL 根密碼和用戶名? 在設置任何更改之前是否需要停止 mysql 服務?

我也有一個 phpmyadmin 設置,phpmyadmin 會自動更新嗎?

我還沒有看到MySQL 8.0 指南推薦的官方步驟,這是唯一對我有用的步驟。 以下是這些步驟的摘要。

  1. 如果 MySQL 服務器正在運行,請停止它 /var/lib/mysql//var/run/mysqld//usr/local/mysql/data/中查找帶有服務器進程 ID 的 pid 文件。 通常,該文件以 mysqld 或您系統的主機名開頭,並以 .pid 結尾。 在以下命令中替換您剛剛找到的mysql-data-directoryhost_name

     $ sudo kill `sudo cat /mysql-data-directory/host_name.pid`
  2. 此命令將使用 SQL 語句在/tmp/mysql-init創建一個文本文件,並使 mysql 用戶成為所有者。 在命令MyNewPass替換為您自己的密碼。

     $ echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';" > /tmp/mysql-init && sudo chown mysql /tmp/mysql-init
  3. 通過在命令行上運行以下命令來啟動 MySQL 服務器 在此之后密碼更新,您可以再次使用CTRL+C關閉服務器。

     $ sudo mysqld --user=mysql --init-file=/tmp/mysql-init &
  4. 使用您的密碼刪除臨時文件

     $ sudo rm /tmp/mysql-init

當更改/重置MySQL密碼時,上面列出的以下命令無濟於事。 我發現進入終端並使用這些命令毫無意義。 而是使用命令sudo停止所有操作。 如果有幫助,請刪除Windows的SYSTEM 32。

要重置或更改密碼,請輸入sudo dpkg-reconfigure mysql-server-XX (XX是已安裝的mysql版本,即5.6、5.7),然后將提示您必須設置新密碼的屏幕,然后在下一步中進行確認密碼,請稍等片刻。 而已。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM