1,配置master库
在Linux环境下MySQL的配置文件的位置是在 /etc/my.cn (此处配置最好放在其他配置之前)
log-bin=mysql-bin server-id=1 binlog-ignore-db=information_schema#同步的时候ignore的数据库 binlog-ignore-db=performance_schema binlog-ignore-db=mysql binlog-do-db=epm_comp #指定需要同步的数据库
然后重启mysql:
service mysqld restart
#给slave权限 mysql>GRANT FILE ON *.* TO 'root'@'172.16.91.123' IDENTIFIED BY 'password'; mysql>GRANT REPLICATION SLAVE ON *.* TO 'root'@'172.16.91.123' IDENTIFIED BY 'password'; mysql>FLUSH PRIVILEGES service mysqld restart
重启mysql,登录mysql,显示主库信息
show master status;
这里的 File 、Position 是在配置Salve的时候要使用到的,Binlog_Do_DB表示要同步的数据库,Binlog_Ignore_DB 表示Ignore的数据库,这些都是在配置的时候进行指定的。
另外:如果执行这个步骤始终为Empty set(0.00 sec)
,那说明前面的my.cnf没配置对。
2,配置slave库
从库的配置,首先也是修改配置文件:/etc/my.cnf 如下:
#slave库的my.ini/my.cnf log-bin=mysql-bin server-id=3 binlog-ignore-db=information_schema binlog-ignore-db=performance_schema binlog-ignore-db=mysql replicate-do-db=epm_comp replicate-ignore-db=mysql log-slave-updates slave-skip-errors=all slave-net-timeout=60
修改完/etc/my.cnf 文件之后,重启一下MySQL(Linux:service mysqld restart)
windows:在服务中
mysql> stop slave; #关闭Slave mysql> change master to master_host='192.168.116.13',master_user='root',master_password='password',master_log_file='mysql-bin.000002', master_log_pos=120; mysql> start slave; #开启Slave mysql> show slave status #查看配置的信息
在这里指定Master的信息,master_log_file是在配置Master的时候的File选项, master_log_pos是在配置Master的Position 选项,这里要进行对应。
配置信息如下:
3,测试