提示信息:
在啓動mysql時不啓動grant-tables,授權表,--skip-grant-tables。
步驟:
1、停掉所有mysql或mariadb服務:
~]#service mysqld stop(CentOS6) ~]#systemctl stop mysqld.service(CentOS7) 或者 ~]#pkill mysql
2、命令行啓動:
~]#/bin/mysqld_safe --skip-grant-tables &
3、進入mysql庫,用戶信息存放在mysql庫下user表:
MariaDB [none]>use mysql;
4、使用password()修改密碼:
MariaDB [mysql]>update user set password=password(‘your 密碼’) where user=’root’;
5、即時生效:
MariaDB [mysql]>flush privileges;
6、退出:
MariaDB [mysql]>exit;
7、此時設置完成,正常情況可以登錄:
~]#mysql -uroot -p
註釋:
flush privileges 命令本質上的作用是將當前user和privilige表中的用戶信息/權限設置從mysql庫(MySQL數據庫的內置庫)中提取到內存裏。MySQL用戶數據和權限有修改後,希望在"不重啓MySQL服務"的情況下直接生效,那麼就需要執行這個命令。通常是在修改ROOT帳號的設置後,怕重啓後無法再登錄進來,那麼直接flush之後就可以看權限設置是否生效。而不必冒太大風險。