Docker安装MySQL,并搭建一主一从复制集群、一主双从、双主双从集群

时尚捕手 2024-08-21 ⋅ 17 阅读

引言

Docker是一种轻量级的容器技术,用于在不同的平台上运行应用程序。MySQL是一个流行的开源关系型数据库管理系统。在本篇博客中,我们将会探讨如何使用Docker来安装MySQL,并搭建一主一从复制集群、一主双从、双主双从集群。

步骤

1. 安装Docker

在安装MySQL之前,我们需要先安装Docker。以下是在Ubuntu上安装Docker的步骤:

sudo apt-get update
sudo apt-get install docker-ce
sudo systemctl start docker

2. 下载MySQL镜像

在Docker Hub上,有一个官方的MySQL镜像可供使用。我们可以使用以下命令来下载并运行这个镜像:

docker pull mysql:5.7

3. 创建MySQL容器

一主一从复制集群:

docker run --name mysql-master -e MYSQL_ROOT_PASSWORD=your_password -d mysql:5.7 --server-id=1 --log-bin=/var/log/mysql/mysql-bin.log

docker run --name mysql-slave -e MYSQL_ROOT_PASSWORD=your_password --link mysql-master:mysql -d mysql:5.7 --server-id=2 --log-bin=/var/log/mysql/mysql-bin.log --slave-skip-errors=all --skip-slave-start

一主双从集群:

docker run --name mysql-master -e MYSQL_ROOT_PASSWORD=your_password -d mysql:5.7 --server-id=1 --log-bin=/var/log/mysql/mysql-bin.log

docker run --name mysql-slave1 -e MYSQL_ROOT_PASSWORD=your_password --link mysql-master:mysql -d mysql:5.7 --server-id=2 --log-bin=/var/log/mysql/mysql-bin.log --slave-skip-errors=all --skip-slave-start

docker run --name mysql-slave2 -e MYSQL_ROOT_PASSWORD=your_password --link mysql-master:mysql -d mysql:5.7 --server-id=3 --log-bin=/var/log/mysql/mysql-bin.log --slave-skip-errors=all --skip-slave-start

双主双从集群:

docker run --name mysql-master1 -e MYSQL_ROOT_PASSWORD=your_password -d mysql:5.7 --server-id=1 --log-bin=/var/log/mysql/mysql-bin.log

docker run --name mysql-master2 -e MYSQL_ROOT_PASSWORD=your_password -d mysql:5.7 --server-id=2 --log-bin=/var/log/mysql/mysql-bin.log

docker run --name mysql-slave1 -e MYSQL_ROOT_PASSWORD=your_password --link mysql-master1:mysql -d mysql:5.7 --server-id=3 --log-bin=/var/log/mysql/mysql-bin.log --slave-skip-errors=all --skip-slave-start

docker run --name mysql-slave2 -e MYSQL_ROOT_PASSWORD=your_password --link mysql-master2:mysql -d mysql:5.7 --server-id=4 --log-bin=/var/log/mysql/mysql-bin.log --slave-skip-errors=all --skip-slave-start

4. 连接到MySQL容器

docker exec -it mysql-master mysql -uroot -p

5. 配置复制

在主服务器上执行以下命令:

GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

在从服务器上执行以下命令:

CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='slave_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=xxx;
START SLAVE;

6. 测试集群

在主服务器上创建一个测试数据库并插入一些数据:

CREATE DATABASE test;
USE test;
CREATE TABLE example (id INT AUTO_INCREMENT PRIMARY KEY, data VARCHAR(100));
INSERT INTO example (data) VALUES ('Hello World!');

在从服务器上检查是否成功复制:

USE test;
SELECT * FROM example;

7. 完成

现在,你已经成功地使用Docker搭建了一主一从复制集群、一主双从、双主双从集群的MySQL环境。通过这些集群,你可以实现数据的高可用性和负载均衡。

结论

本篇博客中,我们学习了如何使用Docker来安装MySQL,并搭建一主一从复制集群、一主双从、双主双从集群。通过利用Docker的轻量级容器技术,我们能够快速、简单地部署和管理MySQL环境。这样的配置不仅能够提高数据库的可用性,还能够在处理高负载时实现负载均衡。希望本篇博客对你有所帮助!

参考资料


全部评论: 0

    我有话说: