mysql主从复制原理在真实的归宿的文章 高性能mysql主从架构的复制原理及配置详解 里已经讲解的很清晰了。我在这里记录一下我的操作与我自己的理解。
我需要查看一下 show variables like '%binlog%' 的各个参数含义
1.首先要理解mysql主从复制的原理,再来想需要注意的问题。
a.需要开启bin-log.
b.由于两部服务器需要通过socket通讯,防火墙需要打开3306端口(实际上请求是通过master的3306端口主动发起,其他端口是否需要打开还未考究)。
c. slave 的 relay-log 要开启
所以我们首先开启master的 bin-log(方法:找到my.cnf,加入 server-id=xx,log-bin=/var/lib/mysql/log/mysql-bin.log,重启数据库,show variables like '%binlog%' )。
第二步:在master创建一个给slave的账号。
grant replication slave,reload,super on *.*
to backup@’10.100.0.200’
identified by ‘1234’;
再执行 show master status ;
获取 log-bin文件位置 和 目前位置position(以便能从这里开始复制)
第三步:将master的原始数据拷贝到slave中去。
第四步:改slave配置,
log_bin = mysql-bin
server_id = 2
relay_log = mysql-relay-bin
log_slave_updates = 1
read_only = 1
mysql> change master to master_host='192.168.1.9',
-> master_user='repl',
-> master_password='p4ssword',
-> master_log_file='mysql-bin.000001',
-> master_log_pos=0;
mysql> start slave;
运行show slave status查看输出结果:
mysql> show slave status\g
主要看
slave_io_running=yes(start slave之后等几秒钟这个才会变成yes)
slave_sql_running=yes
这两个都是yes就基本可以了。
mysql>show processlist\g;
