linux下mysql主从复制配置几种情况(库名不同、同步部分库表、忽略某几个表不同步等)

前提条件

1.主从服务器操作系统版本和位数一致;

2.Master 和 Slave 数据库的版本要一致;

3.Master 和 Slave 数据库中的数据要一致;

4.Master 开启二进制日志, Master 和 Slave 的 server_id 在局域网内必须唯一;

主服务器配置

1、修改 my.cnf 配置文件

vi /etc/my.cnf

增加如下配置

#主服务器配置

log-bin = mysql-bin

binlog_format = mixed #这里不只可以配置成mixd,还有其他的,具体使用情况根据自己的实际情况配置

server-id = 1

binlog-do-db = 同步的数据库名

2、重启服务

service msyqld restart

3、创建一个用于让从数据库连接的用户(也可以用现有的用户密码)

mysql> CREATE USER '用户名'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
mysql> GRANT REPLICATION SLAVE ON *.* TO '用户名'@'%';

4、刷新授权表信息

mysql> flush privileges;

5、进入数据库

获取主节点当前binary log文件名和位置(position)

mysql> SHOW MASTER STATUS;

记住这个 File 和 Position ,配置从服务器连接主服务器要用

从数据库配置

1、修改 my.cnf 配置文件

vi /etc/my.cnf

增加如下配置

#从数据库配置(这个配置必须与住服务器一致)

log-bin = mysql-bin

binlog_format = mixed

server-id = 2

#如果主从库名相同,用这个

#replicate-do-db = 数据库名

#如果主从库名不同

#replicate-rewrite-db = 主数据库名 -> 从数据库名

#如果同步部分库表

#replicate-wild-do-table = 数据库名.表1
#replicate-wild-do-table = 数据库名.表2

#忽略某表

#Replicate_Wild_Ignore_Table = 数据库名.表1

2、重启服务器

service mysql restart

3、进入数据库

配置连接主服务器

mysql> change master to 
master_host='主库ip',
master_user='用户名',
master_password='密码',
master_port=3306,
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=156;
mysql> flush privileges;

4、开启主从同步

mysql> start slave;

   关闭主从同步 (若要重新设置连接,必须要先停掉stop slave)

mysql> stop slave;

  取消主从复制

mysql> reset slave all;

5、查看主从同步状态

mysql> show slave status\G;

Slave_IO_Running和Slave_SQL_Running的状态都为YES表示同步成功

 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值