天天看點

記一次centos 7下 Mysql主從複制筆記

--------------前提說明:

如果主庫是之前存在的,先備份,在從伺服器上邊建立一個和主庫一模一樣的資料庫,并且把主庫原有的資料搬過來

192.168.174.128    主庫 (centos 7)

192.168.174.131    從庫  (centos 7)

配置檔案的位置: vi /etc/my.cnf

------------------  主庫  ---------

server-id = 1        # 節點ID,確定唯一

log-bin = mysql-bin     #開啟mysql的binlog日志功能

sync_binlog = 1         #控制資料庫的binlog刷到磁盤上去 , 0 不控制,性能最好,1每次事物送出都會刷到日志檔案中,性能最差,最安全

binlog_format = mixed   #binlog日志格式,mysql預設采用statement,建議使用mixed

expire_logs_days = 7                           #binlog過期清理時間

max_binlog_size = 100m                    #binlog每個日志檔案大小

binlog_cache_size = 4m                        #binlog緩存大小

binlog_do_db = user                           # 要同步的資料庫,多個複制這句話,寫多行

max_binlog_cache_size= 512m              #最大binlog緩存大

binlog-ignore-db=mysql #不生成日志檔案的資料庫,多個忽略資料庫可以用逗号拼接,或者 複制這句話,寫多行

auto-increment-offset = 1     # 自增值的偏移量

auto-increment-increment = 1  # 自增值的自增量

slave-skip-errors = all #跳過從庫錯誤

## 登陸主庫  建立使用者專門用來主從同步

CREATE USER cdn IDENTIFIED BY 'Admin@123';

grant replication slave on *.* to 'cdn'@'%'  identified by 'Admin@123';

# 檢視主庫的狀态

show master status;

記住 File 和 Position(從庫會用到)

主庫上檢視愚笨主庫連接配接的從庫

show slave hosts;

-----------  從庫 -------------

server_id = 2

log_bin = mysql-bin        #開啟日志

binlog_format=MIXED        #日志記錄的格式

max_binlog_size = 512M     #單個日志檔案最大

expire_logs_day = 3       #日志有效期(天)

replicate_do_db = user     #是在slave上配置,指定slave要複制哪個庫,多個就複制本行

replicate-ignore-db=mysql,performance_schema,information_schema #是在slave上配置,指定slave要忽略哪個庫

relay_log_recovery = 1     #從庫建議開啟,有利于資料一緻性

log_slave_updates = 1      #如果從庫還會用做主庫,建議開啟

#登陸從庫

stop slave;

change master to

master_host='192.168.174.128',

master_user='cdn',

master_password='Admin@123',

master_port=3306,

master_log_file='mysql-bin.000012', 

master_log_pos=154;

start slave;

檢視同步狀态 show slave status\G

       主要看這兩項

      Slave_IO_Running: Yes

      Slave_SQL_Running: Yes

------>>>>>>>>>>>>      Slave_IO_Running: No  -------

1、如果是虛拟機克隆,需要修改mysql的uuid,檔案在位置   find -name auto.cnf

2、看日志檔案比那好是否與主庫一緻:

master_log_file='mysql-bin.000012', (主庫的資訊)

master_log_pos=154; (主庫資訊)