主从复制
2019-08-19 本文已影响0人
zxhChex
1.主从复制
主服务器
vim /etc/my.cnf
[mysqld]
log-bin=/var/log/mysql/mysql-bin
server-id=1
innodb_flush_log_at_trx_commit = 1
sync_binlog = 1
mkdir /var/log/mysql
chown mysql.mysql /var/log/mysql
systemctl restart mysqld
show variables like '%skip_networking%';创建授权用户
mysql> GRANT REPLICATION SLAVE ON . TO 'repl'@'%' identified by
'QFedu123!';
注意防火墙 selinux 授权的来源
如果有数据
先备份数据
shell> mysqldump -u用户名 -p密码 --all-databases --master-data=1 > dbdump.sql
=1 # dump 文件中含有 主服务器二进制日志的文件名和位置
=2 # 也有上面提到的信息 但是 语句是被注释的状态
6跟werb
把备份文件传到从服务器上
scp dbdump.sql root@mysql-slave1:/root/
从服务器
vim /etc/my.cnf
[mysqld]
server-id=2
systemctl restart mysqld
导入数据
1. mysql -u -p < dbdump.sql
配置复制通道时候
mysql > change master to
master_host='主服务器的ip',
master_user='主服务器已授权的用户',
master_password='授权用户的密码',
mastet_log_file='mysql-bin.000002',
master_log_pos=345;
mysql > start slave;
mysql > show slave status;
IO threading : yes
SQL threading : yes
2. mysql > source dbdump.sql
mysql > change master to
master_host='主服务器的ip',
master_user='主服务器已授权的用户',
master_password='授权用户的密码';
mysql > start slave;
mysql > show slave status;
IO threading : yes
SQL threading : yes
show full processlist\G
kill 15
基于 GTID
不用配置二进制日志的文件名和具体位置信息了
自动协商
5.7
并且支持多线程复制