docker实现MySQL数据同步的方法

大家好,今天分享一下docker的一个实战
我们使用docker 实现MySQL 的数据同步
搜索mysql 镜像

[root@localhost ~]# docker searchmysqlNAMEDESCRIPTIONSTARSOFFICIALAUTOMATEDmysqlMySQL is a widely used, open-source relation…12222[OK]mariadbMariaDB Server is a high performing open sou…4691[OK]mysql/mysql-serverOptimized MySQL Server Docker images. Create…907[OK]perconaPercona Server is a fork of the MySQL relati…571[OK]phpmyadminphpMyAdmin - A web interface for MySQL and M…465[OK]mysql/mysql-clusterExperimental MySQL Cluster Docker images. Cr…93centos/mysql-57-centos7MySQL 5.7 SQL database server92bitnami/mysqlBitnami MySQL Docker Image64[OK]databack/mysql-backupBack up mysql databases to... anywhere!56circleci/mysqlMySQL is a widely used, open-source relation…25ubuntu/mysqlMySQL open source fast, stable, multi-thread…24mysql/mysql-routerMySQL Router provides transparent routing be…23centos/mysql-56-centos7MySQL 5.6 SQL database server22arey/mysql-clientRun a MySQL client from a docker container20[OK]google/mysqlMySQL server for Google Compute Engine19[OK]mysqlboy/mydumpermydumper for mysql logcial backups3mysqlboy/docker-mydumperdocker-mydumper containerizes MySQL logical …3bitnami/mysqld-exporter2ibmcom/mysql-s390xDocker image for mysql-s390x1mirantis/mysql0mysql/mysql-operatorMySQL Operator for Kubernetes0mysqlboy/elasticsearch0mysqleatmydata/mysql-eatmydata0cimg/mysql0ibmcom/tidb-ppc64leTiDB is a distributed NewSQL database compat…0[root@localhost ~]#

拉取mysql 镜像 (我们在这里指定5.7这个版本)
[root@localhost ~]# docker pull mysql:5.75.7: Pulling from library/mysql72a69066d2fe: Pull complete 93619dbc5b36: Pull complete 99da31dd6142: Pull complete 626033c43d70: Pull complete 37d5d7efb64e: Pull complete ac563158d721: Pull complete d2ba16033dad: Pull complete 0ceb82207cd7: Pull complete 37f2405cae96: Pull complete e2482e017e53: Pull complete 70deed891d42: Pull complete Digest: sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94Status: Downloaded newer image for mysql:5.7docker.io/library/mysql:5.7[root@localhost ~]#

【docker实现MySQL数据同步的方法】查看本地镜像
[root@localhost ~]# docker imagesREPOSITORYTAGIMAGE IDCREATEDSIZEtomcat041.012b32b1a124d18 hours ago685MBnginxlatest605c77e624dd2 months ago141MBtomcat9.0b8e65a4d736d2 months ago680MBtomcatlatestfb5657adc8922 months ago680MBmysql5.7c20987f18b132 months ago448MBhello-worldlatestfeb5d9fea6a55 months ago13.3kBcentoslatest5d0da3dc97645 months ago231MB[root@localhost ~]#

运行一下mysql 容器,做内外网的端口映射,做容器与Linux 主机上的挂载 ,然后给它设密码123456 ,后面加上操作的镜像名
[root@localhost ~]# docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7 f3248538d690f67fa057b0b9e00dd060b1ce40378171de0a9f3d9ebd478111d2[root@localhost ~]#

显示mysql 容器正在运行中
[root@localhost ~]# docker psCONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMESf3248538d690mysql:5.7"docker-entrypoint.s…"4 minutes agoUp 4 minutes33060/tcp, 0.0.0.0:3310->3306/tcp, :::3310->3306/tcpmysql016d6fa6a4c6d75d0da3dc9764"/bin/bash"25 hours agoUp 25 hoursnice_panini[root@localhost ~]#

使用数据库管理工具sql yog 连接我们的数据库
docker实现MySQL数据同步的方法
文章图片

查看服务器ip地址
[root@localhost ~]# ifconfigens33ens33: flags=4163mtu 1500inet 192.168.1.12netmask 255.255.255.0broadcast 192.168.1.255inet6 fe80::617f:ef93:80d4:e14eprefixlen 64scopeid 0x20ether 00:0c:29:87:af:a6txqueuelen 1000(Ethernet)RX packets 2460532bytes 2826366757 (2.6 GiB)RX errors 0dropped 0overruns 0frame 0TX packets 1198876bytes 243212283 (231.9 MiB)TX errors 0dropped 0 overruns 0carrier 0collisions 0[root@localhost ~]#

这里,
命名为容器,
地址:192.168.1.12 (服务器IP地址)
密码:123456 (我们刚才在docker mysql 容器当中设置的密码)
端口:3310 (这是我们刚才做的端口)
docker实现MySQL数据同步的方法
文章图片

连接成功:
docker实现MySQL数据同步的方法
文章图片

就是说,我们使用现在已经可以通过使用数据库管理工具sql yog 连接与使用我们的数据库
这个效果和实际本质与我们平时使用的数据库是一样的
在Linux主机上查看/home 下的文件 (注意,多了一个mysql)
[root@localhost ~]# cd /home/[root@localhost home]# ls456.txtadminceshidaqingmysqlzhangsan[root@localhost home]#

映射的配置文件与数据文件
[root@localhost home]# cd mysql/[root@localhost mysql]# lsconfdata[root@localhost mysql]#

这就是我们的数据文件
[root@localhost mysql]# cd data/[root@localhost data]# lsauto.cnfca.pemclient-key.pemibdata1ib_logfile1mysqlprivate_key.pemserver-cert.pemsysca-key.pemclient-cert.pemib_buffer_poolib_logfile0ibtmp1performance_schemapublic_key.pemserver-key.pem[root@localhost data]#

正式连接数据库 (192.168.1.12)
docker实现MySQL数据同步的方法
文章图片

在我们MySQL中加一个库
docker实现MySQL数据同步的方法
文章图片

在Linux上 ,在映射目录的数据文件多了一个帅哥
[root@localhost data]# lsauto.cnfca.pemclient-key.pemibdata1ib_logfile1mysqlprivate_key.pemserver-cert.pemshuaigeca-key.pemclient-cert.pemib_buffer_poolib_logfile0ibtmp1performance_schemapublic_key.pemserver-key.pemsys[root@localhost data]#

删除mysql这个容器
[root@localhost data]# docker rm -f mysql01 mysql01[root@localhost data]#

映射的数据文件还在,
[root@localhost data]# lsauto.cnfca.pemclient-key.pemibdata1ib_logfile1mysqlprivate_key.pemserver-cert.pemshuaigeca-key.pemclient-cert.pemib_buffer_poolib_logfile0ibtmp1performance_schemapublic_key.pemserver-key.pemsys[root@localhost data]#

即,在mysql容器删除之后,数据没有丢失,实现了持久化
这就是docker 容器数据卷的好处
到此这篇关于docker实现MySQL数据同步的方法的文章就介绍到这了,更多相关docker MySQL数据同步内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    推荐阅读