1、环境准备
第一步:
克隆两台最小化安装的服务器Master\Slave
第二步:修改两台主机名称(按照需求)
第三步:配置静态ip,关闭防火墙、selinux、setenforce 0和NetworkMannager,最后重启网络
第四步:由于两台服务器是集群架构需要绑定主机名称和ip到/etc/hosts
vim /etc/hosts
10.1.1.1 master.company.cn
10.1.1.100 slave.conpany.cn
第五步:配置yum源(推荐腾讯源)
第六步:时间同步
ntpdate cn.ntp.org.cn
MySQL主从复制核心思路:
主服务器master的配置
第一步:用远程管理工具上传mysql安装包到服务器
第二步:在master服务器端安装、初始化以及运行数据库
可以编辑一个简单的shell脚本vim myql.sh
#!/bin/bash
yum install libaio -y //安装mysql依赖库
tar -xf mysq1-5.7.31-linux-glibc2.12-x86_64.tar. gz //解压mysql安装包
mv mysql-5.7.31-linux-glibc2.12-x86_64 /usr/local/mysql //移动安装包到系统目录
useradd -r -s /sbin/nologin mysql //创建系统用户mysql
rm -rf /etc/my.cnf //删除my.cnf配置文件
cd /usr/local/mysql
mkdir mysql-files //创建mysql-files导入导出文件
chown mysql:mysql mysql-files
chmod 750 mysql-files //其他用户没有权限
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql &>/ root/password.txt //初始化数据库并把密码发送到文本
bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data //开启ssl数据传输加密
cp support-files/mysql.server /etc/init.d/mysqld
service mysqld start
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile //环境变量
source /etc/profile //让配置立即生效
#source mysql.sh //开始运行shell脚本
第三步:安全配置(回车关闭密码检测,回车不更改密码,一路Y)
mysql_secure_installiation
从服务器slave安装MySQL不需要初始化
#!/bin/bash
yum install libaio -y //安装mysql依赖库
tar -xf mysq1-5.7.31-linux-glibc2.12-x86_64.tar. gz //解压mysql安装包
mv mysql-5.7.31-linux-glibc2.12-x86_64 /usr/local/mysql //移动安装包到系统目录
useradd -r -s /sbin/nologin mysql //创建系统用户mysql
rm -rf /etc/my.cnf //删除my.cnf配置文件
cd /usr/local/mysql
mkdir mysql-files //创建mysql-files导入导出文件
chown mysql:mysql mysql-files
chmod 750 mysql-files //其他用户没有权限
cp support-files/mysql.server /etc/init.d/mysqld //把mysql提供的脚本复制到启动脚本的目录
service mysqld start
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile //环境变量
source /etc/profile //让配置立即生效
#source mysql.sh //开始运行shell脚本
从服务器如果之前有二进制文件产生必须删掉,保持主从复制的一致性。
基于 GTIDs(全局事务标识符)的SLAVE服务器不小心写入数据后的跳过事务方法