對於dba來說,丟失超管使用者root的密碼是致命的,
可以通過新增--ship-grant-tables引數來跳過許可權表。
這個時候需要強制停庫,先檢視mysql程序號
kill掉mysql程序,命令如下:
kill完可以再檢視是否還有程序
建議停庫這種操作不要影響業務的情況下,停服操作的,還有最好這種密碼記錄好的,可以用keepass儲存密碼軟體!
然後加跳過許可權表引數,重啟資料庫。這樣即使不輸入密碼,也可以進入資料庫。
直接輸入mysql不需要密碼即可進入
給root使用者設定新的密碼並重新整理許可權,mysql5.7之後,庫下的password欄位用authentication_string欄位代替。
(product)root@localhost:mysql.sock [設定完成之後,重啟資料庫。注意重啟的時候不需要再加--skip-grant-tables引數了,正常啟動服務,輸入新的密碼可以正常進入資料庫了。這邊重啟以後測試直接mysql沒有密碼是無法進入的了。(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)
[這邊輸入密碼連線,即可正常進入,是修改後的密碼123456root@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)
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 修...