MySQL重設root密碼

2021-07-09 10:48:08 字數 1880 閱讀 5116

mysql下建立新使用者、新資料庫、設定訪問許可權控制都需要用到root密碼。萬一把root密碼忘了,該怎麼辦?

幸運地是,重設密碼很容易。

注意:mysql的root使用者和伺服器作業系統的root使用者是兩個不同的使用者,不要搞混了。

基本的思路是,以安全模式啟動mysql,這樣不需要密碼可以直接以root身份登入,然後重設密碼。

首先,我們停掉mysql服務:

sudo service mysql stop

以上命令適用於ubuntu和debian。centos、fedora和rhel下使用mysqld替換mysql

以安全模式啟動mysql:

sudo mysqld_safe --skip-grant-tables --skip-networking &
注意我們加了--skip-networking,避免遠端無密碼登入mysql。(感謝 robberphex指出。)

這樣我們就可以直接用root登入,無需密碼:

mysql -u root
接著重設密碼:

mysql> use mysql;

mysql> update user set password=password("mynewpassword") where user='root';

mysql> flush privileges;

注意,命令後需要加分號。

重設完畢後,我們退出,然後啟動mysql服務:

mysql > quit
quit不需要分號。

重啟服務:

sudo service mysql restart
同樣,以上命令適用於ubuntu和debian,centos、fedora和rhel需要用mysqld替換mysql

現在可以嘗試用新密碼登入了:

mysql -u root -pmynewpassword
注意,-p和密碼間不能有空格。

以上是通用方案,在ubuntu和debian系統上,有乙個debian-sys-maint使用者,debian類系統下一些系統指令碼對mysql的操作是通過這個使用者完成的。所以我們可以通過這個使用者來修改root密碼。該使用者的密碼可以在/etc/mysql/debian.cnf下找到:

# automatically generated for debian scripts. do

not touch!

[client]

host = localhost

user = debian-sys-maint

password = password

socket = /var/run/mysqld/mysqld.sock

[mysql_upgrade]

host = localhost

user = debian-sys-maint

password = password

socket = /var/run/mysqld/mysqld.sock

basedir = /usr

用該使用者登入mysql後,也可以修改密碼(具體修改過程見上):

sudo mysql -u debian-sys-maint -p

mysql重設root密碼

mysql忘記root密碼該怎麼辦當忘記mysql的root密碼的時候,可以進行如下的步驟重新設定 首先確認伺服器出於安全的狀態,也就是沒有人能夠任意地連線mysql資料庫。因為在重新設定mysql的root密碼的期間,mysql資料庫完全出於沒有密碼保護的狀態下,其他的使用者也可以任意地登入和修改...

mysql 重設root 密碼

windows 1 先停止mysql net stop mysql57 2 修改my.ini 增加 skip grant tables 引數 3 啟動mysql net start mysql57 使用cmd 命令視窗。執行 mysql uroot p 提示輸入密碼,直接回車即可進入 mysql 命...

mysql忘記root密碼重設密碼

1 關閉正在執行的mysql服務。2 開啟dos視窗,轉到mysql bin目錄。3 輸入mysqld skip grant tables 回車。skip grant tables 的意思是啟動mysql服務的時候跳過許可權表認證。4 再開乙個dos視窗 因為剛才那個dos視窗已經不能動了 輸入my...