#每日三件事,第995天#
最近在學習MySQL,安裝了CentOS7.9的虛擬機和5.7的MySQL。爲什麼安裝5.7呢?僅僅是因爲目前還有很多用在用這個版本而已。
第一次聽到MySQL的主從配置,是一個用戶說他們的MySQL是讀寫分離的。一臺數據庫負責寫,另外一臺數據庫負責讀取。負擔了數據庫的負載,同時也備份了數據,保證了安全性。
在網絡安全等級保護的標準裏,數據備份恢復控制點裏面有一條:c)應提供重要數據處理系統的熱冗餘,保證系統的高可用性。對與數據來講,就需要冗餘備份,實現高可用性。讀寫分離的主從配置就可以滿足這項標準的要求。
MySQL實現數據的同步,主要是通過binlog來實現。啓用binlog需要修改配置文件/etc/my.cnf啓用binlog日誌:
server-id =1
log-bin=/var/lib/mysql/mysql-bin
然後重新啓動mysqld服務,登錄mysql之後就可以查看binlog是否啓用。
mysql> show variables like "log%" ;
+----------------------------------------+--------------------------------+
| Variable_name | Value |
+----------------------------------------+--------------------------------+
| log_bin | ON |
| log_bin_basename | /var/lib/mysql/mysql-bin |
| log_bin_index | /var/lib/mysql/mysql-bin.index |
看到log_bin ON,就說明binlog已經開啓。
binlog日誌其實是記錄了用戶對數據庫的操作動作,根據binlog的日誌,可以對數據庫進行數據恢復。尤其是誤操作的時候。
show master status : 查看當前正在寫入的binlog文件:
mysql> show master status ;
+------------------+----------+--------------+------------------+-------------------+
| File | Position. | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 | 154 | | | |
+------------------+----------+--------------+------------------+-------------------+
show binlog events ,show binlog events in 'mysql-bin.000001'都可以查看當前寫入binlog的事件。