環境:Centos 6.9,Mysql 8.0
配置准備:1、為Centos配置好網絡,使用遠程工具連接。
2、安裝mysql,途徑不限。mysql8.0和5.7區別不大,8.0在配置主從的時候默認開啟了binlog,5.7手動起一下就好,下文有啟動方法。(我使用rpm包安裝,安裝后要先啟動msyql服務,命令service mysqld start)
3、mysql安裝后的默認密碼在 /etc/my.cnf 中 log-error配置項所指向的log地址中 /var/log/mysqld.log
主從復制
好處:多節點性能變優,安全性更高,提高服務器負載。
應用場景:數據庫備份、讀寫分離
步驟: 首先。確定一個主節點master,其他為從節點slave。
1、配置主節點。創建用戶授予權限;如果binlog沒開啟,打開binlog日志;
2、配置從節點。配置同步日志;確定主節點的ip,端口,用戶;啟動從節點;
主節點(Master):
修改mysql配置文件,vim /etc/my.cnf 配置server-id的值,與從節點不能重復。
創建創建一個用戶。 create user 'repl'@'192.168.110.%' identified by 'Repl_123456';
在主服務器賦予它 replication slave 權限。grant replication slave on *.* to 'repl'@'192.168.110.%';
mysql 日志類型:
Error log 錯誤日志
General query log普通查詢日志
Slow query log 慢查詢日志(記錄哪些查詢比較慢 )
Binary log二進制日志文件(1、用於增量備份。2、主從)
查看是否已開啟binlog:show variables like '%log_bin%';
如果沒開啟,配置 :vim /etc/my.cnf加上 server-id=1(多台節點值不能重復)和 log_bin=/var/lib/mysql/mysql-bin 保存退出 重啟mysql服務。
查看binlog日志:在mysql中 show binlog events in '文件名'; 在系統中 mysqlbinlog 文件名;
每次重新啟動mysql都會新建一個binlog。查看當前是哪個binlog文件:show master status;
show msater logs;(查看所有日志文件),reset master(清空所有日志文件)
binlog日志恢復數據
mysqlbinlog 文件名 | mysql -u root -p
從節點(Slave):
修改mysql配置文件,vim /etc/my.cnf
配置server_id(不能與主節點重復,且必須為數字)
配置同步日志路徑relay-log=/var/lib/mysql/relay-bin
進入mysql執行
mysql> CHANGE MASTER TO -> MASTER_HOST='192.168.110.66', -> MASTER_USER='repl', -> MASTER_PASSWORD='Repl_123456', -> MASTER_LOG_FILE='binlog.000007', -> MASTER_LOG_POS=0; Query OK, 0 rows affected, 2 warnings (0.01 sec) mysql> START SLAVE; Query OK, 0 rows affected (0.00 sec)
show slave status\G;檢查是否已鏈接上主節點,根據里面的錯誤信息修改配置。確保master防火牆關閉,/var/lib/mysql/auto.cnf里的uuid不重復。
如果出現Slave_Io_Running:yes但Slave_SQL_Running:No的情況執行
mysql> stop slave;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> start slave;
配置成功!
主主復制其實的意思就是節點直接互為主從復制。
在配置好主從之后再去配置從節點,反向配置一遍主從。