天天看点

如何在30分钟内搭建双节点的Mysql主备模式

作者:AI数智汇

前段时间有人问我Mysql的主备模式如何搭建,我就花30分钟现场演示了一下,本文提供mysql安装部署master+salve模式的全流程,主要演示2个节点的操作过程,多节点的操作方式一样。理论方面的知识就不讲了,直接上操作,希望对大家有所帮助。

如何在30分钟内搭建双节点的Mysql主备模式

一、安装准备

1.准备centos7.0操作系统2台,要求IP、端口互通2.准备mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz安装包3.准备libaio-0.3.109-13.el7.x86_64安装包安装步骤4.root用户,一定要记得使用root用户安装,避免后续遇到其他问题不好解决

5.对Linux操作有基础的操作经验

二、MySql安装步骤安装libaio,mysql依赖libaio,因此安装mysql前需要先保证系统已安装libaio(1)检查是否已安装libaio,安装前先检查是个比较好的习惯。如果未安装则需要参照step2安装。

rpm -qa | grep libaio           

libaio-0.3.109-13.el7.x86_64

输出如上内容表示服务器已经安装libaio(2)安装libaio

sudo rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm           

验证安装:

rpm -qa | grep libaio           

(3)Mysql安装创建MySQL用户和组,并设置目录的权限:创建用户组

sudo groupadd mysql           

,如果已创建则跳过此步骤。创建用户

sudo useradd -r -g mysql mysql           

设置用户

sudo chown -R mysql:mysql /home/admin/local/mysql5.7           

设置目录读写权限

sudo chmod 777  -R /home/admin/local/mysql5.7           

初始化mysql--basedir参数:mysql主目录--datadir参数:mysql数据目录

sudo /home/admin/local//mysql5.7/bin/mysqld --initialize-insecure --user=mysql --basedir=/home/admin/local//mysql5.7 --datadir=/home/admin/local//mysql5.7/data           

这一步一定要注意执行后的结果,如果日志中有密码相关的信息提醒,则需要记住密码,后续登录MySQL的时候需要。

复制mysql.server文件

sudo cp /home/admin/local/mysql5.7/support-files/mysql.server /etc/init.d/mysqld           

修改配置文件

编辑文件/etc/my.cnf,如果没有my.cnf,自己创建一个也可以,具体的配置内容如下图。

创建日志文件,并且再次设置目录权限创建mysql.log文件

sudo touch /home/admin/local/mysql5.7/logs/mysql.log           

设置用户目录权限

sudo chown -R mysql:mysql /home/admin/local/mysql5.7           

设置读写权限

sudo chmod 777  -R /home/admin/local/mysql5.7           

设置环境变量,编辑文件/etc/profile,并在文件末尾添加以下行:

export PATH=$PATH:/home/admin/local/mysql5.7/bin           

执行source /etc/profile,让配置生效

启停命令启动mysql

sudo service mysqld start           

查看启动状态

sudo service mysqld status           

如果输出如下内容,则表示mysql运行正常。

SUCCESS! MySQL running (18601)           

至此,其中一台服务器的Mysql已安装完成,另外一台服务器按照以上步骤安装Mysql,在此不再赘述。接下来开始主备模式的配置

三、主备模式设置1.选择其中一台服务器作为master节点,修改Mysql配置文件(1)修改配置文件/etc/my.cnf

[mysqld]server-id=1log-bin=mysql-bin           

其中,`server-id` 是主服务器的唯一 ID,`log-bin` 表示开启二进制日志记录重启mysql

sudo service mysqld restart           

(2)创建数据同步用户

登录数据库

mysql -u root -p           

创建数据同步用户

其中,`repl` 是连接用户名,`repl123`是数据库密码(3)重启mysql

sudo service mysqld restart           

(4)查看master是否生效登录数据库

mysql -u root -p           

记住File、Position,在从服务器设置会用到。2.salve节点配置(1)修改配置文件/etc/my.cnf,并且重启mysql

[mysqld]server-id=2log_bin=mysql-binrelay_log=relay-bin           

其中,`server-id` 是从服务器的唯一 ID,需要和master不同。(2)设置从服务器复制,切换到Slave服务器后操作。登录数据库mysql -u root -p

mysql>CHANGE MASTER TOMASTER_HOST='192.168.1.11',MASTER_USER='repl',MASTER_PASSWORD='repl123',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=154;           

其中,`mysql-bin.000002` 是在master执行命令SHOW MASTER STATUS 输出结果中的File,MASTER_LOG_POS是Position,MASTER_HOST是主机的IP地址。(3)重启mysql

sudo service mysqld restart           

(4)查看slave同步是否生效登录数据库mysql -u root -p

如何在30分钟内搭建双节点的Mysql主备模式

其中,Slave_IO_Running: Yes和Slave_SQL_Running: Yes表示主从复制生效中。最后别忘了测试一下,登录Master节点的Mysql数据库,创建测试数据库

create database test;           

登录Slave 节点的Mysql ,

show databases;           

如果看到有test 数据库,则说明已经成功,如果不放心,可以创建表和插入数据进一步进行测试。