
centos7 docker-composer mysql主从搭建【简单版本】
主要讲述了Linux使用了docker和docker-composer简单实现mysql主从搭建
centos7 docker-composer mysql主从搭建(简单版本)
- 确保您的CentOS 7系统满足以下要求: Docker和docker-compose已安装。
- 网络设置允许Docker容器之间的通信。
- 确保您的系统时钟是同步的,因为MySQL复制依赖于精确的时间戳。(联网就可以)
(步骤1)docker安装:
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io
docker启动并设置开机自启:
systemctl start docker
systemctl enable docker
(步骤2)docker-compose安装:
下载Docker Compose二进制文件:使用以下命令下载Docker Compose的最新稳定版本
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
创建符号链接:为了方便使用,可以创建一个指向/usr/local/bin/docker-compose的符号链接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
验证安装:运行以下命令来验证Docker Compose是否成功安装
docker-compose --version
(步骤3)拉取MySQL官方镜像
docker pull mysql:latest
(步骤4)创建docker-compose.yml文件
随便在某个目录创建一个docker-compose.yml文件来定义MySQL主从服务,直接:
vim docker-compose.yml
#version: '3.8'
services:
mysql-master:
image: mysql:latest
container_name: mysql_master
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: mydatabase
volumes:
- mysql-data:/var/lib/mysql
command: --default-authentication-plugin=mysql_native_password --log-bin=mysql-bin --server-id=1
mysql-slave:
image: mysql:latest
container_name: mysql_slave
ports:
- "3307:3306"
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: mydatabase
volumes:
- mysql-data:/var/lib/mysql
command: --default-authentication-plugin=mysql_native_password --log-bin=mysql-bin --server-id=2 --slave-mode
depends_on:
- mysql-master
volumes:
mysql-data:
(步骤5)启动docker容器
docker compose up -d
启动成功后如图所示:
(步骤6)登录到MySQL主服务器: 使用MySQL root用户或之前创建的repl用户登录到主服务器
docker exec -it mysql_master mysql -u root -prootpassword
(步骤7)创建用于复制的用户(如果尚未创建): 如果之前没有创建复制用户,您需要在这里创建一个用户,并赋予它复制权限。
CREATE USER 'repl'@'%' IDENTIFIED BY 'replpassword';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
执行成功如图所示:
(步骤8)登录到MySQL从服务器: 同样,使用MySQL root用户或repl用户登录到从服务器。
docker exec -it mysql_slave mysql -u root -prootpassword
(步骤9)配置从服务器以连接主服务器: 在从服务器上,您需要改变主服务器配置,指定主服务器的地址、用户、密码以及二进制日志文件和位置。(在数据库里面运行命令)
CHANGE MASTER TO
MASTER_HOST='mysql-master',
MASTER_USER='repl',
MASTER_PASSWORD='replpassword',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=107;
(步骤10)启动从服务器上的复制线程: 配置完成后,在从服务器上启动复制线程。(在数据库里面运行命令)
START SLAVE;
(步骤11)检查主从复制状态: 在主服务器和从服务器上检查复制状态,确保从服务器正在正确地复制主服务器上的数据。(在数据库里面运行命令)
SHOW SLAVE STATUS\G;
(步骤12)验证复制: 在主服务器上执行一些更改,然后检查从服务器上是否同步了这些更改。(在数据库里面运行命令)
USE mydatabase;
INSERT INTO mytable (column1, column2) VALUES ('value1', 'value2');
然后在从服务器上检查这些更改是否已经同步。
完成以上步骤后,您的MySQL主从复制环境就应该搭建好了。请确保定期检查复制状态,并在必要时进行维护和优化。
更多推荐
所有评论(0)