天天看點

在CentOS 7上配置MySQL的主從複制模式 (Master-Slave Replication)Reset root password

mysql的主從複制廣泛用于資料庫備份、故障轉移、資料分析等場合。

mysql主從複制基于主伺服器在二進制日志中跟蹤所有對資料庫的更改(更新、删除等等)。是以,要進行複制,必須在主伺服器上啟用二進制日志。從伺服器從主伺服器接收已經記錄到其二進制日志的更新,當一個從伺服器連接配接主伺服器時,主伺服器從日志中讀取最後一次成功更新的位置,從伺服器接收從那時起發生的更新,并在本機上執行相同的更新,然後等待主伺服器通知新的更新。從伺服器執行備份不會幹擾主伺服器,在備份過程中主伺服器可以繼續處理更新。

測試環境

master: 192.168.10.201

slave: 192.168.10.202

端口: 3306

資料庫:test2

安裝mysql

yum install mariadb mariadb-server

systemctl enable mariadb

service mariadb start

mysqladmin -u root password abc@def

主伺服器配置

主伺服器配置檔案/etc/my.cnf

[mysqld]

server-id=1

binlog-do-db=test2

relay-log=/var/lib/mysql/mysql-relay-bin

relay-log-index=/var/lib/mysql/mysql-relay-bin.index

log-error=/var/lib/mysql/mysql.err

master-info-file=/var/lib/mysql/mysql-master.info

relay-log-info-file=/var/lib/mysql/mysql-relay-log.info

log-bin=/var/lib/mysql/mysql-bin

重新開機mysql

service mariadb restart

賦予replication slave權限

mysql -uroot -p

grant replication slave on . to 'slave_user'@'%' identified by 'password';

flush privileges;

flush tables with read lock;

show master status;

file

position

binlog_do_db

binlog_ignore_db

mysql-bin.000002

469

test2

1 row in set (0.00 sec)

注意:記下紅色部分,稍後還會用到。

備份資料庫

為了備份資料庫,需要為資料庫中所有表叫上“隻讀鎖” (read lock),再進行dump備份:

mysqldump -u root -p --all-databases --master-data > /root/dbdump.db

備份完成後,可以用以下指令解鎖:

unlock tables;

從伺服器配置

還原資料庫

mysql -u root -p < /root/dbdump.db

從伺服器配置檔案/etc/my.cnf

server-id=2

replicate-do-db=test2

連接配接主伺服器

stop slave;

change master to master_host='192.168.10.201', master_user='slave_user', master_password='password', master_log_file='mysql-bin.000002', master_log_pos=469;

start slave;

show slave statusg

1. row **

replicate_wild_ignore_table:

master_ssl_verify_server_cert: no

replicate_ignore_server_ids:

驗證

主伺服器

drop test2;

create database test2;

use test2;

create table emp (c int);

insert into emp (c) values (10);