Mysql 主从复制
一、 yum 安装
下载mysql源
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
更改下载版本
vim /etc/yum.repos.d/mysql-community.repo
或者执行
yum-config-manager --enable mysql57-community 将禁用的yum源库启用
yum-config-manager --disable mysql80-community 将启用的yum源库禁用
安装数据库
yum -y install mysql-server
systemctl start mysqld
systemctl enable mysqld
设置密码
grep password /var/log/mysqld.log
mysqladmin -uroot -p '旧' password '新'
二 、主从复制
master配置如下
开启二进制 和 gtid
vim /etc/my.cnf
log_bin
server-id=1
gtid_mode=ON
enforce_gtid_consistency=1
重启
systemctl restart mysqld
授权
grant replication slave,replication client on *.* to 'rep'@'192.168.122.%' identified by 'Jiang@123';
flush privileges;
备份
mysqldump -p'Jiang@123' --all-databases --single-transaction --master-data=2 --flush-logs > `date +%F-%H`-mysql-all.sql
mysqldump -p’Jiang@123’
–all-databases 全部数据库
–single-transaction 加速传输
–master-data=2 注释sql语句位置
–flush-logs
把备份好的数据传输到slave上
scp 2021-2-1-mysql-all.sql slave:/tmp
slave配置
1.测试授权用户是否可用
mysql -h master -urep -p'Jiang@123'
2.启动二进制日志,服务器ID,gtid
vim /etc/my.cnf
log_bin
server-id=2
gtid_mode=ON
enforce_gtid_consistency=1
重启服务
systemctl restart mysqld
手动同步数据
进库
set sql_log_bin=0 # 关闭二进制日志
source /tmp/2021-2-1-mysql-all.sql
设置主服务器
注意: 填写 内容
mysql> change master to
master_host='master1',
master_user='rep',
master_password='Jiang@123',
master_auto_position=1;
开始复制
start slave;
show slave status \G;