安装配置MySql+DRBD+Corosync+pacemaker高可用集群

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

安装配置MySql+DRBD+Corosync+pacemaker

本次 主要介绍MySqL高可用集群环境的搭建。DRBD的英文全称为:Distributed Replicated Block Device(分布式块设备复制),是Linux内核存储层中的一个分布式存储系统,可利用DRBD在两台Linux服务器之间共享块设备、文件系统和数据,类似一个网络RAID1的功能。DRBD的架构如图所示:


其他多说了。实现吧。

前提:
1)本配置共有两个测试节点,分别node1.zhou.com和node2.zhou.com,相的IP地址分别为192.168.35.11/24和192.168.35.12/24;
2)node1和node2两个节点上各提供了一个大小相同的分区作为drbd设备;我们这里为在两个节点上均为/dev/sda5,大小为2G;
3)调整两个节点的时间要同步
4)关闭两台服务器的selinux。
关闭方法:# setenforce 0 
要开机就已经是关闭要编辑配置文件 
# vim /etc/selinux/config 
定位到:SELINUX 并修改为:SELINUX=permissive
5)配置好yum源
6)系统为rhel5.4,x86平台;

一、准备工作
两个节点的主机名称和对应的IP地址解析服务可以正常工作,且每个节点的主机名称需要跟"uname -n“命令的结果保持一致;因此,需要保证两个节点上的/etc/hosts文件均为下面的内容:
192.168.35.11 node1.zhou.com node1
192.168.35.12 node2.zhou.com node2
为了使得重新启动系统后仍能保持如上的主机名称,还分别需要在各节点执行类似如下的命令:


   
   
  1. Node1: 
  2. # sed -i 's@\(HOSTNAME=\).*@\1node1.zhou.com@g' 
  3. # hostname node1.zhou.com 
  4. Node2: 
  5. # sed -i 's@\(HOSTNAME=\).*@\1node2.zhou.com@g' 
  6. # hostname node2.zhou.com 

为了在两台服务器之间文件复制方便,下面来配置双机互信。

设定两个节点可以基于密钥进行ssh通信,这可以通过类似如下的命令实现:


   
   
  1. Node1: 
  2. # ssh-keygen -t rsa 
  3. # ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2 
  4. Node2: 
  5. # ssh-keygen -t rsa 
  6. # ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1 

配置完成了。以后两台服务器之间在复制文件时就不用输入密码了。这样就方便多了。

二、安装配置DRBD
下载所需的软件包:rbd83-8.3.8-1.el5.centos.i386.rpm kmod-drbd83-8.3.8-1.el5.centos.i686.rpm这两个软件包要根据自己的系统来定。
下载完成后直接安装即可:


   
   
  1. # yum -y --nogpgcheck localinstall drbd83-8.3.8-1.el5.centos.i386.rpm kmod-drbd83-8.3.8-1.el5.centos.i686.rpm 

两台服务器上都要安装上。

下面的操作在node1.zhou.com上完成。

1)复制样例配置文件为即将使用的配置文件:
# cp /usr/share/doc/drbd83-8.3.8/drbd.conf /etc

