需要材料:
主库:192.168.189.128
从库:192.168.189.129
两个数据库都安装了Mysql数据库,保证允许远程连接
主库配置:
1.修改mysql的配置文件/etc/my.cnf
[mysqld] ....... log-bin=mysql-bin// server-id=1 binlog-do-db=DB2 //如果备份多个数据库,重复设置这个选项即可 binlog-do-db=DB3 //需要同步的数据库,如果没有本行,即表示同步所有的数据库 binlog-ignore-db=mysql //被忽略的数据
2.重启mysql服务,连接mysql服务,创建用于复制的用户
mysql> grant replication slave on *.* to 'username'@'%' identified by 'password';
3.查看master信息
mysql> show master status
(需要重点关注的是,需要同步的数据库,例如DB2,DB3如果在主库中已经存在,且有数据,那么需要手动导入到从库,即开启同步之前产生的数据不会同步到从库)
从库配置
1.修改my.cnf文件
[mysqld] log-bin=mysql-bin server-id=2 replicate-do-db=DB2 replicate-do-db=DB3 master-host=192.168.189.128 master-port=3306 master-user=username master-password=password
2.重启从库MySQL,连接,做同步设置
mysql> slave stop; //先关闭从库slave mysql> change master to master_host='192.168.189.128', master_user='username', master_password='password', master_log_file='mysql-bin.000001',//查看master信息得到 master_log_pos=106;//查看master信息得到 mysql> slave start; //启动从库slave
3.查看复制状态度
mysql> show slave status\G
Slave_IO_State #从站的当前状态 Slave_IO_Running: Yes #读取主程序二进制日志的I/O线程是否正在运 Slave_SQL_Running: Yes #执行读取主服务器中二进制日志事件的SQL线程是否正在运行。与I/O线程一样 Seconds_Behind_Master #是否为0,0就是已经同步
测试一下:
master端
slave端: