Centos7安装mysql5.7主从配置实现读写分离

一. Centos7安装mysql5.7步骤

1. 准备

准备两台Centos7环境的虚拟机,我用的两台:192.168.47.128(master),192.168.47.129(slave)

2. 下载mysql的repo源

wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

Centos7安装mysql5.7主从配置实现读写分离_第1张图片

3. 安装源

rpm -ivh mysql57-community-release-el7-8.noarch.rpm

Centos7安装mysql5.7主从配置实现读写分离_第2张图片

4. 安装数据库

yum install mysql-server

Centos7安装mysql5.7主从配置实现读写分离_第3张图片

5. 启动数据库

systemctl start mysqld

二. 登录数据库、密码设置和访问权限设置

1. 登录数据库

a. 5.7版本默认对于root帐号有一个随机密码,可以通过 grep "password" /var/log/mysqld.log获得,root@localhost: 此处为随机密码

这里写图片描述

b. 运行mysql -uroot -p 回车,粘贴随机密码

Centos7安装mysql5.7主从配置实现读写分离_第4张图片

2. 设置新密码

a. 默认的随机密码是没办法直接对数据库做操作的,需要修改密码,然后,5.7版本用了validate_password密码加强插件,因此在修改密码的时候绝对不是 123456 能糊弄过去的。需要严格按照规范去设置密码.

b. 但是,如果想让密码简单点也可以,降低安全策略, 登录到mysql客户端执行如下两条命令

set global validate_password_length=1;
set global validate_password_policy=0; 
set password=password('root');

这样就能设置简单的密码了,但是密码长度必须是大于等于4位
Centos7安装mysql5.7主从配置实现读写分离_第5张图片

3. 设置其他机器能访问到数据库

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

这里写图片描述

4. 创建一个同步用户,slave与master进行同步

create user repl identified by 'repl';

这里写图片描述
设置同步权限
grant replication slave on . to ‘repl’@’192.168.47.128’ identified by ‘repl’;
这样安装好一台虚拟机的mysql,同样的方式安装另外一台虚拟机的mysql。

三. 设置主从

1. 数据安装好后,几个数据文件

mysql的数据文件和二进制文件: /var/lib/mysql/
mysql的配置文件: /etc/my.cnf
mysql的日志文件: /var/log/mysql.log

2. 配置192.168.47.128(master)

修改 /etc/my.cnf:

vim /etc/my.cnf

Centos7安装mysql5.7主从配置实现读写分离_第6张图片
保存后重启mysql数据库:systemctl restart mysqld
这里写图片描述
重启后登录mysql数据库查看master状态
mysql -uroot -proot
show master status;
Centos7安装mysql5.7主从配置实现读写分离_第7张图片
master配置完毕。

3. 配置192.168.47.129(slave)

修改配置文件 /etc/my.cnf:

vim /etc/my.cnf

Centos7安装mysql5.7主从配置实现读写分离_第8张图片
重启mysql数据库

systemctl restart mysqld

登录到数据库

mysql -uroot -proot

配置同步

change master to master_host='192.168.47.128',master_port=3306,master_user='repl',master_password='repl',master_log_file='mysql-bin.000001',master_log_pos=154;

master_host是master的ip
master_port是master的端口
master_user是master设置的同步用户
master_password是同步用户的密码
master_log_file是通过命令:show master status;查看master的File
master_log_pos是通过命令:show master status;查看开始同步的位置Position。

启动slave

start slave;

查看slave的状态

show slave status;

Centos7安装mysql5.7主从配置实现读写分离_第9张图片
当图中的两个线程都为Yes时,主从配置设置成功。如果不全是Yes,则配置有误,请通过下面的显示的错误信息去检查配置。

你可能感兴趣的:(数据库,搭建环境)