1. 主从配置
1.1 主机1(IP:192.168.186.77)
1.1.1 docker-compose.yml
版本:“3.8”
服务:
mysql-master:
镜像: mysql: 最新
容器名称: mysql-master
环境:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_USER: 主控
MYSQL_PASSWORD: 123456
MYSQL_DATABASE:db1
端口:
– “3306:3306”
第:卷
– mysql-master-data:/var/lib/mysql
command: –server-id=1 –log-bin=mysql-bin –binlog-format=ROW
cap_add:
-SYS_NICE
安全_opt:
– seccomp: 无限制
mysql-slave:
镜像: mysql: 最新
容器名称: mysql-slave
环境:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_USER: 从属
MYSQL_PASSWORD: 123456
MYSQL_DATABASE:db1
端口:
– “3307:3306”
第:卷
– mysql-slave-data:/var/lib/mysql
command: –server-id=2 –log-bin=mysql-bin –binlog-format=ROW –relay-log=relay-bin –relay-log-index=relay-bin.index
依赖_on:
-mysql-master
cap_add:
– SYS_NICE
安全_opt:
– seccomp: 无限制
第:卷
mysql-master-data:
mysql-slave-data:
注意:3306端口作为主数据库,3307端口作为从数据库。创建过程中会创建新的用户和密码,例如用户master,同时也会创建数据库db1。 MySQL的主/从复制架构要求每个实例都有唯一的服务器ID。每个实例的服务器ID 必须是唯一的,即使实例位于不同的IP 地址上也是如此。
1.1.2 启动主从数据库
docker-compose up -d
1.1.3 主数据库用户授权
#授予master用户所有权限
将*.* 的所有权限授予\’master\’@\’%\’。
闪存特权;
1.1.4 配置主从数据库
1.1.4.1 配置主数据库
#在主从配置之间创建用户
创建由“123456”标识的用户“master_slave”@“%”需要SSL;
允许从*.* 复制到\’master_slave\’@\’%\’。
闪存特权;
# 显示文件和放置文件
显示主状态;
注:FILE和Position是配置从库的关键。您必须自己查看和更改相应的坐标。
1.1.4.2 配置从数据库
将主机更改为
MASTER_HOST=\’192.168.186.77\’, # 主服务器IP地址
MASTER_USER=\’master_slave\’, # 主服务器上配置的复制用户
MASTER_PASSWORD=\’123456\’, #复制用户密码
MASTER_LOG_FILE=\’mysql-bin.000003\’, #主服务器日志文件名
MASTER_LOG_POS=1358, #日志文件位置
MASTER_SSL=1;
启动奴隶。
显示从机状态。
注意:如果Slave_IO_Running和Slave_SQL_Running都为YES,则主从配置成功。
1.1.4.3 创建数据库表
使用db1.
创建表t_order_0
(
order_id INT 主键,
用户ID INT,
订单日期日期,
状态VARCHAR(255)
);
创建表t_order_1
(
order_id INT 主键,
用户ID INT,
订单日期日期,
状态VARCHAR(255)
);
注意:此数据库语句必须在使用不同IP 的master 数据库上执行,以创建实际的物理表。从数据库自动同步复制数据库结构。 ShardingSphere根据分片规则创建逻辑数据库数据表,实现分库分表。
注意:主机2 和主机3 的配置过程几乎相同。如果个人能力允许,可以跳过这一部分。
1.2主机2(IP:192.168.186.216)
1.2.1docker-compose.yml
版本:“3.8”
服务:
mysql-master:
镜像: mysql: 最新
容器名称: mysql-master
环境:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_USER: 主控
MYSQL_PASSWORD: 123456
MYSQL_DATABASE:db2
端口:
– “3306:3306”
第:卷
– mysql-master-data:/var/lib/mysql
command: –server-id=3 –log-bin=mysql-bin –binlog-format=ROW
cap_add:
– SYS_NICE
安全_opt:
– seccomp: 无限制
mysql-slave:
镜像: mysql: 最新
容器名称: mysql-slave
环境:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_USER: 从属
MYSQL_PASSWORD: 123456
MYSQL_DATABASE:db2
端口:
– “3307:3306”
第:卷
– mysql-slave-data:/var/lib/mysql
command: –server-id=4 –log-bin=mysql-bin –binlog-format=ROW –relay-log=relay-bin –relay-log-index=relay-bin.index
依赖_on:
-mysql-master
cap_add:
– SYS_NICE
安全_opt:
– seccomp: 无限制
第:卷
mysql-master-data:
mysql-slave-data:
注意:通过服务器ID区分不同的主从数据库。
1.2.2 启动主从数据库
docker-compose up -d
1.2.3 主数据库用户授权
#授予master用户所有权限
将*.* 的所有权限授予\’master\’@\’%\’。
闪存特权;
1.2.4 配置主从数据库
1.2.4.1 配置主数据库
#在主从配置之间创建用户
创建由“123456”标识的用户“master_slave”@“%”需要SSL;
允许从*.* 复制到\’master_slave\’@\’%\’。
闪存特权;
# 显示文件和放置文件
显示主状态;
注:FILE和Position是配置从库的关键。您必须自己查看和更改相应的坐标。
1.2.4.2 配置从数据库
将主机更改为
MASTER_HOST=\’192.168.186.216\’, # 主服务器IP地址
MASTER_USER=\’master_slave\’, # 主服务器上配置的复制用户
MASTER_PASSWORD=\’123456\’, #复制用户密码
MASTER_LOG_FILE=\’mysql-bin.000003\’, #主服务器日志文件名
MASTER_LOG_POS=1781, #日志文件位置
MASTER_SSL=1;
启动奴隶。
显示从机状态。
注意:如果Slave_IO_Running和Slave_SQL_Running都为YES,则主从配置成功。
1.2.4.3 创建数据库表
使用db2.
创建表t_order_0
(
order_id INT 主键,
用户ID INT,
订单日期日期,
状态VARCHAR(255)
);
创建表t_order_1
(
order_id INT 主键,
用户ID INT,
订单日期日期,
状态VARCHAR(255)
);
注意:此数据库语句必须在使用不同IP 的master 数据库上执行,以创建实际的物理表。从数据库自动同步复制数据库结构。 ShardingSphere根据分片规则创建逻辑数据库数据表,实现分库分表。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/93747.html