数据库集群搭建
为什么会有数据库集群
首先什么是集群呢?搭建多台数据库对外提供服务,数据库之间有着主从,一台数据库假如能承受2000并发,3台理论6000并发。考虑到读比写更多,设计一个主2个从,去实现读写分离。
集群架构
我们选择percona产品,去搭建集群环境。
Percona Server为 MySQL 数据库服务器进行了改进,在功能和性能上较 MySQL 有着很显著的提升。该版本提升了在高负载情况下的 InnoDB 的性能、为 DBA 提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为。
搭建主
-
创建文件夹/db/mysql/m1
mkdir -p /db/mysql/m1
-
m1中新建文件夹 conf和data
mkdir conf data
-
更改权限
chmod 777 *
-
在conf中新建配置文件my.cnf
-
vi conf/my.cnf
-
[mysqld] log-bin=mysql-bin # 开启二进制日志记录 server-id=1 # 服务id,不可重复
-
-
创建并启动容器
-
docker run -dti --name percona-m1 -v /db/mysql/m1/data:/var/lib/mysql -v /db/mysql/m1/conf:/etc/my.cnf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root percona:5.7.23
-
在Navicat中添加同步用户
-
新建用户
CREATE USER 'chen'@'%' IDENTIFIED BY 'chen'
-
授权
GRANT replication SLAVE ON *.* TO 'chen'@'%'
-
FLUSH PRIVILEGES
-
查看主状态
SHOW master STATUS
搭建从
-
创建文件夹/db/mysql/s1
-
s1中新建文件夹 conf和data
-
更改权限chmod 777 *
-
在conf中新建配置文件my.cnf
-
[mysqld] server-id=2
-
-
创建并启动容器
-
docker run -dti --name percona-s1 -v /db/mysql/s1/data:/var/lib/mysql -v /db/mysql/s1/conf:/etc/my.cnf.d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root percona:5.7.23
-
-
配置从 (master_log_post写你主数据库查到的)
-
CHANGE MASTER TO master_host='192.168.226.69', master_user='chen', master_password='chen', master_port=3306, master_log_file='mysql-bin.000003', master_log_pos=739
-
-
启动从库
- START SLAVE
-
查看主从状态
- SHOW SLAVE STATUS
测试数据同步
- 在主库去增删改数据
- 避免在从库写入数据,会破坏同步功能
评论区