2)

   
   
  1. 配置/etc/drbd.d/global-common.conf 
  2. global { 
  3.         usage-count no; 
  4.         # minor-count dialog-refresh disable-ip-verification 
  5.  
  6. common { 
  7.         protocol C; 
  8.  
  9.         handlers { 
  10.                 pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f"
  11.                 pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f"
  12.                 local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f"
  13.                 # fence-peer "/usr/lib/drbd/crm-fence-peer.sh"; 
  14.                 # split-brain "/usr/lib/drbd/notify-split-brain.sh root"; 
  15.                 # out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root"; 
  16.                 # before-resync-target "/usr/lib/drbd/snapshot-resync-target-lvm.sh -p 15 -- -c 16k"; 
  17.                 # after-resync-target /usr/lib/drbd/unsnapshot-resync-target-lvm.sh; 
  18.         } 
  19.  
  20.         startup { 
  21.                 #wfc-timeout 120; 
  22.                 #degr-wfc-timeout 120; 
  23.         } 
  24.  
  25.         disk { 
  26.                 on-io-error detach; 
  27.                                 #fencing resource-only; 
  28.         } 
  29.  
  30.         net { 
  31.                                 cram-hmac-alg "sha1"
  32.                                 shared-secret "mydrbdlab"
  33.         } 
  34.  
  35.         syncer { 
  36.                 rate 1000M; 
  37.         } 
  38.  
  39. 3、定义一个资源/etc/drbd.d/web.res,内容如下: 
  40. resource web { 
  41.   on node1.zhou.com { 
  42.     device    /dev/drbd0; 
  43.     disk      /dev/sda5; 
  44.     address   192.168.35.11:7789; 
  45.     meta-disk internal; 
  46.   } 
  47.   on node2.zhou.com { 
  48.     device    /dev/drbd0; 
  49.     disk      /dev/sda5; 
  50.     address   192.168.35.12:7789; 
  51.     meta-disk internal; 
  52.   } 
 
以上文件在两个节点上必须相同,因此,可以基于ssh将刚才配置的文件全部同步至另外一个节点。
# scp -r /etc/drbd.* node2:/etc

4、在两个节点上初始化已定义的资源并启动服务:

1)初始化资源,在Node1和Node2上分别执行:
# drbdadm create-md web

2)启动服务,在Node1和Node2上分别执行:
# service drbd start

3)查看启动状态:
# cat /proc/drbd
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:16
0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r----
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:505964
也可以使用drbd-overview命令来查看:
# drbd-overview
0:web Connected Secondary/Secondary Inconsistent/Inconsistent C r----
到此DRBD就算配置好了。要把drbd服务配置成集群资源则服务不能开机自动启动,所以还要在两台服务器上把drbd服务关闭
# service drbd stop
# chkconfig drbd off
三、安装配置Corosync和pacemaker 1、安装corosync和pacemaker,首先下载所需要如下软件包至本地某专用目录(这里为/root/cluster): cluster-glue cluster-glue-libs heartbeat openaislib resource-agents corosync heartbeat-libs pacemaker corosynclib libesmtp pacemaker-libs 下载地址:http://clusterlabs.org/rpm/。请根据硬件平台及操作系统类型选择对应的软件包;这里建议每个软件包都使用目前最新的版本。 下载完成后安装软件: # 用yum来安装: # yum -y --nogpgcheck localinstall *.rpm 2、做相应的配置 1)配置corosync

   
   
  1. # cd /etc/corosync 
  2. # cp corosync.conf.example corosync.conf 
  3. totem { 
  4.         version: 2 
  5.         secauth: on   --->这个要启用 
  6.         threads: 0 
  7.         interface { 
  8.                 ringnumber: 0 
  9.                 bindnetaddr: 192.168.35.0  ---->修改为相应的网络地址 
  10.                 mcastaddr: 226.94.1.9     ----->这个组播地址也做一点修改以防与其他人的相同。 
  11.                 mcastport: 5405 
  12.         } 
  13.  
  14. logging { 
  15.         fileline: off 
  16.         to_stderr: no 
  17.         to_logfile: yes 
  18.         to_syslog: no       ----->日志文件用一个就行了。所以要关闭一个 
  19.         logfile: /var/log/cluster/corosync.log 
  20.         debug: off 
  21.         timestamp: on 
  22.         logger_subsys { 
  23.                 subsys: AMF 
  24.                 debug: off 
  25.         } 
  26.  
  27. amf { 
  28.         mode: disabled 
  29. service {               ----->从这行开始到结束是要添加的内容 
  30.   ver:  0 
  31.   name: pacemaker 
  32. aisexec { 
  33.   user: root 
  34.   group: root 
  2)生成节点间通信时用到的认证密钥文件: # corosync-keygen  3)将corosync和authkey复制至node2: # scp -p corosync authkey  node2:/etc/corosync/  4)分别为两个节点创建corosync生成的日志所在的目录: # mkdir /var/log/cluster # ssh node2  'mkdir /var/log/cluster'  5)下面来尝试启动,(以下命令在node1上执行):  # service corosync start  查看corosync引擎是否正常启动: 

   
   
  1. # grep -e "Corosync Cluster Engine" -e "configuration file" /var/log/cluster/corosync.log  
  2. Jun 14 19:02:08 node1 corosync[5103]:   [MAIN  ] Corosync Cluster Engine ('1.2.7'): started and ready to provide service. 
  3. Jun 14 19:02:08 node1 corosync[5103]:   [MAIN  ] Successfully read main configuration file '/etc/corosync/corosync.conf'. 
  4. Jun 14 19:02:08 node1 corosync[5103]:   [MAIN  ] Corosync Cluster Engine exiting with status 8 at main.c:1397. 
  5. Jun 14 19:03:49 node1 corosync[5120]:   [MAIN  ] Corosync Cluster Engine ('1.2.7'): started and ready to provide service. 
  6. Jun 14 19:03:49 node1 corosync[5120]:   [MAIN  ] Successfully read main configuration file '/etc/corosync/corosync.conf'. 
 查看初始化成员节点通知是否正常发出: 

   
   
  1. # grep  TOTEM  /var/log/cluster/corosync.log  
  2. Jun 14 19:03:49 node1 corosync[5120]:   [TOTEM ] Initializing transport (UDP/IP). 
  3. Jun 14 19:03:49 node1 corosync[5120]:   [TOTEM ] Initializing transmit/receive security: libtomcrypt SOBER128/SHA1HMAC (mode 0). 
  4. Jun 14 19:03:50 node1 corosync[5120]:   [TOTEM ] The network interface [192.168.35.11] is now up. 
  5. Jun 14 19:03:50 node1 corosync[5120]:   [TOTEM ] A processor joined or left the membership and a new membership was formed. 
 检查启动过程中是否有错误产生: 

   
   
  1. # grep ERROR: /var/log/cluster/corosync.log  | grep -v unpack_resources 
查看pacemaker是否正常启动:

   
   
  1. # grep pcmk_startup /var/log/cluster/corosync.log  
  2. Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] info: pcmk_startup: CRM: Initialized 
  3. Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] Logging: Initialized pcmk_startup 
  4. Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] info: pcmk_startup: Maximum core file size is: 4294967295 
  5. Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] info: pcmk_startup: Service: 9 
  6. Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] info: pcmk_startup: Local hostname: node1.zhou.com 
 如果上面命令执行均没有问题,接着可以执行如下命令启动node2上的corosync # ssh node2 '/etc/init.d/corosync start'  注意:启动node2需要在node1上使用如上命令进行,不要在node2节点上直接启动;  使用如下命令查看集群节点的启动状态: 

   
   
  1. # crm status 
  2. ============ 
  3. Last updated: Tue Jun 14 19:07:06 2011 
  4. Stack: openais 
  5. Current DC: node1.magedu.com - partition with quorum 
  6. Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87 
  7. 2 Nodes configured, 2 expected votes 
  8. 0 Resources configured. 
  9. ============ 
  10.  
  11. Online: [ node1.zhou.com node2.zhou.com ] 
