MySQL資料庫root密碼忘記丟失重置方法

2022-01-20 15:00:07 字數 3422 閱讀 5852

對於dba來說,丟失超管使用者root的密碼是致命的,

可以通過新增--ship-grant-tables引數來跳過許可權表。

這個時候需要強制停庫,先檢視mysql程序號

kill掉mysql程序,命令如下:

kill完可以再檢視是否還有程序

建議停庫這種操作不要影響業務的情況下,停服操作的,還有最好這種密碼記錄好的,可以用keepass儲存密碼軟體!

然後加跳過許可權表引數,重啟資料庫。這樣即使不輸入密碼,也可以進入資料庫。

直接輸入mysql不需要密碼即可進入

給root使用者設定新的密碼並重新整理許可權,mysql5.7之後,庫下的password欄位用authentication_string欄位代替。

(product)root@localhost:mysql.sock [

(none)

]>

usemysql;

database

changed

(product)root

@localhost:mysql.sock [

mysql

]>

update

user

set authentication_string=password('

123456

') where

user='

root';

query ok,

0 rows affected, 1 warning (0.00

sec)

rows matched:

1 changed: 0 warnings: 1

(product)root

@localhost:mysql.sock [

mysql

]> flush privileges

;query ok,

0 rows affected (0.00 sec)

設定完成之後,重啟資料庫。注意重啟的時候不需要再加--skip-grant-tables引數了,正常啟動服務,輸入新的密碼可以正常進入資料庫了。這邊重啟以後測試直接mysql沒有密碼是無法進入的了。

[

root@tse2 bin

]# mysqld_safe --

deaults-file=/etc/my.cnf &[2

]6720

[root@tse2 bin

]# 2020-01

-16t02:55:45.223195z mysqld_safe logging to

'/mysql/mysql3306/logs/error.log'.

2020-01

-16t02:55:45.262302z mysqld_safe a mysqld process already exists[2

]+exit

1 mysqld_safe --

deaults-file=/etc/my.cnf

[root@tse2 bin

]# mysql

error

1045 (28000): access denied for

user

'root

'@'localhost

' (using password: no)

這邊輸入密碼連線,即可正常進入,是修改後的密碼123456

MySQL5 6版本的資料庫root密碼忘了

vim etc my.cnf 在 mysqld 的段中加上一句 skip grant tables 例如 mysqld datadir var lib mysql socket var lib mysql mysql.sock skip grant tables 1 儲存並且退出vi。重新啟動mys...

修改MySQL資料庫Root密碼

方法一 在my.ini的 mysqld 字段加入 skip grant tables 重啟mysql服務,這時的mysql不需要密碼即可登入資料庫 然後進入mysql mysql use mysql mysql 更新 user set password password 新密碼 where user...

Mysql資料庫root密碼管理

在管理資料庫工作中,如果忘記資料庫root將是十分災難的一件事情.所以如何在忘記root密碼的情況下恢復密碼呢?停止mysql服務程式 修改配置檔案,跳過授權表 啟動mysql服務程式 修改root密碼 驗證root密碼 1 停止mysql服務程式 systemctl stop mysqld 2 修...