1、准备 两台mysql 数据库
10.168.68.133 mysql1 主
10.168.68.134 mysql2 从
2、msater 创建主从复制的用户 并赋予复制权限

create user cpuser identified by 'cppass';
grant replication slave ,REOPLIATION CLIENT on *.* to 'cpuser'@'%' identified by 'cppass';
flush privileges; 刷新权限

3、master上 /etc/my.cnf 中增加以下三项

server-id=1       设置服务id
log-bin=dbstore_binlog 启用 binlog
binlog-do-db=db_store 只同步db_store库

mysql数据库主从复制_数据库


4、重启数据库 登录 show master status 查看 master 状态

mysql数据库主从复制_status_02


查看二进制日志是否开启 如下图 log_bin 为ON

show global variables like ‘%log%’;

mysql数据库主从复制_主从复制配置_03


查看二进制日志列表

mysql数据库主从复制_mysql_04


5、从节点指定服务器id 指定同步binlog 的位置 在my.cnf 中加入

server-id=2
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index
read_only=1
replicate_do_db=db_store

mysql数据库主从复制_主从复制配置_05

6、连接 slave的mysql服务并配置

change master to master_host='mysql1', master_port=3306,master_user='cpuser',master_password='cppass' ,master_log_file='dbstore_binlog.000001' ,master_log_pos=107

7、查看状态 show slave status\G;

因为没有启动 从节点的复制线程,IO线程 和 SQL 线程都为NO.

Slave_IO_Running: No

Slave_SQL_Running: No

mysql数据库主从复制_主从复制配置_06

8 、启动复制线程

START SLAVE 可以指定线程类型:IO_THREAD ,SQL_THREAD, 如果不指定,则两个都启动

9、再次查看从节点状态 两个线程已启动

mysql数据库主从复制_数据库_07


10、验证 主从复制

主库删除 db_store 数据库 从库 也消失 主库重新创建 后 从库也有了

经测试 只有 use db_sotre 之后的插入sql才会被同步到 slave节点 如果 use_test insert into db_store.ttt values(‘121231’). 这种 连接其他数据库 并 使用 db_store.进行的操作不会同步