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。
或者
vim /etc/my.cnfvi /etc/my.cnf
在[mysqld]下新增skip-grant-tables,然後儲存並退出
[mysqld]skip-grant-tables
重啟mysql服務:
sudo service mysql restart
這樣我們就可以直接用root登入,無需密碼:
mysql -u root
接著重設密碼:
mysql>use mysql;mysql> update user set password=password("
newpassword
") where user='
root
';
mysql> flush privileges;
重設完畢後,我們退出,然後啟動 mysql 服務:
mysql > quit
重啟服務:
sudo service mysql restart
同樣,以上命令適用於ubuntu和debian,centos、fedora和rhel需要用mysqld
替換mysql
現在可以嘗試用新密碼登入了:
mysql -u root -pnewpassword
注意,-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密碼
mysql下建立新使用者 新資料庫 設定訪問許可權控制都需要用到root密碼。萬一把root密碼忘了,該怎麼辦?幸運地是,重設密碼很容易。注意 mysql的root使用者和伺服器作業系統的root使用者是兩個不同的使用者,不要搞混了。基本的思路是,以安全模式啟動mysql,這樣不需要密碼可以直接以r...
mysql 重設root 密碼
windows 1 先停止mysql net stop mysql57 2 修改my.ini 增加 skip grant tables 引數 3 啟動mysql net start mysql57 使用cmd 命令視窗。執行 mysql uroot p 提示輸入密碼,直接回車即可進入 mysql 命...