關閉數據庫
當你準備重置root用戶密碼時,首先要做的是停止mysql服務
//查詢mysqld進程pid
ps -ef | grep mysqld | awk '{if(NR ==1){print $2}}'
//停止進程
kill pid號
如果有啓動腳本可以通過
service mysqld stop
來停止數據庫
跳過權限檢測
切換到mysql目錄下的bin目錄下 尋找mysald_safe
有些雲服務器或者預裝mysql版本的liunx可能並不在這個目錄
可以查詢一下
find / -name mysqld_safe
增加參數 跳過權限驗證
./mysqld_safe --skip-grant-tables --skip-networking &
--skip-grant-tables跳過權限驗證
--skip-networking 禁止原創鏈接(暴露在公網上請增加此參數 可選)
修改root密碼
version 5.7+
user表發生變化 原來的password字段由authentication_string取代 還需要注意兩個字段 特別是第一次安裝完數據庫沒有修改的
password_expired 表示密碼是否過期 N表示未過期,如果是Y需要修改此參數
account_locked 新增的字段 表表示賬號是否鎖定 同上 N/Y
update mysql.user set authentication_string = PASSWORD('123456') where user = 'root'\G
version 5.7-
update mysql.user set Password = PASSWORD('123456') where user = 'root'\G
修改完成後 使用
flush privileges;
刷新權限
退出免驗證模式
停止mysqld_safe進程 可以通過
ps -ef | grep mysqld_safe | awk '{if(NR ==1){print $2}}'
kill -9 pid號
重啓mysql
如果有啓動腳本可以通過
service mysqld start
否則
/usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid
後面參數可以自己修改或者不指定
最後 測試帳號