MySQL配置复制——新安装的主库和备库

2017-10-18  本文已影响0人  噜噜迅儿

基本步骤

  1. 在每台服务器上创建复制账号
  2. 配置主库和备库
  3. 通知备库连接到主库并从主库复制数据

在每台服务器上创建复制账号

grant replication slave, replication client on *.* 
 to repl@'192.168.0.%' identified by 'p4ssword';

配置主库和备库

  1. 在主库的my.cnf文件中增加或修改如下内容:
log_bin=mysql-bin               # 默认情况下,根据机器名来命名的
                                # 如果之前没有在MySQL的配置文件中指定log_bin选项,就需要重新启动MySQL。
server_id=92168410              # 使用服务器IP地址的末8位
show master status              # 检查二进制日志文件是否已经在主库上创建
  1. 在备库的my.cnf文件中增加类似的配置,并且同样需要重启MySQL:
log_bin=mysql-bin
server_id=92168411
relay_log=/var/lib/mysql/mysql-relay-bin    # 指定中继日志的位置和命名
log_slave_updates=1             # 允许备库将其重放的时间也继续道自身的二进制日志中
read_only=1                     # 组织任何没有特权权限的线程修改数据

通知备库连接到主库并从主库复制数据

  1. 在备库上执行
    这一步不要通过修改my.cnf来配置,而是使用change master to语句,该语句完全替代了my.cnf中相应的设置,并且允许以后指向别的主库时无需重启备库。
change master to master_host='server1',
 master_user='repl',
 master_password='p4ssowrd',
 master_log_file='mysql-bin.000001',
 master_log_pos=0;              # 从日志的开头读起
show slave status\G             # 检查复制是否正确执行
                                # Slave_IO_State, Slave_IO_Running, Slave_SQL_Running这三列显示当前备库复制尚未运行
start slave;                    # 开始复制
show slave status\G             # 从输出可以看出I/O线程和SQL线程都已经开始运行,Seconds_Behind_Master的值也不再为NULL
  1. 在主库上执行
show processlist\G              # 在主库上可以看到由备库I/O线程向主库发起的连接
  1. 在备库上执行
show processlist\G              # 在备库上也可以看到两个线程,一个是I/O线程,一个是SQL线程
                                # 这些线程总是运行在“system user”账号下
上一篇 下一篇

猜你喜欢

热点阅读