前段时间有人问我Mysql的主备模式如何搭建,我就花30分钟现场演示了一下,本文提供mysql安装部署master+salve模式的全流程,主要演示2个节点的操作过程,多节点的操作方式一样。理论方面的知识就不讲了,直接上操作,希望对大家有所帮助。
一、安装准备
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
其中,Slave_IO_Running: Yes和Slave_SQL_Running: Yes表示主从复制生效中。最后别忘了测试一下,登录Master节点的Mysql数据库,创建测试数据库
create database test;
登录Slave 节点的Mysql ,
show databases;
如果看到有test 数据库,则说明已经成功,如果不放心,可以创建表和插入数据进一步进行测试。