使用Docker部署MySQL 5.7并配置防火墙
步骤1: 切换到超级用户
首先,打开终端,输入以下命令切换到超级用户(root):
su
然后输入您的root密码。
步骤2: 启动Docker服务
确保Docker服务已经启动。可以使用如下命令启动Docker(如果它尚未运行):
systemctl start docker
步骤3: 运行MySQL容器
使用docker run命令来启动一个MySQL 5.7容器。此命令将创建一个名为mysql的容器,映射端口3307到容器内部的3306端口,并设置环境变量如时区、root用户的用户名和密码等。
docker run \
--name mysql \
-p 3307:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_INITDB_ROOT_USERNAME=root \
-e MYSQL_INITDB_ROOT_PASSWORD=123456 \
-e MYSQL_DEFAULT_AUTHENTICATION_PLUGIN=mysql_native_password \
-v /path/to/mysql/data:/var/lib/mysql \
-d mysql:5.7
注意:请将/path/to/mysql/data替换为实际的主机路径,用于存储MySQL数据。
步骤4: 配置防火墙规则
为了使外部设备能够访问MySQL服务,需要通过firewalld添加一个新的端口规则。
- 查看firewalld状态以确认其是否正在运行:
systemctl status firewalld
- 添加新的端口规则:
firewall-cmd --zone=public --add-port=3307/tcp --permanent
- 重新加载firewalld以应用更改:
firewall-cmd --reload
- 确认端口规则已成功添加:
firewall-cmd --list-all
步骤5: 检查Linux服务器IP地址
最后,确定您的服务器IP地址以便从其他设备连接到MySQL服务:
hostname -I
这将显示所有分配给Linux服务器的IP地址。选择正确的IP地址与之前配置的端口号一起使用,以从外部连接到MySQL数据库。
通过以上步骤,您应该能够在CentOS系统上成功部署MySQL 5.7并通过Docker管理它,同时确保外部设备可以通过配置的防火墙规则访问该数据库服务。
步骤6: 宿主机使用navicat进行远程连接docker中的mysql
测试成功代表完成!