出现 这个结果显示Corosync安装成功了。 四、安装MySqL 下载软件:mysql-5.5.20-linux2.6-i686.tar.gz 在node1上操作 使node1为主节点:

   
   
  1. # mkdir /mydata 
  2. # mount /dev/drbd0 /mydata 
  3. # mkdir /myata/data 
  4. # groupadd -r -g 306 mysql 
  5. # useradd -r -g mysql -u 306 -s /sbin/nologin -M mysql 
  6. # chown -R mysql:mysql /mydata/data 
  7. # tar xvf mysql-5.5.20-linux2.6-i686.tar.gz -C /usr/local/ 
  8. # cd /usr/local/ 
  9. # ln -sv mysql-5.5.20-linux2.6-i686 mysql 
  10. # cd mysql 
  11. # chown -R mysql:mysql . 
  12. # ./scripts/mysql_install_db --user=mysql --datadir=/mydata/data/  
  13. # chown -R root . 
  14. # cp support-files/my-large.cnf /etc/my.cnf 
  15. # cp support-files/mysql.server /etc/rc.d/init.d/mysqld 
  16. # ln -sv /usr/local/mysql/include /usr/include/mysql 
  17. # echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf 
  18. # ldconfig -v | grep mysql 
  19. # service mysqld start 
  20. # service mysqld stop 
  21. # chkconfig mysqld off 
下面卸载/dev/drbd0 并让node2成为主节点 在node2上所要做的步骤: 同样要安装MySqL 

   
   
  1. # scp node1:/root/mysql-5.5.20-linux2.6-i686.tar.gz ./ 
  2. # mkdir /mydata 
  3. # mount /dev/drbd0 /mydata 
  4. # mkdir /myata/data 
  5. # groupadd -r -g 306 mysql 
  6. # useradd -r -g mysql -u 306 -s /sbin/nologin -M mysql 
  7. # chown -R mysql:mysql /mydata/data 
  8. # tar xvf mysql-5.5.20-linux2.6-i686.tar.gz -C /usr/local/ 
  9. # cd /usr/local/ 
  10. # ln -sv mysql-5.5.20-linux2.6-i686 mysql 
  11. # cd mysql 
  12. # chown -R root:mysql . 
  13. # scp node1:/etc/my.cnf /etc/ 
  14. # scp node1:/etc/rc.d/init.d/mysqld /etc/rc.d/init.d/ 
  15. # ln -sv /usr/local/mysql/include /usr/include/mysql 
  16. # scp node1:/etc/ld.so.conf.d/mysql.conf /etc/ld.so.conf.d/ 
  17. # ldconfig -v | grep mysql 
  18. # service mysqld start 
  19. # service mysqld stop 
  20. # chkconfig mysqld off 
这样两个服务器上都安装上了MySqL 接着要的是让两个节点的drbd服务都处在slave状态,并把服务给停止了。为下面做集群服务做准备。 下面来在crm命令行中来配置集群资源 

   
   
  1. # crm configure 
  2. crm(live)configure# property stonith-enabled="false" 
  3. crm(live)configure# property no-quorum-policy="ignore" 
  4. crm(live)configure# rsc_defaults resource-stickiness=100 
-------------这三个是全局配置------------------------ 

   
   
  1. crm(live)configure# verify  
  2. crm(live)configure# commit  
  3. crm(live)configure# show 
  4. node node1.zhou.com 
  5. node node2.zhou.com 
  6. property $id="cib-bootstrap-options" \ 
  7.     dc-version="1.1.5-1.1.el5-01e86afaaa6d4a8c4836f68df80ababd6ca3902f" \ 
  8.     cluster-infrastructure="openais" \ 
  9.     expected-quorum-votes="2" \ 
  10.     stonith-enabled="false" \ 
  11.     no-quorum-policy="ignore" 
  12. rsc_defaults $id="rsc-options" \ 
  13.     resource-stickiness="100" 
	--------------下面来配置drbd资源并配置成主从资源----------------------------- 

   
   
  1. crm(live)configure# primitive drbd ocf:linbit:drbd params drbd_resource="web" op monitor interval=29s role="Master" op monitor interval=31s role="Slave" op start timeout=240s op stop timeout=100s 
  2. crm(live)configure# show 
  3. crm(live)configure# show 
  4. crm(live)configure# ms ms_drbd drbd meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true 
--------------drbd的主从资源定义完成-------------------------------- 

   
   
  1. crm(live)configure# primitive fs ocf:heartbeat:Filesystem params device="/dev/drbd0" directory="/mydata" fstype="ext3" op start timeout=60s op stop timeout=60s 
----------------------这是定义一个文件系统------------------------- 

   
   
  1. crm(live)configure# primitive myip ocf:heartbeat:IPaddr params ip="192.168.53.4" 
  2. crm(live)configure# primitive mysqld lsb:mysqld  
--------------这是定义VIP资源和mysqld服务----------------------------- 好了,所要用到的资源都以定义完成了。 --------------------下面来定义资源间的位置和次序的约束关系------------------------ 

   
   
  1. crm(live)configure# colocation fs_with_ms_drbd inf: fs ms_drbd:Master  --->让fs与ms_drbd的主节点在一起 
  2. crm(live)configure# order fs_after_ms_drbd inf: ms_drbd:promote fs:start  ---->让ms_drbd先于fs启动 
  3. crm(live)configure# colocation ip_with_ms_drbd inf: ip ms_drbd:Master  ---> 让ip地址与ms_drbd的主节点在一起 
  4. crm(live)configure# order fs_after_ip inf: ip fs:start                  ----> 让fs晚于ip启动 
  5. crm(live)configure# colocation mysqld_with_fs inf: mysqld fs           ------> 让mysql服务与fs在一起 
  6. crm(live)configure# order mysqld_after_fs inf: fs mysqld:start         -------> 让fs先于mysql服务启动 
  7. 最要检测一下,并提交。 
  8. crm(live)configure# verify  
  9. crm(live)configure# show 
  10. crm(live)configure# commit  
下面来用命令来查看服务的运行情况: 

   
   
  1. # crm_mon 
  2. 如下所示的结果: 
  3. Online: [ node1.zhou.com node2.zhou.com ] 
  4.  
  5.  Master/Slave Set: ms_drbd [drbd] 
  6.      Masters: [ node2.zhou.com ] 
  7.      Slaves: [ node1.zhou.com ] 
  8. fs  (ocf::heartbeat:Filesystem):    Started node2.zhou.com 
  9. ip  (ocf::heartbeat:IPaddr):        Started node2.zhou.com 
  10. mysqld  (lsb:mysqld):   Started node2.zhou.com 
从上面可以看出:主节点是node2,从节点是node1 ,下面来让node2变为standby,查看服务是否转移到node1上。 在node2上执行如下命令: 

   
   
  1. # crm node standby 
  2. # crm_mon 
  3.  
  4. Node node2.zhou.com: standby 
  5. Online: [ node1.zhou.com ] 
  6.  
  7.  Master/Slave Set: ms_drbd [drbd] 
  8.      Masters: [ node1.zhou.com ] 
  9.      Stopped: [ drbd:0 ] 
  10. fs  (ocf::heartbeat:Filesystem):    Started node1.zhou.com 
  11. ip  (ocf::heartbeat:IPaddr):        Started node1.zhou.com 
  12. mysqld  (lsb:mysqld):   Started node1.zhou.com 
从上可知所有的服务都移到node1上了。说明整个服务和配置完成了,并检测了MySqL的高可用性。在两个节点之间可以正常的切换。           

 

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
存储 SQL 关系型数据库
Mysql高可用架构方案
本文阐述了Mysql高可用架构方案,介绍了 主从模式,MHA模式,MMM模式,MGR模式 方案的实现方式,没有哪个方案是完美的,开发人员在选择何种方案应用到项目中也没有标准答案,合适的才是最好的。
163 3
Mysql高可用架构方案
|
2月前
|
安全 关系型数据库 MySQL
mysql8安装
本文介绍了在 CentOS 7 上安装 MySQL 5.7 的详细步骤,包括下载、环境准备、系统配置、安装过程及启动方法。首先通过wget下载MySQL压缩包并解压至指定目录,接着进行主机名修改、依赖安装、用户与用户组创建、ulimit配置等环境准备工作。随后,对操作系统环境进行调整,如文件句柄和进程数的设置、内核参数优化、SELinux和防火墙的关闭等。最后,完成MySQL的安装配置,创建数据和日志目录,初始化MySQL,并设置启动脚本和环境变量,确保MySQL能够正常运行。
81 4
|
2月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
56 3
|
2月前
|
消息中间件 分布式计算 关系型数据库
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
61 0
|
2天前
|
关系型数据库 MySQL 数据库
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
在这一章节,主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。接着,详细描述了MySQL 8.0的版本选择与下载,推荐使用社区版(免费)。安装过程包括自定义安装路径、配置环境变量、启动和停止服务、以及客户端连接测试。此外,还提供了在同一台电脑上安装多个MySQL版本的方法及卸载步骤。最后,解释了关系型数据库(RDBMS)的特点,即基于二维表存储数据,使用SQL语言进行操作,格式统一且便于维护。通过具体的结构图展示了MySQL的数据模型,说明了数据库服务器、数据库、表和记录之间的层次关系。
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
|
8天前
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
66 24
|
2天前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
58 7
|
2月前
|
安全 关系型数据库 MySQL
Linux下安装mysql8.0(以tar.xz包安装--编译安装)
通过上述步骤,您完成了从下载、编译、安装到配置MySQL 8.0的全过程。此过程虽然较为复杂,但提供了对MySQL安装环境的完全控制,有助于满足特定的部署需求。在实际操作中,根据具体的系统环境,可能还需调整部分步骤或解决未预见的依赖问题。始终参考官方文档和社区资源,保持安装过程与最新版本的兼容性。
1129 67
|
1月前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
62 4
|
2月前
|
关系型数据库 MySQL Linux
Docker安装Mysql5.7,解决无法访问DockerHub问题
当 Docker Hub 无法访问时,可以通过配置国内镜像加速来解决应用安装失败和镜像拉取超时的问题。本文介绍了如何在 CentOS 上一键配置国内镜像加速,并成功拉取 MySQL 5.7 镜像。
626 2
Docker安装Mysql5.7,解决无法访问DockerHub问题