之前mysql安装已经写过,这里不再做重复工作。

这里我准备了两台虚拟机(192.168.40.128:mini1 192.168.40.130:mini2),分别配置分别在此环境下创建账户mini1、mini2

CREATE USER ‘username'@'localhost' IDENTIFIED BY ‘userpassword';

创建好账户后,需要为账户赋予远程访问的权限

权限修改完记得刷新。

我们这里以192.168.40.130为从机,以192.168.40.128为主,分别修改他们的配置文件

vi /etc/my.cnf 先加入log-bin=mysql-bin   #开启二进制日志配置

这里的server_id两台机器必须不同,其他无所谓,binlog-do-db此项是需要同步的数据库,我这里配置就是需要同步test,两台机器配置需相同,还有一些其他配置,感兴趣的可以去查查,我这里只为演示列出最基本的4个,不影响环境搭建

(注:两台机器需要同步的数据库中的表必须完全相同,不然会导致数据回滚,slave关闭运行,如果遇到可以查看数据回滚的报错信息来分析,如果数据添加失败可以通过“show slave status\G”命令查看到错误原因)

两台机器环境都重启ok后,下一步需要在主机器上输入“show master status”命令来查看主及的二进制文件和position

 得到主机器的二进制文件名称和position后,去从机192.168.40.130停掉slave:

 成功停止slave后,就可以修改master的配置项了,其中master_host为主机的ip, master_user为可以登录主机的用户, master_password主机账号密码, master_log_file刚才在主机查到的二进制文件名, master_log_pos刚才在主机查到的position

(切记:这里在从机上修改的master配置参数全是来自需要同步数据的主机,写错的话之后的Slave_IO_Running:就会显示NO)

全部配置妥当后,启动slave

start slave;

启动好后,输入“show slave status\G”命令可以看到slave的相关状态,其中的Slave_IO_Running和Slave_SQL_Running必须都为yes,不然数据同步不会成功。

一切显示正常了,这里做个测试,看是否可以同步数据成功:

这里我在192.168.40.128上执行插入语句:

 在从机192.168.40.130上查询:

可以看到数据已经从主机同步过来,表示主从复制已经成功。

(注:如果想要实现主主复制,两台机器都可以实现插入同步,只要将以上操作反过来以192.168.40.130为主再执行一遍即可成功完成,不过主主的形式还是不建议使用,会降低效率!)

posted on 2017-12-14 19:19  cui5445  阅读(250)  评论(0编辑  收藏  举报