mariadb 10.1.19 主从复制

2016-12-10 10:43:04来源:oschina作者:Colben人点击

第七城市

环境:


# mariadb 主服务器,centos6.5,192.168.1.10,端口 10000
# mariadb 从服务器,centos6.2,192.168.1.6
# 要复制的数据库有 data_db、conf_db

1、在主服务器上创建用于备份的用户 replicator


# 此处建议用户名和指定的ip地址的最后一位数字一致。
mysql> grant replication slave on *.* to 'replicator6'@'192.168.1.6' identified by 'password';
mysql> flush privileges;

2、在主服务器上修改 my.cnf


# 开启二进制日志
log-bin = mysql-bin
binlog_format = mixed
# 建议与本机ip地址最后一位一致,与其他互备服务器均不一致
server_id = 10
read-only = 0
# 关注要复制的数据库
binlog-do-db = data_db
binlog-do-db = conf_db
# 忽略的数据库
# binlog-ignore-db =
# 双主或多主互备时,会用到以下配置
# 自增主键初始值,与其他互备服务器一致
# auto-increment-offset =
# 自增主键等差值,与其他互备服务器均不一致
# auto-increment-increment =

3、在主服务器上重启mariadb,获取 master 状态


# 如果 mariadb 是全新安装,则无须导出数据库初态,直接查看 binary 日志位置即可。
# 锁定要导出的数据库表
mysql> flush tables with read lock;
# 导出数据库初态
# 在主服务器的另一个终端中运行
mysqldump --master-data -uroot -p data_db > /tmp/data_db.sql
mysqldump --master-data -uroot -p conf_db > /tmp/conf_db.sql
# 复制到从服务器上
scp /tmp/data_db.sql /tmp/conf_db.sql 192.168.1.6:/tmp/
# 查看 binary 日志位置
mysql> show master status/G
# 记住输出里的如下类似两行
# File: mysql-bin.000001
# Position: 137103822
### 解锁数据库表
mysql> unlock tables;

4、在从服务器上编辑 my.cnf


# 如果该 slave 中也运行了master,则开启二进制日志
# log-bin = mysql-bin
# binlog_format = mixed
# log-slave-updates = ON
# 建议与本机ip地址最后一位一致,与其他互备服务器均不一致
server_id = 6
read-only = 0
# 指定要复制的数据库
replicate-do-db = data_db
replicate-do-db = conf_db
# 忽略的数据库
# replicate-ignore-db =
# 中继日志
relay_log = mysql-relay-bin
# 双主或多主互备时,会用到以下配置
# 自增主键初始值,与其他互备服务器一致
# auto-increment-offset =
# 自增主键等差值,与其他互备服务器均不一致
# auto-increment-increment =

5、在从服务器上重启 mariadb,导入初态


# 创建要导入的数据库
mysql> create database data_db default charset utf8;
mysql> create database conf_db default charset utf8;
# 导入数据库
msyql -uroot -p data_db < /tmp/data_db.sql
mysql -uroot -p conf_db < /tmp/conf_db.sql
# 开启同步
mysql> change master to master_host = '192.168.1.10',
master_port = 10000,
master_user = 'replicator',
master_pasword = 'password',
master_log_file = 'mysql-bin.000001',
master_log_pos = '137103822';
mysql> flush privileges;

6、在从服务器上重启 mariadb,查看 slave 状态


# 在从服务器上查看 slave 状态
mysql> show slave status/G
# 如果看到
# Slave_IO_Running: Yes
# Slave_SQL_Running: Yes
则表示 slave 开启成功!
第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台