共計 4373 個字符,預計需要花費 11 分鐘才能閱讀完成。
本篇內容主要講解“如何在 docker 中安裝 mysql 并搭建主從復制”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“如何在 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 并搭建主從復制”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!