基于AWS EC2,搭建MySQL5.7 一主多从架构

1、项目背景

    由于AWS的RDS是收费的,所以在我的项目中,利用EC2搭建MySQL5.7一主多从方案。这里我的项目中,目前采用一主两从方案,为了高可用性,这里用了2个可用区域,可用区A,可用区B。

    准备的EC2机器如下:

                master  172.31.76.147 可用区A

                slave1  172.31.76.148  可用区A

                slave2 172.31.73.136   可用区B

2、rpm安装msql yum源 (所有机器执行)

在所有机器执行下面命令:

$> wget 'https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm'
$> sudo rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
$> yum repolist all | grep mysql
$> yum install -y mysql-community-server

 3、启动MySQL(所有机器执行)

在所有机器执行下面命令:

$> systemctl enable mysqld
$> systemctl start  mysqld
$> systemctl status mysqld

4、修改MySQL localhost临时密码(所有机器执行)

查看root临时密码:

$> grep "password" /var/log/mysqld.log

登录root账户:

$> mysql -uroot -p

修改root密码:

mysql> set global validate_password_policy=0;
mysql> alter  user 'root'@'localhost' identified by 'abc!@#$';

修改root账户能够远程访问:

 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

5、在写库master机器上创建同步用户

mysql> CREATE USER 'slave'@'%' IDENTIFIED BY '123456';

给同步账户slave授权,这里以同步smarthome数据库为例:

mysql> GRANT SELECT,UPDATE,INSERT,DELETE ON smarthome to 'slave'@'%';
mysql> GRANT ALL PRIVILEGES ON bosma-smart.* TO 'slave'@'%';
mysql> GRANT SELECT ON mysql.user TO 'slave'@'%';
mysql> GRANT SELECT ON mysql.db TO 'slave'@'%';
mysql> GRANT SELECT ON mysql.tables_priv TO 'slave'@'%';
mysql> GRANT SHOW DATABASES ON *.* TO 'slave'@'%';
mysql> flush privileges; 

6、永久关闭selinux(所有机器执行)

所有机器上执行:

$> vim /etc/selinux/config

将SELINUX=enforcing改为SELINUX=di

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值