环境准备
准备两台虚拟机或者云服务器,作为数据库的主节点和从节点
第一步 修改主机名host并配置主机映射
将两台主机分别修改为mysql1和mysql2,修改命令如下:
[root@localhost ~]# hostnamectl set-hostname mysql1
[root@localhost ~]# hostnamectl set-hostname mysql2
两个节点配置/etc/hosts文件,修改为如下: #ip地址应改成自己主机对应的ip
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.30.11.12 mysql1
172.30.11.13 mysql2
第二步 两台主机都关闭防火墙和SELinux服务
关闭防火墙命令如下:
[root@mysql1 ~]# systemctl stop firewalld //关闭防火墙
[root@mysql1 ~]# systemctl disable firewalld //将防火墙设置开机不自启
关闭selinux服务
进入到 /etc/selinux/config 目录将selinux的状态设置为disabled
[root@mysql1 ~]# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
[root@mysql1 ~]# setenforce 0 //将selinux的修改生效
// mysql2主机配置操作步骤与mysql1一致
第三步 两台主机都配置yum源
如果是本地的VMware虚拟机搭建的,可以自己去配置centos7镜像的yum源,或者自己配置阿里云的镜像源,或者购买云服务器,会有默认配置好的yum源,目的就是为了能够下载mariadb数据库。下面我以本地的VMware虚拟机搭建配置镜像源为例:
[root@mysql1 ~]# cd /etc/yum.repos.d/
[root@mysql1 ~]# mv * /media/
[root@mysql1 ~]# cat local.repo
[mariadb]
name = MariaDB
baseurl = http://mirrors.ustc.edu.cn/mariadb/yum/10.2/centos7-amd64/
gpgkey= http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaD
gpgcheck=1
[root@mysql1 ~]# yum clean all //清除yum源的缓存
// mysql2主机配置操作步骤与mysql1一致
第四步 安装mariadb,并初始化数据库,命令如下
[root@mysql1 ~]# yum install -y mariadb mariadb-server //安装mariadb数据库服务
[root@mysql1 ~]# systemctl start mariadb //开启mariadb
[root@mysql1 ~]# systemctl enable mariadb //将mariadb设置开机自启
[root@mysql1 ~]# mysql_secure_installation //初始化数据库
// mysql2主机配置操作步骤与mysql1一致
第五步 修改配置文件
mysql1节点和mysql2节点都要配置,并且server_id不能相同
主节点配置:
[root@mysql1 ~]# cat /etc/my.cnf
[mysqld]
log_bin = mysql-bin #记录操作日志
binlog_ignore_db = mysql #不同步mysql系统数据库
server_id = 18 #数据库集群中的每个节点id都要不同,一般使用IP地址的最后段的数字,例如172.16.51.18,server_id就写18
配置完后重启mariadb
[root@mysql1 ~]# systemctl restart mariadb
从节点配置:
[root@mysql2 ~]# cat /etc/my.cnf
[mysqld]
log_bin = mysql-bin
binlog_ignore_db = mysql
server_id = 19
[root@mysql2 ~]# systemctl restart mariadb
第七步 开放主节点mysql1的数据库权限
配置主节点mysql1
[root@mysql1 ~]# mysql -uroot -p123456
MariaDB [(none)]> grant all privileges on *.* to root@'%' identified by "123456";
//允许所有用户都可以连接
MariaDB [(none)]> grant replication slave on *.* to 'user'@'mysql2' identified by '123456';
//在主节点mysql1数据库上创建一个user用户让从节点mysql2连接,并赋予从节点同步主节点数据库的权限
配置从节点mysql2同步主节点
[root@mysql2~]# mysql -uroot -p123456
MariaDB [(none)]> change master to master_host='db1',master_user='user',master_password='123456';
配置完毕主从数据库之间的连接信息之后,开启从节点服务。使用命令show slave status\G;并查看从节点服务状态,如果Slave_IO_Running和Slave_SQL_Running的状态都为YES,则从节点服务开启成功。查询结果如图所示。
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status\G;
第八步 验证数据库主从
先在主节点mysql1的数据库中创建库test,并在库test中创建表company,插入表数据。创建完成后,查看表company数据,如下所示。
然后在这时从节点mysql2的数据库就会同步主节点数据库创建的test库,可以在从节点查询test数据库与表company,如果可以查询到信息,就能验证主从数据库集群功能在正常运行。
文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/4106
评论列表(1条)
[…] MySQL主从服务器的搭建请见 […]