mysql主从复制
- 主服务器配置
vim my.cnf 添加
log-bin=mysql3306-bin //将mysql二进制日志取名为mysql3306-bin
binlog_format=mixed //二进制日志的格式,有三种:statement/row/mixed,具体分别不多做解释,这里使用mixed
server-id=106 //为服务器设置一个独一无二的id便于区分,这里使用ip地址的最后一位充当server-id
配置完成,:wq 保存,重启mysql
同样的,进入从服务器,配置从服务器的my.cnf,重复步骤1即可,
唯一的区别是,server-id要改成从服务器的ip尾位,即server-id=107;其他两项是一样的,保存,并重启mySQL;
-
在主服务器上为从服务器分配一个账号,就像一把钥匙,从服务器拿着这个钥匙,才能到主服务器上来共享主服务器的日志文件。
进入主服务器的mysql界面,
在mysql操作界面下,输入下面一行命令:
GRANT replication slave ON . TO ‘king’@’%’ IDENTIFIED BY ‘king’; (replication slave 为复制权限,king为用户名)
-
查看主服务器BIN日志的信息(执行完之后记录下这两值,然后在配置完从服务器之前不要对主服务器进行任何操作,因为每次操作数据库时这两值会发生改变).
在主服务器mysql界面输入show master status;记下File: mysql3306-bin.000003 Position: 2184 -
设置从服务器,进入mysql
关闭slave:stop slave;
开始配置:输入一下命令
CHANGE MASTER TO
MASTER_HOST=“192.168.159.129”,(主服务器IP)
MASTER_USER=“king”,(主服务器分配的复制权限账户名)
MASTER_PASSWORD=“king”,(主服务器分配的复制权限密码)
MASTER_LOG_FILE=“mysql3306-bin.000003”,(连接主服务器二进制日志名称)
MASTER_LOG_POS=442;(连接主服务器二进制日志位置)开启slave:start slave;
-
查看是否配置成功:
命令: show slave status \G;
查看Slave_IO_Running: Yes
Slave_SQL_Running: Yes(如果看到这样的表示配置成功)