首先准备两台装有MariaDB或者MySQL的虚拟机,我是两台win2003虚拟机,都装有MariaDB, 两个分别为192.168.100.217 和 192.168.100.218 两台机器基本配置一样,但是有一点,其中一台的my.ini文件中配置server_id = 2 (即两台机器的server_id不能相同) 192.168.100.217的my.ini文件中[mysqld]节点添加参数如下:log-bin=binlog #开启binlog功能log-bin-index=binlog.indexsync_binlog=0server_id = 1 #两台机器不能重复,一个1 一个2 就好
192.168.100.218的my.ini文件中[mysqld]节点添加参数如下:log-bin=binlog #开启binlog功能log-bin-index=binlog.indexsync_binlog=0server_id = 2 #两台机器不能重复,一个1 一个2 就好
GRANT replication slave ON *.* TO'testsync'@'%' identified by 'abc123,'; flush privileges;
flush tables with read lock; show master status; 执行完show这一步骤,请记住几个参数,一个是File字段的文件名称,以及Position数值,在后续需要使用 unlock tables;
先执行添加mster命令,有几点必须注意的,就是master_log_file的值必须为在217上执行show的时候获取的File的名称,master_log_pos值必须为Position值,否则会出错
change master to master_host='192.168.100.217', master_port=3306, master_user='testsync',master_password='abc123,', master_log_file='binlog.000003',master_log_pos=598;
start slave;show slave status;#执行这命令后 注意观察下面这两个参数,必须要都是yes才行Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果其中一个是no,那么请观察后续字段 Last_IO_Error或者Last_SQL_Error中的描述,然后根据错误去修改配置参数
其中可能出现错误的几点,在这里说明下:
1、server_id相同,倒是IO错误
2、master_log_file和master_log_pos错误,导致IO错误
flush tables with read lock; show master status; 执行完show这一步骤,请记住几个参数,一个是File字段的文件名称,以及Position数值,在后续需要使用 unlock tables;
先执行添加mster命令,有几点必须注意的,就是master_log_file的值必须为在217上执行show的时候获取的File的名称,master_log_pos值必须为Position值,否则会出错
change master to master_host='192.168.100.218', master_port=3306, master_user='testsync',master_password='abc123,', master_log_file='binlog.000002',master_log_pos=323;
start slave;show slave status;#执行这命令后 注意观察下面这两个参数,必须要都是yes才行Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果其中一个是no,那么请观察后续字段 Last_IO_Error或者Last_SQL_Error中的描述,然后根据错误去修改配置参数
其中可能出现错误的几点,在这里说明下:
1、server_id相同,倒是IO错误
2、master_log_file和master_log_pos错误,导致IO错误
可以对其测试一下,在217上新创建数据库,在218上在刚创建的数据库中创建表,如果双方内容一样,那么就验证此配置完成了