您好,登錄后才能下訂單哦!
環境相關:
OS:CentOS release 6.9
IP:192.168.1.10
MySQL:MariaDB-10.1.30
1. 修改前的確認
修改root密碼是需要重啟mysql庫,確認生產真的可以重啟mysql庫;
確認生產是否有直接使用root用戶連接到庫的使用情況,如果有則要做相應連帶變更;
修改密碼前請停掉連接到庫的應用,也就是停掉該庫相關的所有生產線。
2. 停庫修改密碼
ps -ef|grep mysql|grep -v grep # 找到對應的mysql服務器守護進程,查看是否有其他mysql服務守護進行存在 ps -ef|grep mysql|grep -v grep|xargs kill -9 # 殺掉root啟動庫的命令進程和庫的守護進程,否則庫會自動再次啟動 # 殺掉進程,停庫,殺掉進程之前請確保連接到庫的應用全部停掉!!! mysqld_safe --user=mariadb --skip-grant-tables & # 忽略授權表啟動庫,此時如果使用密碼則無法登陸庫 # 連接到庫的應用如果沒有停掉,此時是無法成功連接到庫的 mysql use mysql; select Host,User,Password from user where user='root'; exit; # 進到mysql庫中,查詢當前的root密碼的密值,保存密值用以回滾 # 比如我當前密碼是vincent,密值是'*CDA83EBFF468E905FF304FE0D3D9F4D665C6579D' mysql use mysql; update user set password=password('test') where user='root'; exit; # 進到mysql庫中,設置root密碼 mysqladmin shutdown mysqld_safe --user=mariadb & # 重啟庫,登錄測試 mysql -uroot -ptest -Dmysql exit; # 登錄成功
3. 操作回滾
當你修改完root密碼后,發現很多問題,比如有未知的應用以原來的root密碼連接到了庫(操蛋的歷史遺留問題),需要回滾。
mysql -uroot -ptest -Dmysql update user set password='*CDA83EBFF468E905FF304FE0D3D9F4D665C6579D' where user='root'; flush privileges; exit; # 使用上一步記錄的root密碼修改前的密值進行回滾 mysql -uroot -pvincent -Dmysql exit; # 回滾完成
4. 相關知識點
可以直接使用密碼的密值設置密碼,目前沒有找到可以直接將密值逆轉成密碼明文的方法,查看密碼的密值可以使用password函數:
mysql -uroot -pvincent select password('vincent'),password('test');
但是如果你知道了密值,就可以神不知鬼不曉的以root權限修改某個用戶的密碼,使用之,然后還原。
該情況多用于某個用戶的密碼遺忘,重置密碼,相同的情況還出現在oracle數據庫中。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。