天天看点

在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);