mysql8安装到主从备份

  1. 安装 Mysql 8

MySQL :: MySQL Community Downloads

下载 mysql80-community-release-el7-7.noarch.rpm

rpm -ivh  mysql80-community-release-el7-7.noarch.rpm

yum install -y mysql mysql-server


        2.主从配置

 vi /etc/my.cnf

主库配置:IP:192.168.32.101

#增加一下配置#
log-bin=mysql-bin
server_id=101
##选择增加的参数
#binlog-do-db=schoolpay  #需要同步的数据库
#binlog-ignore-db =mysql  #不需要同步的数据库
binlog-ignore-db=mysql,sys,performance_schema,information_schema


lower_case_table_names=1
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

systemctl restart mysqld
grep password /var/log/mysqld.log

set global validate_password.check_user_name=0;
set global validate_password.policy=0;
set global validate_password.length=1;

alter user 'root'@'localhost' identified by 'root';

use mysql;

update user set host = '%' where user = 'root';

FLUSH PRIVILEGES;

 主服务建立账号 IP:192.168.32.101
 
create user repl identified with mysql_native_password by 'repl';
 
授权
grant replication slave on *.* to repl;
刷新
flush privileges;
查看主库master
show master status;

alert user repl identified by '1111';


从库配置:IP:192.168.32.102

 vi /etc/my.cnf

#增加一下配置#
#log-bin=mysql-bin
relay-log=relay-bin
server_id=102
read-only=1
##选择增加的参数
#binlog-do-db=schoolpay  #需要同步的数据库
#binlog-ignore-db =mysql  #不需要同步的数据库

lower_case_table_names=1
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

systemctl restart mysqld

查询主库 show master status; 得到 mysql-bin.000003', master_log_pos=3442

stop slave ;

change master to master_host='192.168.32.101',master_port=3306,master_user='repl',master_password='1111',master_log_file=' mysql-bin.000003', master_log_pos=3442;

start slave ; 

show slave status;

show slave status G;

 mysql8安装到主从备份_第1张图片

报错重新指定

stop slave ;

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=2870;

 start slave ; 

3双主配置



server_id=101
log-bin=mysql-bin
log-slave-updates
max_binlog_size =512M
expire_logs_days=100

##选择增加的参数
#binlog-do-db=schoolpay  #需要同步的数据库
#binlog-ignore-db =mysql  #不需要同步的数据库
binlog-ignore-db=mysql,sys,performance_schema,information_schema


lower_case_table_names=1
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


# 实现数据库宕机恢复后,自动同步缺少的数据
relay_log = mysql-relay-bin


auto-increment-increment=2
auto-increment-offset=1
 


relay-log=relay-bin
server_id=102
log-slave-updates
max_binlog_size =512M

expire_logs_days=100

#read-only=1
##选择增加的参数
#binlog-do-db=schoolpay  #需要同步的数据库
#binlog-ignore-db =mysql  #不需要同步的数据库

binlog-ignore-db=mysql,sys,performance_schema,information_schema

lower_case_table_names=1
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

# 实现数据库宕机恢复后,自动同步缺少的数据
relay_log = mysql-relay-bin

auto-increment-increment=2
auto-increment-offset=2

create user repl@'%' identified with mysql_native_password by 'Admin123!';
grant replication slave on *.* to repl@'%';

101主机:

stop slave ;

change master to master_host='192.168.32.102',master_port=3306,master_user='repl',master_password='Admin123!',master_log_file='binlog.000008', master_log_pos=951;

start slave ; 

show slave status;

show slave status\G;

102主机:

 

stop slave ;

change master to master_host='192.168.32.101',master_port=3306,master_user='repl',master_password='1111',master_log_file='mysql-bin.000005', master_log_pos=157;

start slave ;


ERROR 1872 (HY000): Replica failed to initialize applier metadata structure from the repository
reset slave;
start slave;

show slave status\G;

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000005',MASTER_LOG_POS=157;

报错后修改  101服务器: log-bin=mysql101-bin     102 服务器log-bin=mysql102-bin   

stop slave ;

change master to master_host='192.168.32.102',master_port=3306,master_user='repl',master_password='Admin123!',master_log_file='mysql102-bin.000001', master_log_pos=157;

start slave ;
show slave status;

 

 

stop slave ;

change master to master_host='192.168.32.102',master_port=3306,master_user='repl',master_password='Admin123!',master_log_file='mysql102-bin.000001', master_log_pos=157;

start slave ;


show slave status;

你可能感兴趣的:(mysql,数据库)