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...