環境說明:
- mysql5.7.26
- mysql配置文件目錄:/etc/my.cnf
- 採用的方式:mysql主從複製模式,同時使用半同步
今天登錄mysql時,忘記了密碼,想着強制修改密碼。步驟如下:
1.修改/etc/my.cnf
在my.cnf文件中,添加如下內容。
vim /etc/my.cnf
#在[mysqld]下面添加如下兩行
##########################################################################################
skip-grant-tables
plugin-load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
##########################################################################################
解釋:網上很多教程都是說只需添加skip-grant-tables,但是在我測試過程中,發現會報如下錯誤。
20190918 11:13:25 [ERROR] /usr/sbin/mysqld: unknown variable 'rpl_semi_sync_master_enabled=1'
20190918 11:13:25 [ERROR] Aborting
這個原因的介紹參看官網:https://dev.mysql.com/doc/refman/5.5/en/server-options.html#option_mysqld_plugin-load
2.重啓mysql
執行Mysql重啓命令,重啓mysql
service mysql restart
3.重設mysql密碼
登錄Mysql,重設密碼
#不用輸入密碼,直接回車
mysql -u root -p
update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
flush privileges;
exit;
4.刪除/etc/my.cnf中剛加的語句
修改成功後,刪除剛剛添加的語句
vim /etc/my.cnf
#刪除在[mysqld]下面添加如下兩行
##########################################################################################
skip-grant-tables
plugin-load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
##########################################################################################
5.重啓mysql生效
按剛剛步驟重啓mysql即可。