Docker 安装 MySQL 8.0 并支持远程访问

Docker 安装 MySQL 8.0
完成下面需求:

  1. 支持远程访问、
  2. 数据与日志文件映射
  3. 端口外部映射
  4. 其他容器的网络访问

可以按照以下步骤进行配置,进行配置和完成了。

1. 准备工作

首先,确保 Docker 正常安装并运行,然后执行以下步骤。

2. 创建本地目录用于存储 MySQL 数据和日志

在宿主机上创建两个目录,一个用于存放 MySQL 数据,另一个用于存放日志文件。

mkdir -p /path/to/mysql/data
mkdir -p /path/to/mysql/logs

将 /path/to/mysql/data 和 /path/to/mysql/logs 替换为您希望存放 MySQL 数据和日志的路径。

3. 启动 MySQL 容器

使用 docker run 命令启动 MySQL 容器,并将端口映射为 13422,同时将数据和日志映射到本地磁盘。

docker run -d \
  --name mysql-server \
  -e MYSQL_ROOT_PASSWORD=my-secret-pw \
  -p 13422:3306 \
  -v /path/to/mysql/data:/var/lib/mysql \
  -v /path/to/mysql/logs:/var/log/mysql \
  mysql:8.0

解释:

-d:后台运行容器。
–name mysql-server:容器名称为 mysql-server。
-e MYSQL_ROOT_PASSWORD=my-secret-pw:设置 MySQL root 用户的密码为 my-secret-pw。
-p 13422:3306:将宿主机的端口 13422 映射到容器中的 MySQL 默认端口 3306,以支持外部访问。
-v /path/to/mysql/data:/var/lib/mysql:将 MySQL 的数据目录映射到宿主机。
-v /path/to/mysql/logs:/var/log/mysql:将 MySQL 的日志目录映射到宿主机。
mysql:8.0:指定 MySQL 8.0 的官方 Docker 镜像。

4. 配置 MySQL 以允许远程访问

MySQL 默认只允许本地访问。您需要修改 MySQL 配置以允许远程访问:

进入 MySQL 容器:

docker exec -it mysql-server mysql -u root -p

登录后,执行以下命令以允许 root 用户从所有主机访问 MySQL:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'my-secret-pw'; FLUSH PRIVILEGES;

为所有网络启用 MySQL 远程访问:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

5. 配置 MySQL 容器网络,使其他容器可以访问

为了使其他 Docker 容器(例如 Java 应用)能够访问 MySQL 数据库,您需要将它们置于同一个 Docker 网络中。

创建一个 Docker 网络:

docker network create my-network

将 MySQL 容器连接到该网络:

docker network connect my-network mysql-server

当运行其他容器(例如 Java 应用)时,可以将它们连接到相同的网络,并使用 mysql-server 作为数据库的主机名。例如:

docker run -d --name java-app --network my-network my-java-image

这样,您的 Java 应用可以通过主机名 mysql-server 访问 MySQL 数据库。

6. 验证远程访问

您可以从外部机器连接到 MySQL,使用 mysql-client 或其他工具:

mysql -u root -p -h <your-host-ip> -P 13422

是您宿主机的 IP 地址,13422 是映射的端口。

如果需要在其他机器上访问 MySQL,请确保宿主机的防火墙允许 13422 端口的连接。

总结

您现在已经使用 Docker 安装并配置了 MySQL 8.0,支持远程访问、数据和日志文件映射,以及与其他 Docker 容器的网络连接,希望对您有帮助。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值