之前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为主再执行一遍即可成功完成,不过主主的形式还是不建议使用,会降低效率!)
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/4660.html