MySQL集群-主从服务器搭建(一主多从)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: MySQL集群-主从服务器搭建(一主多从)

硬件信息:CentOS Linux release 7.5.1804 (Core)

主数据库:172.16.116.40

从数据库:172.16.116.42、172.16.116.43

如果已经安装5.5版本需要升级10版本,可以参考:MySQL集群升级从5.5版本升级到10.*以上版本(CentOS7.5 MariaDB集群升级)

安装MySQL服务(主从都需要)


开放数据库默认端口3306,并重载防火墙配置

# firewall-cmd --zone=public --add-port=3306/tcp --permanent
# firewall-cmd --reload

image.png

使用yum安装mysql数据库

yum install mariadb mariadb-server

image.png

启动MySQL数据库(systemctl start mariadb),并查看状态(systemctl status mariadb)

image.png

设置MySQL的root用户密码

set password for 'root'@'localhost' = password('你的密码');

image.png

给root用户最大权限

grant all privileges on *.* to 'root'@'%' identified by 'password';

image.png

进入/etc/目录,先备份配置文件(cp my.cnf my.cnf.bak)

image.png

主服务器配置(172.16.116.40)


配置主服务器

(1)Server-id:是用来标识数据库服务器的,取值在1到(232-1),这里使用数据库服务器ip最后一位来标识当前服务器;

(2)log-bin:二进制日志,用于记录所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句。语句以“事件”的形式保存,它描述数据更改;

(3)innodb_flush_log_at_trx_commit和sync_binlog:使用innodb事务进行数据复制,并保证持久和一致。

[mysqld]
server-id=40
log-bin=mysql-bin-40
innodb_flush_log_at_trx_commit=2
sync_binlog=1

image.png

重启数据库,并进入数据库将172.16.116.42和172.16.116.43两台从数据库服务器访问主数据库权限设为最大(新建master用户),然后查看主服务器状态

systemctl restart mariadb;
mysql -uroot -p 密码
grant all privileges on *.* to 'master'@'172.16.116.42' identified by 'password';
show master status;

image.png

记住主数据库的File和Position列的值

image.png

从服务器配置


配置从数据库my.cnf文件

image.png

然后登录mysql执行以下语句

CHANGE MASTER TO
-> MASTER_HOST='172.16.116.40', # 主服务器ip
-> MASTER_USER='master', # 主服务器上创建的用户
-> MASTER_PASSWORD='你配置的主服务器密码', # 密码
-> MASTER_LOG_FILE='mysql-bin-40.000001', # 为master中的二进制日志文件,刚刚记住的File
-> MASTER_LOG_POS=565; # 刚刚记住的Position

开启从数据库服务(start slave;)

image.png

查看从服务器状态(show slave status;),\G分行,以下配置正常,并且从服务器IO和SQL服务正常

image.png

测试:在主服务器上新建distributed_test数据库(只能主服务器写,否则会出错),正常同步到了两台从数据库。至此,MySQL主从服务器配置完成。

20190718182837254.png

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
关系型数据库 MySQL 开发工具
MySQL5.7主从配置(Docker)
MySQL5.7主从配置(Docker)
728 0
|
1月前
|
域名解析 存储 网络协议
Linux中搭建主从DNS服务器
搭建主从DNS架构以提升DNS服务的高可用性、负载均衡和数据冗余。主服务器配置涉及编辑`/etc/named.conf`,设置监听IP和允许查询的范围,并定义主区域及允许的数据传输。从服务器配置需指定为奴隶类型,并指明主服务器的IP。测试表明正反向查询解析均正常。注意配置文件的语法正确性和权限设置。
|
1月前
|
SQL 存储 运维
MySQL高可用性:主从复制和集群
MySQL高可用性:主从复制和集群
36 0
|
18天前
|
关系型数据库 MySQL 数据库
卸载云服务器上的 MySQL 数据库
卸载云服务器上的 MySQL 数据库
33 0
|
2天前
|
SQL 存储 关系型数据库
MySQL Cluster集群安装及使用
MySQL Cluster集群安装及使用
|
6天前
|
存储 Java 网络安全
ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
【4月更文挑战第10天】ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
12 1
|
13天前
|
关系型数据库 MySQL 数据库连接
Django(四):Django项目部署数据库及服务器配置详解(MySQL)
Django(四):Django项目部署数据库及服务器配置详解(MySQL)
40 11
|
16天前
|
SQL 关系型数据库 MySQL
mysql主从同步出错解决办法
mysql主从同步出错解决办法
10 0
|
1月前
|
Java 关系型数据库 MySQL
Flink1.18.1和CDC2.4.1 本地没问题 提交任务到服务器 报错java.lang.NoClassDefFoundError: Could not initialize class io.debezium.connector.mysql.MySqlConnectorConfig
【2月更文挑战第33天】Flink1.18.1和CDC2.4.1 本地没问题 提交任务到服务器 报错java.lang.NoClassDefFoundError: Could not initialize class io.debezium.connector.mysql.MySqlConnectorConfig
51 2
|
1月前
|
关系型数据库 MySQL 数据库
使用 Docker 搭建一个“一主一从”的 MySQL 读写分离集群(超详细步骤
使用 Docker 搭建一个“一主一从”的 MySQL 读写分离集群(超详细步骤
64 0