重設 MySQL 的 root 密碼

2022-02-10 14:55:28 字數 1988 閱讀 2819

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

vi /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 命...