先说说我的环境,两台Ubuntu14的虚拟机,ip地址是192.168.176.150(主)和192.168.176.151(从)。 mysql版本5.5.49.
MySQL安装好了以后,就可以开始配置主从复制。
首先从master-192.168.176.150开始。
1. 首先创建一个帐号,比如用户名backup,密码1234. 此帐号被slave机器用来连接master,然后取回bin log。
2. 连接到MySQL,mysql -u root -p.
3. 授予步骤1创建的帐号replication slave的权限,用户名的密码会储存到master.info里
mysql > GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.*
TO backup@’192.168.176.151’
IDENTIFIED BY ‘1234’;
4. 打开my.cnf,在配置文件里加入如下值:
server-id=150
log-bin=mysql-bin #这项必须有,但是可以保持value不变
5. 重启master
6. 运行show master status
mysql>show master status.
正常会输出一个表格,里面有两列比较重要,一个是File,一个是position。其中file的名字需要在后面配置slave时候指定,因为这个是说明slave想从master里拿到的log的文件名字。postion是从那个位置同步。同样需要在配置slave的时候指定。
配置salve:
1. 修改my.cnf
log_bin = mysql-bin
server_id = 151
注意server_id是必须的,但是log_bin是可选的。但是如果这个slave同时是另外机器的master,那么这个就是必选项。
2. 启动slave
mysql>change master to master_host='192.168.176.150',master_user='backup',master_password='1234',
master_log_file='mysql-bin.000001',master_log_pos=278;
3. 启动slave
mysql>start slave;
4. 可以用show slave status查看slave状态
mysql>show slave status\G; #注意是大写的G,这样,得到的结果排版就是竖向的
注意:Slave_IO及Slave_SQL进程必须正常运行,即YES状态。附加的可以查看Slave_IO_State,应该是等待master发送event,即Waiting for master to send event
5. 测试,在master的一个表里插入一条数据,看看是否会同步到从表。