Mysql 5.7.21 設置主從庫同步

主從複製條件:html

Mysql 單機多實例安裝參考Mysql 5.7.21 設置主從庫同步
下面的操做是多實例主從複製,3306爲主庫,3307爲從庫。mysql

  1. 主庫要開啓log-bin,主庫和從庫的server-id要不同,修改/etc/my.cnf配置
[mysqld_multi] 
mysqld    = /usr/local/mysql/bin/mysqld  
mysqladmin = /usr/local/mysql/bin/mysqladmin
log        = /tmp/mysql_multi.log 
user = mysql
pass = 123456
[mysqld1] 
   datadir = /usr/local/data
   socket = /tmp/mysql.sock1 
   port = 3306 
   user = mysql 
   performance_schema = off 
   innodb_buffer_pool_size = 32M 
   bind_address = 0.0.0.0 
   skip-name-resolve = 0 
   server-id=1
   log-bin=/usr/local/data/mysql-bin
[mysqld2] 
   datadir = /usr/local/data3307
   socket = /tmp/mysql.sock2 
   port = 3307 
   user = mysql 
   performance_schema = off 
   innodb_buffer_pool_size = 32M 
   bind_address = 0.0.0.0 
   skip-name-resolve = 0 
   server-id=2
  1. 在主庫上面建立同步用戶:
mysql>grant replication slave on *.* to 'rep'@'%' identified by '123456';    #後面的密碼要設置複雜些。
mysql> flush privileges;
  1. 導出主庫數據文件:
    3.1 常規方法,進入主庫:
mysql> flush table with read lock;     #先鎖表,鎖表後不能退出mysql窗口,不然失效  
mysql> show master status;   #記錄bin-log的位置信息  
+------------------+----------+--------------+------------------+  
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |  
+------------------+----------+--------------+------------------+  
| mysql-bin.000004 |      560 |              |                  |  
+------------------+----------+--------------+------------------+  
mysql> exit
mysqldump -uroot -p -S /data/3306/mysql.sock --events -A -B|gzip >/tmp/bak_$(date +%F).sql.gz  
mysql> unlock tables;   #解鎖數據庫

3.2 快捷方法:sql

mysqldump -uroot -p -S /data/3306/mysql.sock --events -A -B -F --master-data=2 -x|gzip >/tmp/bak_f_$(date +%F).sql.gz     
 -x 自動鎖表  
 -F --master-data=2    以備註形式記錄bin-log的位置。(能夠打開文件看頭部備註信息)
  1. 還原備分內容到從庫:
gzip -d bak_f_2018-03-26.sql.gz
mysql -uroot -p -S /tmp/mysql.sock2 < bak_f_2018-03-26.sql
  1. 鏈接從庫,並執行:mysql -uroot -p123456 -S /tmp/mysql.sock2
CHANGE MASTER TO    
MASTER_HOST='172.16.1.214',   
MASTER_PORT=3306,  
MASTER_USER='rep',   
MASTER_PASSWORD='Root1234',   
MASTER_LOG_FILE='mysql-bin.000004',  
MASTER_LOG_POS=560;
mysql> start slave;        #開啓同步  
mysql> show slave status \G ;    #查看同步狀態信息
  1. 監控mysql主從複製的狀態指標:
mysql -uroot -p123456 -S /data/3307/mysql.sock -e "show slave status \G ;" | egrep -i "_Running|_Behind"
Slave_IO_Running: Yes                             #同步進程是否啓動
        Slave_SQL_Running: Yes                          #sql進程是否啓動
        Seconds_Behind_Master: 0                       #從庫同步完成須要的時間
相關文章
相關標籤/搜索