mysql主从环境搭建_Centos搭建Mysql主从环境

一、准备Mysql安装包

本文以Centos7为例,mysql安装包版本:mysql-5.7.11-1.el7.x86_64.rpm-bundle.tar

mysql官网下载地址:https://dev.mysql.com/downloads/mysql/ 选择对应系统版本下载即可。

1AHM313-0.jpg

mysql官网截图

下载完成之后进行解压,解压命令:

tar -zxvf mysql-5.7.11-1.el7.x86_64.rpm-bundle.tar

cdb35f3509cfdb15c30278d77e4f0993.png

解压命令

解压后目录:

68d23886e3a7a5798d745916d2fa68e9.png

解压后目录

mysql-community-client-5.7.10-1.el6.x86_64.rpm

mysql-community-common-5.7.10-1.el6.x86_64.rpm

mysql-community-devel-5.7.10-1.el6.x86_64.rpm

mysql-community-embedded-5.7.10-1.el6.x86_64.rpm

mysql-community-embedded-devel-5.7.10-1.el6.x86_64.rpm

mysql-community-libs-5.7.10-1.el6.x86_64.rpm

mysql-community-libs-compat-5.7.10-1.el6.x86_64.rpm

mysql-community-server-5.7.10-1.el6.x86_64.rpm

mysql-community-test-5.7.10-1.el6.x86_64.rpm

二、开始安装

1、查询是否有mariadb组件,已安装的mariadb组件会和mysql安装时产生冲突

查询命令:rpm -qa | grep mariadb

如果存在mariadb组件执行卸载命令:

卸载命令:rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64

2、mysql组件安装有先后顺序的依赖关系,依次执行如下命令:

rpm -ivh mysql-community-common-5.7.11-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.11-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.11-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.11-1.el7.x86_64.rpm

注意:官方文档说安装mysql-community-client-5.7.11-1.el7.x86_64.rpm和mysql-community-server-5.7.11-1.el7.x86_64.rpm就可以获得标准功能的MySQL。但是由于RPM包的依赖关系,所以实际上我们还要多装2个RPM包:mysql-community-common-5.7.11-1.el7.x86_64.rpm和mysql-community-libs-5.7.11-1.el7.x86_64.rpm。

3、安装结束,执行查询命令确定组件已安装成功。

查询命令:rpm -qa | grep mysql

e0578c58fcbb284f5cd6be6acb4a2752.png

4、数据库初始化

官方文档介绍,在Unix和Unix系列系统中,有一点是很重要的,那就是确保数据库目录与文件的所有者为mysql登录账户,以便在你运行mysqld服务的时候,mysql服务可以对这些目录和文件进行读取与写入操作。如果你是以root身份运行mysqld服务,就需要确认一下,执行如下面显示的包含有--user选项的命令:

shell> bin/mysqld --initialize --user=mysql

shell> bin/mysqld --initialize-insecure --user=mysql

另外,当你是以mysql的账户登录并执行程序的情况下,你可以将--user选项从命令中去掉。

所以我在前面提到过添加mysql用户和mysql用户组,当然这步操作可做可不做。通过官方文档我们可以知道,如果我是root身份登录Linux系统,可以执行:mysqld --initialize --user=mysql或者mysqld --initialize-insecure --user=mysql。如果我是以mysql用户登录Linux系统,可以执行:mysqld --initialize或者mysqld --initialize-insecure。

mysqld --initialize --user=mysql

mysqld --initialize-insecure --user=mysql

5.启动mysql服务

启动命令:service mysqld start

注意:mysql5.7在初始化时,会生成一个随机密码,用于root用户登录系统,修改参数。默认密码在

/var/log/mysqld.log目录中。

查看临时密码:

vi /var/log/mysqld.log

4cd66e567b27b9f0b04d1a212e1f0a79.png

启动日志

三、修改配置支持主从同步

1、mysql5.6和mysql5.7主从同步比较

MySQL 5.6版本也支持所谓的并行复制,但是其并行只是基于schema的,也就是基于库的。如果用户的MySQL数据库实例中存在多个schema,对于从机复制的速度的确可以有比较大的帮助。

MySQL 5.7基于组提交的并行复制,MySQL 5.7才可称为真正的并行复制,这其中最为主要的原因就是slave服务器的回放与主机是一致的即master服务器上是怎么并行执行的slave上就怎样进行并行回放。不再有库的并行复制限制,对于二进制日志格式也无特殊的要求(基于库的并行复制也没有要求)。

2、查看my.cnf:vi /etc/my.cnf

主库配置文件如下:

701ba2105ed90bf595fbae66401edbf8.png

主库配置文件

设置参数slave_parallel_workers>0并且global.slave_parallel_type=‘LOGICAL_CLOCK’,即可支持一个schema下,slave_parallel_workers个的worker线程并发执行relay log中主库提交的事务。其核心思想:一个组提交的事务都是可以并行回放(配合binary log group commit);

从库配置文件如下:

197af8658e10171e4e0d2bf048bba620.png

从库配置文件

主库和从库启动完成后:

主库添加同步账号:

create user 'repl'@'192.168.6.120' identified by 'repl';

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.6.120'; -- --这里我指定数据库(test.*)时报错,而指定全库(*.*)时会成功。

show master status; #查询主库状态

86dc5465932267fe893aac98a200b6fd.png

主库状态

从库:

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

START SLAVE;

commit;

show slave status;$=#查询从库状态

f2c123a70ee66c60716a85db957a9d39.png

从库状态

至此主从同步搭建完成。Mysql5.7版本和5.6版本在主从同步做了很大优化,有兴趣的可以去了解一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值