Mysql Replication配置

好久不见. 提交于 2020-03-22 02:49:05

使用场景:mysql的实时备份或者读写分离。

环境:

vmware虚拟机,并且安装了linux系统(我用的是centos7),linux上安装了mysql

第一台mysql安装好了之后,将当前linux系统克隆一份。

我的两个linux系统的IP地址分别是128,129;

128为master,129为slave;

两台服务器上的mysql配置当前完全一样。

克隆过来之后,需要把另一个mysql的(/ect/my.cnf)server_id改掉。

这里我把128上的mysql的server_id改成128;

129机子上的mysql的server_id改成129;

修改好配置文件后,启动两台机子上的mysql

启动:

/etc/init.d/mysqld start

重启:

/etc/init.d/mysqld restart

锁定master

flush tables with read lock;

查看master状态

show master status

 

记住这个信息,后面配置slave信息的时候,会用到;

配置slave

 登录129服务器的mysql

mysql -uroot -pgys

关闭slave

给slave配置master

这里的master_log_file='guoyansi128.000004',master_log_pos=120;就是前面maste的status

开启slave

回到master上 释放被锁的表:

mysql -uroot -pgys -e "unlock tables"

查看slave状态

只要 slave_io _running和slave_sql_running都是yes表示 主备关系已经建好了;

现在在master上建表,并且添加数据,查看slave上的数据库是否会跟着变;

这种主从配置看上去非常简单;但是这个机制非常脆弱,一旦我们不小心在slave上写了数据,那么主从复制也就被破坏了。

另外重启master,务必先关闭slave,即在slave上执行slave stop命令,然后重启master的mysql服务,否则主从复制就有可能会被中断。

当然重启了master后,我们还需要执行start slave命令来开启主从复制。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!