欢迎光临
我们一直在努力

如何在docker中安装mysql并搭建主从复制

本篇内容主要讲解“如何在docker中安装mysql并搭建主从复制”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何在docker中安装mysql并搭建主从复制”吧!

在docker中搭建一主两从的mysql复制环境,步骤如下:

1.docker mysql的安装
[root@localhost docker]# docker search mysql
NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                           MySQL is a widely used, open-source relati…   4306      [OK]       
mysql/mysql-server              Optimized MySQL Server Docker images. Crea…   294                  [OK]
centurylink/mysql               Image containing mysql. Optimized to be li…   51                   [OK]
zabbix/zabbix-server-mysql      Zabbix Server with MySQL database support       39                   [OK]
zabbix/zabbix-web-nginx-mysql   Zabbix frontend based on Nginx web-server …   21                   [OK]
imega/mysql                     Size: 149 MB, alpine:3.5, Mysql Server: 10…   11                   [OK]
appcontainers/mysql             Centos/Debian Based Customizable MySQL Con…   8                    [OK]
marvambass/mysql                MySQL Server based on Ubuntu 14.04              7                    [OK]
zabbix/zabbix-proxy-mysql       Zabbix proxy with MySQL database support        7                    [OK]
bitnami/mysql                   Bitnami MySQL Docker Image                      5                    [OK]
dnhsoft/mysql-utf8              Inherits the official MySQL image configur…   5                    [OK]
debezium/example-mysql          Example MySQL database server with a simpl…   4                    [OK]
frodenas/mysql                  A Docker Image for MySQL                        3                    [OK]
alterway/mysql                  Docker Mysql                                    3                    [OK]
yfix/mysql                      Yfix docker built mysql                         2                    [OK]
drupaldocker/mysql              MySQL for Drupal                                2                    [OK]
coscale/mysql                   CoScale custom configuration of the offici…   1                    [OK]
lysender/mysql                  MySQL base image using Ubuntu 16.04 Xenial      1                    [OK]
tozd/mysql                      MySQL (MariaDB fork) Docker image.              1                    [OK]
projectomakase/mysql            Docker image for MySQL                          0                    [OK]
1maa/mysql                      MySQL database                                  0                    [OK]
datajoint/mysql                 MySQL image pre-configured to work smoothl…   0                    [OK]
captomd/mysql                   CaptoMD mysql configuration                     0                    [OK]
cloudposse/mysql                Improved `mysql` service with support for …   0                    [OK]
nanobox/mysql                   MySQL service for nanobox.io                    0                    [OK]
nanobox/mysql                   MySQL service for nanobox.io                    0                    [OK]

[root@localhost docker]# docker pull mysql:5.7
5.7: Pulling from library/mysql
cd0a524342ef: Downloading 21.63 MB/52.55 MB
d9c95f06c17e: Download complete 
46b2d578f59a: Download complete 
10fbc2bcc6e9: Download complete 
91b1a29c3956: Download complete 
5bf9316bd602: Download complete 
69bd23f08b55: Download complete 
4fb778132e94: Downloading 18.38 MB/78.96 MB
6913628d7744: Download complete 
a477f36dc2e0: Download complete 
c954124ae935: Download complete 

2.创建并运行三个mysql容器
docker run -p 3306:3306 –name master -v /app/mysql/conf/my_master.cnf:/etc/mysql/my.cnf  -v /app/mysql/master:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 
docker run -p 3307:3306 –name slave1 -v /app/mysql/conf/my_slave1.cnf:/etc/mysql/my.cnf  -v /app/mysql/slave1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 
docker run -p 3308:3306 –name slave2 -v /app/mysql/conf/my_slave2.cnf:/etc/mysql/my.cnf  -v /app/mysql/slave2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 

3.在host上安装mysql客户端
[root@localhost ~]# yum –enablerepo=mysql57-community clean metadata
[root@localhost ~]# yum install -y mysql-community-client

4.连接到docker上的mysql
[root@localhost mysql]# mysql -uroot -p -h227.0.0.1 -P3306

5.连接到docker的mysql容器
docker exec -it master bash
分别查看三个容器的ip
172.17.0.2,172.17.0.3,172.17.0.4

6.配置主从复制关系
#在主库172.17.0.2上创建用户
mysql> CREATE USER 'repl'@'%' IDENTIFIED BY 'repl';
Query OK, 0 rows affected (0.11 sec)

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
Query OK, 0 rows affected (0.05 sec)

#查看主库日志位置
mysql> show master status;
+——————+———-+————–+——————+——————-+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+——————+———-+————–+——————+——————-+
| mysql-bin.000003 |      154 |              |                  |                   |
+——————+———-+————–+——————+——————-+
1 row in set (0.08 sec)

#分别在两个从库上启动复制
mysql> CHANGE MASTER TO
    -> MASTER_HOST='172.17.0.2',
    -> MASTER_PORT=3306,
    -> MASTER_USER='repl',
    -> MASTER_PASSWORD='repl',
    -> MASTER_LOG_FILE='mysql-bin.000003',
    -> MASTER_LOG_POS=154;
Query OK, 0 rows affected, 1 warning (0.57 sec)

mysql> start slave;
Query OK, 0 rows affected (0.03 sec)

到此,相信大家对“如何在docker中安装mysql并搭建主从复制”有了更深的了解,不妨来实际操作一番吧!这里是云搜网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。