鲲鹏ARM服务MySQL镜像方式部署主从集群

环境说明

鲲鹏ARM服务器,操作系统为银河麒麟V10,MySQL镜像名称:mysql:8.0.35

准备两台云主机,主:192.168.31.11,从192.168.32.12

配置主节点

1、创建数据目录和配置目录

shell 复制代码
mkdir -p /data/docker/mysql/data /data/docker/mysql/conf.d

2、创建配置文件,使用命令vi /data/docker/mysql/conf.d/cim.cnf

shell 复制代码
[mysqld]
server-id=101
log-bin=mysql-bin
port=3306
max_connections=1000
max_connect_errors=10
character-set-server=utf8
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
performance_schema_max_table_instances=600
lower_case_table_names=1

这里特别注意一下,主从的server-id值必须不一样,server-id和server_id这两种写法 效果完全一样,MySQL 都能正确识别并设置 server_id 系统变量。

在 SQL 语句或系统变量查询中使用 server_id(带下划线),例如:

shell 复制代码
SHOW VARIABLES LIKE 'server_id';
SET GLOBAL server_id = 101;

3、创建主节点

shell 复制代码
docker run -itd --restart=always --network=host --name mysql -v "/data/docker/mysql/conf.d:/etc/mysql/conf.d/" -v "/data/docker/mysql/data:/var/lib/mysql" -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD="test123456" mysql:8.0.35

4、放开防火墙

shell 复制代码
firewall-cmd --permanent --add-rich-rule "rule family="ipv4" source address="192.168.31.0/26" port port="3306" protocol="tcp" accept" && firewall-cmd --reload

5、主节点配置

shell 复制代码
# 进入镜像
docker exec -it mysql /bin/bash
# 登录mysql
mysql -uroot -p  输入密码test123456
# 创建slave用户
CREATE USER 'slave'@'%' IDENTIFIED BY 'salve123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
ALTER USER 'slave'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'salve123456';
FLUSH PRIVILEGES;
# 查看master状态,
show master status;

注意执行show master status后的master_log_file和master_log_pos非常重要,后面配置从节点时会用到。

至此主节点已经配置完成。

配置从节点

1、创建数据目录和配置目录

shell 复制代码
mkdir -p /data/docker/mysql/data /data/docker/mysql/conf.d

2、创建配置文件,使用命令vi /data/docker/mysql/conf.d/cim.cnf

shell 复制代码
[mysqld]
server-id=102
log-bin=mysql-bin
port=3306
max_connections=1000
max_connect_errors=10
character-set-server=utf8
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
performance_schema_max_table_instances=600
lower_case_table_names=1

这里特别注意一下,主从的server-id值必须不一样

3、创建从节点

shell 复制代码
docker run -itd --restart=always --network=host --name mysql -v "/data/docker/mysql/conf.d:/etc/mysql/conf.d/" -v "/data/docker/mysql/data:/var/lib/mysql" -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD="test123456" mysql:8.0.35

4、放开防火墙

shell 复制代码
firewall-cmd --permanent --add-rich-rule "rule family="ipv4" source address="192.168.31.0/26" port port="3306" protocol="tcp" accept" && firewall-cmd --reload

5、从节点配置

shell 复制代码
# 进入镜像
docker exec -it mysql /bin/bash
# 登录mysql
mysql -uroot -p  输入密码test123456
# 授权
GRANT REPLICATION_SLAVE_ADMIN ON *.* TO 'root'@'%';
# 配置从
change master to master_host='192.168.31.11', master_user='slave', master_password='salve123456', master_port=3306, master_log_file='mysql-bin.000004', master_log_pos=1132, master_connect_retry=30;
# 开启从节点
start slave;
# 查看主从状态,如果有异常,针对异常解决即可。
show slave status;

至此主从配置完成,验证创建数据库、表、增删改查记录均可正常同步。

相关推荐
y = xⁿ18 分钟前
MySQL八股知识合集
android·mysql·adb
andr_gale1 小时前
04_rc文件语法规则
android·framework·aosp
一只小白菜1 小时前
macOS MySQL 简易操作手册(基于 zsh + MySQL 8.0.24)
adb
计算机安禾1 小时前
【Linux从入门到精通】第33篇:数据库MySQL/MariaDB安装与基础调优
linux·数据库·mysql
tang&2 小时前
【MySQL】索引创建与B+树原理:MySQL性能优化的核心一课
b树·mysql·性能优化
sitellla2 小时前
MySQL 入门:最流行的开源关系型数据库介绍
数据库·mysql·其他·开源
祖国的好青年2 小时前
VS Code 搭建 React Native 开发环境(Windows 实战指南)
android·windows·react native·react.js
2301_808414382 小时前
MySQL表的约束
数据库·mysql
黄林晴2 小时前
警惕!AGP 9.2 别只改版本号,R8 规则与构建链路全线收紧
android·gradle