mysql 开启主从复制命令_MySQL主从复制 MySQL Replication

指从一个mysql主服务器master将数据复制到另一台或多台mysql从服务器slaves的过程,将主数据的DDL和DML操作通过二进制日志传到复制服务器上,然后在从服务器上对这些日志重新执行,从而使得主从服务器的数据保持同步。复制操作是异步执行,不需要持续的保持连接接收。

一、准备工作

至少两台mysql服务器,版本最好一致,主服务器master必须开启二进制日志文件

1、主服务器配置 my.cnflog_bin = /var/lib/mysql/bin_log/mysql-bin

server_id = 47

expire_logs_days = 10

max_binlog_size = 100M

binlog-do-db = geling

binlog-ignore-db = mysql

# service-id 表示服务器标识id号,master和slave主机的server-id不能一样

# binlog-do-db 表示需要复制的数据库,这里以geling数据库为例

# binlog-ignore-db 表示不需要复制的数据库2、从服务器配置 my.cnfserver_id = 48

# replicate-do-table 指定库中某表要进行复制

# replicate-ignore-table 指定库中某表不会被复制

# replicate-do-db 表示从服务器可以复制的数据库名字,如果有多个数据库,那么可以重复写多个replicate-do-db配置

# replicate-ignore-db 表示从服务器复制过程中忽略复制该配置的数据库名称3、将master的数据库复制到slave中去

二、主从复制操作步骤

1、登录主服务器master,设置一个复制使用的账户,并授予 replication slave 权限mysql> grant replication slave on *.* to 'rep1'@'192.168.160.132' identified by 'xjw1313304';2、设置主数据库master的配置文件my.cnf,开启BINLOG,并设置service-id的值。

my.cnf配置如下:[mysqld]

log_bin = /var/lib/mysql/bin_log/mysql-bin

server_id = 473、在主服务器上,设置锁定有效,这个操作为了确保没有数据库操作,以便获得一致性的快照mysql> flush tables with read lock;4、查询主服务器master上当前的二进制日志和偏移值。这个操作的目的是为了在从数据库启动以后,从这个点进行数据库的恢复。mysql> show master status;

#结果

# file : mysql-bin.000029

# position : 1095、主服务器master停止更新操作,需要生成数据库的备份,可以通过mysqldump导出数据或者使用ibbackup工具进行数据库的备份,如果主数据库停止,那么可以直接使用cp命令将数据库文件复制到从数据库服务器上。

主数据库备份完成后,主数据库恢复写操作mysql> unlock tables;6、修改从数据库的配置文件my.cnf,增加service-id参数,service-id的值必须是唯一的。[mysqld]

server_id = 487、在从服务器上,使用 --skip-slave-start 选项启动从数据库,这样不会立即启动从数据库服务上的复制进程,方便我们对从数据库的服务进行一步的配置# mysql_safe

shell> mysql_safe --skip-slave-start &8、对从数据库服务器做相应的设置,指定复制使用的用户,主数据库服务器的ip端口以及开始执行复制的日志文件和位置mysql> stop slave;

mysql> change master to

-> master_host='192.168.160.131',

-> master_user='rep1',

-> master_password='xjw1313304',

-> master_log_file='mysql-bin.00029',

-> master_log_pos=109;9、在从服务器上,启动slave线程mysql> start slave;10、在从服务器上执行 show slave status\G命令查询从服务器的状态mysql> show slave status\G;

/**

* 在信息中查看,首先查看 'Slave_IO_Running' 和 'Slave_SQL_Running',这两个进程是否是'yes'

* Slave_IO_Running 表明是否此进程能够由从服务器到主服务器正确地读取 binlog日志,并写入到从服务器的中继日志中

* Slave_SQL_Running 表明能否读取并执行中继日志中的binlog信息

**/此时也可以执行 show processlist\G命令查询从服务器的状态mysql> show processlist\G;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值