您的位置:首页 > 数据库 > SQL

MySQL主从复制架构实战

2020-02-01 13:01 801 查看

3.28MySQL主从复制架构实战

环境准备:192.168.1.103为master主服务器,192.168.33.11为slave从服务器。
在主和从服务器都安装mysql相关软件,命令如下:
yum install -y mysql mysql-devel mysql-server mysql-libs
安装完毕后,在Master修改vi /etc/my.cnf内容为如下:
[mysqld]
datadir=/data/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
#Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-bin=mysql-bin
server-id = 1
auto_increment_offset=1
auto_increment_increment=2
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
replicate-do-db =jfedu
创建/data/mysql数据目录,mkdir –p /data/mysql ;chown –R mysqld:mysqld /data/mysql
启动mysql即可,service mysqld restart
然后修改slave Mysql数据库my.cnf配置文件内容如下:
[mysqld]
datadir=/data/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
#Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
server-id = 2
auto_increment_offset=2
auto_increment_increment=2
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

在Master数据库服务器上设置权限,执行如下命令:
grant replication slave on . to ‘tongbu’@’%’ identified by ‘123456’;
在Master 数据库执行如下命令:
mysql> show master status;
±-----------------±---------±-------------±-----------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
±-----------------±---------±-------------±-----------------+
| mysql-bin.000006 | 98 | | |
±-----------------±---------±-------------±-----------------+
1 row in set (0.00 sec)
然后在slave服务器指定master IP和同步的pos点:
change master to
master_host=‘192.168.1.103’,master_user=‘tongbu’,master_password=‘123456’,master_log_file=‘mysql-bin.000006’,master_log_pos=98;
在slave启动slave start,并执行show slave status\G查看Mysql主从状态:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes两个状态为YES,代表slave已经启动两个线程,一个为IO线程,一个为SQL线程。
然后在Master服务器创建一个数据库和表,命令如下:

然后去slave服务器查看是否有mysql_ab_test数据库和相应t0的表,如果存在则代表Mysql主从同步搭建成功:

同样还可以测试在master服务器插入两条数据,在slave查看insert数据是否已同步:
128 master上执行如下图:

129 slave上执行如下图,在master插入的数据已经同步到slave上:

自此Mysql主从搭建完毕,现在有一个问题,如果master服务器down机了,如何快速恢复服务呢?
可以通过两种方法:
第一种方法,如果程序连接的是master的IP,直接在slave服务器上添加master的IP即可。这个手动去操作,而且需要花费时间比较长,可能还会出现误操作的情况,不推荐。
第二种方法,可以使用keepalived、heartbeat作为HA检测软件,检查MySQL服务是否正常,不正常则自动切换到slave上,推荐使用。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
m0_37798361 发布了5 篇原创文章 · 获赞 0 · 访问量 350 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: