
nareshchoudhary612/mariadb-galera本镜像基于MariaDB构建,集成Galera集群技术,提供高可用的数据库解决方案。通过Galera同步复制实现多节点数据一致性,支持多主架构,可自动检测并恢复节点故障,适用于对数据库可靠性和数据一致性有高要求的生产环境。
my.cnf文件可自定义集群参数,适应不同场景需求镜像核心配置文件为/etc/mysql/my.cnf,关键参数说明:
ini# Galera提供器路径 wsrep_provider=/usr/lib/galera/libgalera_smm.so # 集群地址列表,需替换为实际容器IP wsrep_cluster_address=gcomm://172.17.0.2,172.17.0.3,172.17.0.4 # 绑定地址,允许所有网络访问 bind-address=0.0.0.0 # SST(状态快照传输)方法 wsrep_sst_method=rsync # 集群名称 wsrep_cluster_name=galera_cluster # 二进制日志格式,Galera要求为ROW binlog_format=ROW # 默认存储引擎 default_storage_engine=InnoDB # InnoDB自增锁模式,Galera推荐设为2 innodb_autoinc_lock_mode=2 # 允许InnoDB锁不安全用于binlog innodb_locks_unsafe_for_binlog=1
bash# 启动第一个节点(mariadb1) docker run --name mariadb1 -p 3307:3306 -p 4567:4568 -i -t -d nareshchoudhary612/mariadb-galera:update1 # 启动第二个节点(mariadb2) docker run --name mariadb2 -p 3308:3306 -p 4568:4568 -i -t -d nareshchoudhary612/mariadb-galera:update1 # 启动第三个节点(mariadb3) docker run --name mariadb3 -p 3309:3306 -p 4569:4568 -i -t -d nareshchoudhary612/mariadb-galera:update1
bash# 获取mariadb1的IP docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" mariadb1 # 获取mariadb2的IP docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" mariadb2 # 获取mariadb3的IP docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" mariadb3
对每个容器执行以下操作:
bash# 进入容器 docker attach 容器名称(如mariadb1) # 生成挂载信息 cat /proc/mounts > /etc/mtab # 重启MySQL服务 service mysql restart # 编辑配置文件 vi /etc/mysql/my.cnf # 修改wsrep_cluster_address为实际获取的三个节点IP,格式:gcomm://IP1,IP2,IP3 # 保存配置后重启MySQL服务 service mysql restart
bash# 登录MySQL mysql -uroot -proot # 查看集群状态 show status like 'wsrep_cluster%';
如需允许外部访问,可执行以下SQL命令添加用户:
sql-- 授予root用户从指定IP访问的权限(替换172.17.0.6为实际客户端IP) grant all privileges on *.* to 'root'@'172.17.0.6' identified by 'root'; -- 刷新权限 flush privileges;
若容器停止后需重新启动集群:
bash# 启动所有容器 docker start mariadb1 mariadb2 mariadb3 # 启动各节点MySQL服务 docker exec -d mariadb1 bash /etc/init.d/mysql start docker exec -d mariadb2 bash /etc/init.d/mysql start docker exec -d mariadb3 bash /etc/init.d/mysql start

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务