Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How to install mysql in docker and build master-slave replication

2025-03-31 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Database >

Share

Shulou(Shulou.com)05/31 Report--

This article mainly explains "how to install mysql in docker and set up master-slave replication." Interested friends may wish to have a look. The method introduced in this paper is simple, fast and practical. Let's let Xiaobian take you to learn "how to install mysql in docker and build master-slave copy"!

Set up a mysql replication environment with one master and two slaves in docker. The steps are as follows:

1. Docker mysql installation

[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. Create and run three mysql containers

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. Install mysql client on host

[root@localhost ~]# yum --enablerepo=mysql57-community clean metadata

[root@localhost ~]# yum install -y mysql-community-client

4. Connect to mysql on docker

[root@localhost mysql]# mysql -uroot -p -h227.0.0.1 -P3306

5. mysql container connected to docker

docker exec -it master bash

View ip of three containers separately

172.17.0.2,172.17.0.3,172.17.0.4

6. Configure master-slave replication relationships

#Create user on main library 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)

#View main library log location

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)

#Start replication on two slave libraries separately

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)

At this point, I believe everyone has a deeper understanding of "how to install mysql in docker and build master-slave replication," so let's actually operate it! Here is the website, more related content can enter the relevant channels for inquiry, pay attention to us, continue to learn!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Database

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report