记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。

使用 Docker 部署 Mariadb 一主两从的具体步骤与命令




1. 创建网络


```
docker network create mariadb_network
```


2. 启动主节点


```
docker run -d --name mariadb_master \
-e MYSQL_ROOT_PASSWORD=<master_root_password> \
-e MYSQL_USER=<master_user> \
-e MYSQL_PASSWORD=<master_password> \
-e MYSQL_DATABASE=<master_database> \
--network mariadb_network \
mariadb:latest \
--server-id=1 \
--log-bin=/var/log/mysql/mysql-bin.log \
--binlog-do-db=<master_database>
```


3. 启动从节点1


```
docker run -d --name mariadb_slave1 \
-e MYSQL_ROOT_PASSWORD=<slave1_root_password> \
-e MYSQL_REPLICATION_USER=<replication_user> \
-e MYSQL_REPLICATION_PASSWORD=<replication_password> \
--network mariadb_network \
mariadb:latest \
--server-id=2 \
--log-bin=/var/log/mysql/mysql-bin.log \
--skip-log-slave-updates \
--relay-log=/var/log/mysql/mysql-relay-bin.log \
--log-slave-updates \
--read-only \
--replicate-do-db=<master_database> \
--replicate-ignore-db=mysql
```


4. 启动从节点2


```
docker run -d --name mariadb_slave2 \
-e MYSQL_ROOT_PASSWORD=<slave2_root_password> \
-e MYSQL_REPLICATION_USER=<replication_user> \
-e MYSQL_REPLICATION_PASSWORD=<replication_password> \
--network mariadb_network \
mariadb:latest \
--server-id=3 \
--log-bin=/var/log/mysql/mysql-bin.log \
--skip-log-slave-updates \
--relay-log=/var/log/mysql/mysql-relay-bin.log \
--log-slave-updates \
--read-only \
--replicate-do-db=<master_database> \
--replicate-ignore-db=mysql
```


注意:在上述命令中,需要将 `<master_root_password>`, `<master_user>`, `<master_password>`, `<master_database>`, `<slave1_root_password>`, `<slave2_root_password>`, `<replication_user>` 和 `<replication_password>` 替换为实际的值。


另外,在从节点启动命令中,需要将 `--server-id` 参数设置为一个唯一的值,且与主节点不同。`--replicate-do-db` 参数指定需要复制的数据库名称,`--replicate-ignore-db` 参数指定需要忽略复制的数据库名称。


转载请标明出处【使用 Docker 部署 Mariadb一主两从】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论