mysql8 主从复制 双主模式

一、Centos7安装MySQL8.0.20(文末含参考博客)

开发环境:centos7

1、下载https://downloads.mysql.com/archives/community/  ,下载后上传到服务器,其中 Bundle 是一个包含了各种MySQL 其他组件的包,免去了一个个单独下载的繁琐步骤。

https://i-blog.csdnimg.cn/blog_migrate/6da573599d100564d9c7a8c750b41884.png

2、卸载mariadb,安装perl
yum remove mariadb-libs

https://i-blog.csdnimg.cn/blog_migrate/32db5a8e8feea7bac5839b36c4152d97.png

https://i-blog.csdnimg.cn/blog_migrate/6c5da1afccd10f97eefbad43bbfbe2a3.png

yum install perl

https://i-blog.csdnimg.cn/blog_migrate/f28c2dc8afa937b0a7bb0b3bc9969a03.png
3、解压安装包
tar -xvf mysql-8.0.20-1.el7.x86_64.rpm-bundle.tar
4、安装:为了方便,直接用通配符;注意各个安装包之间有依赖,依照顺序按照即可。
rpm -ivh mysql-community-common-*
rpm -ivh mysql-community-libs-*
rpm -ivh mysql-community-libs-compat-*  
rpm -ivh mysql-community-embedded-compat-*
rpm -ivh mysql-community-client-*
rpm -ivh mysql-community-server-*
5、创建数据文件夹,并进行授权
mkdir -p /data/mysql
mkdir -p /data/mysql/logs
chown -R mysql:mysql /data/mysql

6、关闭selinux
setenforce 0

https://i-blog.csdnimg.cn/blog_migrate/f190cfef0e2f86a4bf165dd441aef1a4.png

https://i-blog.csdnimg.cn/blog_migrate/aa6357ce41a7f296df0d379cc5a31c15.png

重启生效:vi /etc/sysconfig/selinux
#将SELINUX=enforcing的值改为disabled

7、修改配置文件
vim /etc/my.cnf
参照前边创建的数据文件夹目录修改一下配置

https://i-blog.csdnimg.cn/blog_migrate/57e1ddc27b11613612a190614f145ab8.png

8、启动service mysqld start

https://i-blog.csdnimg.cn/blog_migrate/0929a1ac1cbe064ad4a9b85df73c5ecc.png

9、查看临时密码  

grep "A temporary password" /var/log/mysqld.log

https://i-blog.csdnimg.cn/blog_migrate/a3a18ae62e4ddd91175ca199ecfe2866.png

10、登录

https://i-blog.csdnimg.cn/blog_migrate/c7bfb78a4404f11e25b45259d7fd25ea.png

 

查看已有数据库,mysql报错,提示需要修改临时密码

 

11、修改临时密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

报错提示密码不符合权限策略,查看权限策略:

SHOW VARIABLES LIKE 'validate_password%';

还是让先修改密码,那就先设置一个复杂的密码,之后再改回来。

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456qQ.';

再查看权限策略

关于 mysql 密码策略相关参数;

1)validate_password_length  固定密码的总长度;

2)validate_password_dictionary_file 指定密码验证的文件路径;

3)validate_password_mixed_case_count  整个密码中至少要包含大/小写字母的总个数;

4)validate_password_number_count  整个密码中至少要包含阿拉伯数字的个数;

5)validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;

关于 validate_password_policy 的取值:

0/LOW:只验证长度;

1/MEDIUM:验证长度、数字、大小写、特殊字符;

2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;

6)、validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;

修改权限设置:

set global validate_password.policy=LOW;

set global validate_password.length=4;

set global validate_password.check_user_name = off;

set global validate_password.mixed_case_count  =0;

set global validate_password.number_count =0;

set global validate_password.special_char_count = 0;

再将密码修改回来

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

 

12、创建用户

create USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

查看用户

select host, user, authentication_string, plugin from user;

注意plugin要是再创建用户的时候要制定为mysql_native_password,不然mysql桌面连接程序会报错,如果没指定可以使用alter命令修改

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

 

13、连接mysql

 

 

 

二、主从复制

虚拟机1:192.168.20.100

虚拟机2:192.168.20.110

已按照上一步在两台主机上安装好mysql8.0.20

主从复制需要在配置文件my.cnf内添加server-id=xx,xx的数值可以自己定义,但是不能相同。

 

数据库同步需要通过binlog文件,主库会将数据库数据变动记录到binlog,从库根据主库记录同步数据。Mysql8的binlog设置默认是开启的,可以在配置文件用log-bin自定义路径和前缀,binlog还有文件格式和保留天数的设置,这里不过多介绍。

修改完配置文件,重启数据库:

service mysql stop;

service mysql start;

1、在master给mysql中添加一个主从复制专用的用户,并授权给从库

create USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'repl'

grant replication slave on *.* to 'repl'@'%‘;

flush privileges;

2、查看master的状态

show master status;

3、在standy上设置同步冲binlog.000001的156位置开始

change master to

 master_host='192.168.20.100',

 master_port=3306,

 master_user='repl',

 master_password='repl',

 master_log_file='binlog.000001',

 master_log_pos=156;

然后启动从库:

start slave;

查看从库状态,show slave status如果下图红框内两项为yes

这次配置后一直显示在连接中,是因为之前grant授权没做好,重新配置了授权就可以了,

最后直接在100上新建数据库,看从库110上是否同步

 

三、双主热备

1、紧接上边的配置,给从库110也添加复制数据的账户,并授权给110

create USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'repl'

grant replication slave on *.* to 'repl'@'%‘;

flush privileges;

2、查看110的master信息

3、在100上设置同步位置并开启slave;

4、查看100的slave状态

5、双主配置完成,可以在100和110上改变数据库进行验证。

1、安装

https://www.jianshu.com/p/6a5ece10f158

2、主从

https://www.jianshu.com/p/fc90ad7d34e0

3、双主

https://www.jianshu.com/p/50b9446d77f4

4、docker配置双主

https://www.cnblogs.com/huangqingshi/p/12593395.html

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值