ProxySQL--基础--2.3--部署--准备测试环境--mysql1主2从

ProxySQL–基础–2.3–部署–准备测试环境–mysql1主2从


1、介绍

1.1、机器信息

名称IpPortserver_id
M1192.168.187.883307110
M1S1192.168.187.883308120
M1S2192.168.187.883309130
Proxysql192.168.187.886032,6033null

1.2、架构图

在这里插入图片描述

1.3、Proxysql安装

ProxySQL--基础--2.1--部署--单机--RPM安装

Proxysql 机器 还需要安装mysql客户端

1.4、安装mysql客户端

https://blog.csdn.net/zhou920786312/article/details/134885681

2、mysql主从复制

  1. 注意点:slave节点需要设置read_only=1。如果后端是PXC/MGR/MariaDB Galera,则无需手动设置,因为会自动设置。
  2. 参考内容:https://blog.csdn.net/zhou920786312/article/details/122425205

2.1、启动服务

docker run --name M1 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 ;
docker run --name M1S1 -p 3308:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 ;  
docker run --name M1S2 -p 3309:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 ;

2.2、修改配置文件

2.2.1、新建配置文件

# 创建配置文件目录:
mkdir -p /home/hd/mysql_config

新建以下配置

vim m1.cnf
vim m1s1.cnf
vim m1s2.cnf

主机的配置 m1.cnf

[mysqld]
skip-host-cache
skip-name-resolve
# 服务器标识
server-id=110
# 日志文件
log-bin=master.bin

从机的配置 m1s1.cnf

[mysqld]
skip-host-cache
skip-name-resolve
# 服务器标识
server-id=120
read_only=1
 

从机的配置 m1s2.cnf

[mysqld]
skip-host-cache
skip-name-resolve
# 服务器标识
server-id=130
read_only=1

2.2.2、拷贝配置进去

docker cp m1s1.cnf M1S1:/etc/mysql/conf.d/mysql.cnf
docker cp m1s2.cnf M1S2:/etc/mysql/conf.d/mysql.cnf
docker cp m1.cnf M1:/etc/mysql/conf.d/mysql.cnf

2.2.3、重启mysql

docker restart M1 M1S1 M1S2

2.3、M1(主库)操作

进入mysql
# 进入容器
docker exec -it M1 bash ;

# 进入mysql
mysql -uroot -proot ;

创建用于主从复制的用户
# 创建用户
create user 'rep'@'%' identified by '123456';

# 给该用户授予权限:
grant replication slave on *.* to 'rep'@'%';


# 刷新权限
flush privileges;

至此:M1 里面已经创建了一个用户:rep 123456,拥有所有库,所有表replication slave

获取主库状态
  
mysql> show master status;
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| master.000001 |      745 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

2.4、M1S1,M1S2(从库)操作

这里以M1S1为案例

进入mysql
# 进入容器
docker exec -it M1S1 bash 

# 进入mysql
mysql -uroot -proot

连接主库

change master to master_host="192.168.187.88",master_port=3307,master_user="rep",master_password="123456",master_log_file="master.000001",master_log_pos=745;

并开启主从复制
start slave ;
查询主从的状态
show slave status \G;

# 这2个显示yes,表示成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes


2.5、验证

主库(M1)
create database test;

在这里插入图片描述

3、创建测试数据

create database test1;
create database test2;

  
CREATE TABLE `test1`.`t1` (
  `name` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `test1`.`t1`(`name`) VALUES ('test1--t1--数据1');
INSERT INTO `test1`.`t1`(`name`) VALUES ('test1--t1--数据2');



CREATE TABLE `test1`.`t2` (
  `name` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `test1`.`t2`(`name`) VALUES ('test1--t2--数据1');
INSERT INTO `test1`.`t2`(`name`) VALUES ('test1--t2--数据2');





CREATE TABLE `test2`.`t1` (
  `name` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `test2`.`t1`(`name`) VALUES ('test2--t1--数据1');
INSERT INTO `test2`.`t1`(`name`) VALUES ('test2--t1--数据2');


CREATE TABLE `test2`.`t2` (
  `name` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `test2`.`t2`(`name`) VALUES ('test2--t2--数据1');
INSERT INTO `test2`.`t2`(`name`) VALUES ('test2--t2--数据2');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值