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。
這樣我們就可以直接用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
**
windows 下mysql 重設root密碼方法
1 首先在命令列裡關閉mysql服務 net stop mysql 2 在命令列裡進入mysql安裝目錄下bin目錄,以不檢查許可權的方式啟動 mysqld nt skip grant tables 介面會一直停留在那,不用理它。3 然後重新開打乙個命令提示符的視窗,在命令列裡進入mysql安裝目錄...
mysql重設root密碼
mysql忘記root密碼該怎麼辦當忘記mysql的root密碼的時候,可以進行如下的步驟重新設定 首先確認伺服器出於安全的狀態,也就是沒有人能夠任意地連線mysql資料庫。因為在重新設定mysql的root密碼的期間,mysql資料庫完全出於沒有密碼保護的狀態下,其他的使用者也可以任意地登入和修改...
MySQL重設root密碼
mysql下建立新使用者 新資料庫 設定訪問許可權控制都需要用到root密碼。萬一把root密碼忘了,該怎麼辦?幸運地是,重設密碼很容易。注意 mysql的root使用者和伺服器作業系統的root使用者是兩個不同的使用者,不要搞混了。基本的思路是,以安全模式啟動mysql,這樣不需要密碼可以直接以r...