linux搭建mysql5.7主备集群

1.主备原理

1)master将改变记录到二进制日志(binary log)中

2)slave将master的binlog拷贝到中继日志(relay log)

3)slave重做中继日志中的事件,将改变slave的数据

2.安装mysql5.7(centos7)

1)在官网下载mysql-5.7.19-1.el7.x86_64.rpm-bundle.tar

2)检查是否存在旧的mysql

rpm -qa|grep -i mysql

3)如果有,则卸载

rpm -e –nodeps 包名 
#如果提示错误,尝试用下列命令执行
rpm -ev 包名 --nodeps
rpm  -e --noscripts 包名

4)查找旧版mysl目录并删除

# 查询
find / -name mysql
# 依次删除
rm -rf 文件名/目录

5) 上传mysql压缩包至linux(/opt/soft)

6)解压文件到当前目录

tar -xvf mysql-5.7.19-1.el7.x86_64.rpm-bundle.tar

 7)开始安装(按以下步骤安装,避免依赖倒置安装失败)

rpm -ivh mysql-community-common-5.7.19-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.19-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.19-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.19-1.el7.x86_64.rpm

        安装过程可能会出现问题,需卸载 centos 自带的 mariadb 包

rpm -qa | grep mariadb
rpm -e   填写上面查出的名称 --nodeps

8)修改配置文件

vim /etc/my.cnf
#设置端口
port = 3306
#数据存储路径
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

#错误日志路径
log-error=/var/log/mysqld.log
#日志路径
pid-file=/var/run/mysqld/mysqld.pid

disable-partition-engine-check=1

#只能用IP地址检查客户端的登录,不用主机名
skip_name_resolve = 1
##数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server=utf8mb4

#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server=utf8mb4_general_ci

#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'

#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names=1

#最大连接数
max_connections=400
##最大错误连接数
max_connect_errors=1000


#SQL数据包发送的大小,如果有BLOB对象建议修改成1G
max_allowed_packet=128M

#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
#MySQL默认的wait_timeout  值为8个小时, interactive_timeout参数需要同时配置才能生效
interactive_timeout=1800
wait_timeout=1800

#mysql binlog日志文件保存的过期时间,过期后自动删除
expire_logs_days=5


############################主从复制 设置########################################
#主库和从库的server-id不能相同
server-id = 1
#开启mysql binlog功能
log-bin=mysql-bin
#binlog记录内容的方式,记录被操作的每一行
binlog_format = ROW

##作为从库时生效,想进行级联复制,则需要此参数
log_slave_updates = on

#作为从库时生效,中继日志relay-log可以自我修复
#relay_log_recovery = 1

# 指定需要复制的数据库名为xayimsdb
replicate-do-db = test

9)启动mysql

service mysqld start

#查看mysql状态
service mysqld status

10)登录mysql

#修改my.cnf文件
vi /etc/my.cnf

#在[mysqld]添加skip-grant-tables     跳过登录验证

#登录mysql
mysql -p

按空格进入mysql

#更新密码
 update user set authentication_string=PASSWORD('123456') where User='root';

flush privileges;

11)创建同步用户(主上操作)

# “ % ”代表匹配所有ip
create user 'hb'@'%' identified with mysql_native_password by '123456';
GRANT REPLICATION SLAVE ON *.* TO 'hb'@'从机ip';
flush privileges;

以上主库的配置完成(以相同的方式在从库上进行配置,注意要修改my.cnf的server-id,不能很主库相同)

12)配置完备库后,登录备库(sql方式执行)

change master to master_host='主库ip',
master_port=3306,
master_user='hb',    上面主库创建的用户名
master_password='123456',   主库创建的密码
master_log_file='mysql-bin.000009',  在主库上执行show master status\G 获得
master_log_pos=831;   在主库上执行show master status\G 获得

#备库启动同步
start slave;

#查看slave状态  "\G"是格式化内容
show slave status\G;

13.备库查看同步状态(sql方式执行)

show slave status \G

 

 如果(标识配置OK):Slave_IO_Running: Yes ,Slave_SQL_Running: Yes

14)验证

        在主库上操作

create database test;

ues test;

create table ms_test1 (
   	id varchar(12) not null,
   	name varchar(50) null,
   	primary key (id)
 );

#插入数据
INSERT INTO ms_test1 VALUES('1','11111');

        在从库上操作

use test;
show tables;
select * from ms_test1;

 

主备配置完成!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值