**最好使用同一版本的Mysql
一、修改主服务器的数据库配置文件(bin/my.ini);在 [mysqld] 标签的最下面,添加如下代码:
log-bin=mysql-bin
binlog_format=mixed
server-id=1
read-only=0
binlog-do-db=test
binlog-ignore-db=mysql
auto-increment-increment=2
auto-increment-offset=1
配置项解释:
log-bin:开启操作日志,主从服务器同步需要通过日志;
binlog_format:数据会存到binlog日志中,同步需要设置;
read-only:数据库读写状态,1只读、0读写;
binlog-do-db:同步的数据库;
binlog-ignore-db:不同步的数据库;
auto-increment-increment:主键自增量;
auto-increment-offset:主键起始值;
注:如果启动失败,可能是配置项重复配置(如server-id等在上面可能配置过了,注释即可);主从服务器server-id不能相同,auto-increment-increment相同,auto-increment-offset不同,auto-increment-offset大于auto-increment-increment无效;
二、保存退出,重启MySQL主服务器。
三、主服务器创建一个连接账号
在mysql中运行两个语句:
mysql> create user 'user01'@'%' identified by '123456';
mysql> grant replication slave on *.* to 'user01'@'%' identified by '123456';
注:@后面的’%’表示客户端没有ip地址的限制,如果填为ip地址,将限制指定ip连接,by后面是密码
四、查看主服务器的 master 状态:
mysql> show master status;
记下File、Position
五、从服务器配置文件,在 [mysqld] 标签的最下面,添加如下代码:
log-bin=mysql-bin
binlog_format=mixed
server-id=2
replicate-do-db=test
replicate-ignore-db=mysql
log-slave-updates=ON
auto-increment-increment=2
auto-increment-offset=2
配置项解释:
replicate-do-db:需要复制的数据库名;replicate-ignore-db不需要赋值的数据库名;log-slave-updates:开启后从库的binlog日志才能同步记录主库的操作日志;
注:注意server-id是否已配置过;
六、从服务器连接主服务器
mysql> CHANGE MASTER TO
MASTER_HOST='192.***.***.***',
MASTER_USER='user01',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000004',
MASTER_LOG_POS=7145;
注:MASTER_HOST: 主服务器ip;MASTER_LOG_FILE:查看主服务器master时记下的File;ASTER_LOG_POS:查看主服务器master时记下的Position
七、重启mysql
八、开启slave线程:
mysql> start slave;
查看slave状态:
mysql> show slave status \G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
若都为yes,此时主从部署已成功,可去主服务器增删数据查看从服务器是否变更。