mysql主从同步设置

2017-03-05 01:02:12  对羊弹琴

需要材料:

主库: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

capture11111519665361png.png

(需要重点关注的是,需要同步的数据库,例如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
capture11121519666352png.png
Slave_IO_State #从站的当前状态 
Slave_IO_Running: Yes #读取主程序二进制日志的I/O线程是否正在运
Slave_SQL_Running: Yes #执行读取主服务器中二进制日志事件的SQL线程是否正在运行。与I/O线程一样
Seconds_Behind_Master #是否为0,0就是已经同步





测试一下:

master端

captute11141519666971png.png

slave端:

capture11151519666992png.png

评论(0) 最后更新于 2019-03-12 21:37:26