mysql主從復(fù)制步驟
1,創(chuàng)建用戶
create user 'zhongc'@'192.168.0.%' identified by '123456';
指定訪問者h(yuǎn)ost
grant replication slave on *.* to 'zhongc'@'192.168.0.%' identified by '123456';
需要哪些權(quán)限
mysql日志
- Error log 錯(cuò)誤日志
- General query log 普通查詢?nèi)罩?/li>
- Slow query log 慢查詢?nèi)罩?/li>
- Binary log 二進(jìn)制日志 ,記錄了所有操作mysql的日志 DDL ,DML
Binary log
- 增量備份
- 主從數(shù)據(jù)同步
mysql5.7版本默認(rèn)不開啟binlog日志
show variables like '%log_bin%'
- 如何開啟binlog日志
[mysqld]
server_id=1 # 不能重復(fù)
log_bin=mysql-bin #binlog日志文件的名字
binlog-format=ROW
binlog-do-db=demo
+---------------------------------+---------------------------------------+
| Variable_name | Value |
+---------------------------------+---------------------------------------+
| log_bin | ON |
| log_bin_basename | /usr/local/mysql/data/mysql-bin |
| log_bin_index | /usr/local/mysql/data/mysql-bin.index |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| sql_log_bin | ON |
+---------------------------------+---------------------------------------+
mysql-bin.000001 是數(shù)據(jù)文件,保存日志數(shù)據(jù)
mysql-bin.index 是索引文件, 保存日志文件的名字
- 查看binlog
show binlog enevts in 'filename'
或者
mysqlbinlog filename
查看日志當(dāng)前狀態(tài)
show master status
提價(jià)日志,生成一個(gè)新的日志文件
flush logs
查看所有日志文件
show master logs
刪除所有日志文件
reset master
- 使用binlog進(jìn)行數(shù)據(jù)恢復(fù)
mysqlbinlog mysql-bin.00001 | mysql -uroot -p
mysqlbinlog mysql-bin.000001 -start-position 219 -stop-position 421 | mysql -uroot -p
搭建主從
- 整體規(guī)劃
- 準(zhǔn)備機(jī)器,配置網(wǎng)絡(luò),安裝mysql
- 配置主節(jié)點(diǎn)
-- 創(chuàng)建用戶
-- 開啟binlog - 配置從節(jié)點(diǎn)
-- 配置同步日志[mysqld] server_id=2 # 不能重復(fù) relay-log=/var/lib/mysql/relay-bin # binlog日志文件的名字 relay-log-index=/var/lib/mysql/relay-bin.index #修改 auto.cnf 中的uuid與主節(jié)點(diǎn)不同
-- 指定主節(jié)點(diǎn)ip,端口,用戶
change master to master_host='192.168.0.105',master_port=3306,master_user='zhongc',master_pas sword='123456',master_log_file='mysql-bin.000001',master_log_pos=0;
查看從節(jié)點(diǎn)
show salve status\G;
如果
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
就表示成功
-- 啟動(dòng)從節(jié)點(diǎn)
主主復(fù)制
-
在從庫開啟binlog
[mysqld] server_id=2 # 不能重復(fù) log_bin=mysql-bin #binlog日志文件的名字 relay-log=/var/lib/mysql/relay-bin # binlog日志文件的名字
在從庫創(chuàng)建用戶并賦予權(quán)限
在主節(jié)點(diǎn)指向從庫節(jié)點(diǎn)ip,端口,用戶
配置自動(dòng)增長 的步長
HaProxy
- 代理tcp連接
-- 可以代理多個(gè)從節(jié)點(diǎn),進(jìn)行負(fù)載均衡
KeepAlived
- ka會(huì)虛擬一個(gè)ip,來綁定到集群中master機(jī)器上,當(dāng)master掛了,ka會(huì)把虛擬ip綁定到backup機(jī)器上,來實(shí)現(xiàn)切換,可以實(shí)現(xiàn)高可用
Mycat
- 用戶從哪里來
-- server.xml