奋斗
努力

京东云docker安装mysql8.0?

云计算

在京东云(或其他任何云服务器)上通过 Docker 安装 MySQL 8.0,通常分为准备环境拉取镜像启动容器以及验证连接四个步骤。

以下是完整的操作指南:

1. 登录服务器并准备环境

首先通过 SSH 登录到京东云的 ECS 实例。确保你的服务器已经安装了 Docker 和 Docker Compose(可选,但推荐)。

如果尚未安装 Docker,可以使用以下命令快速安装(以 Ubuntu/Debian 为例):

# 更新软件包索引
sudo apt-get update

# 安装依赖项
sudo apt-get install -y ca-certificates curl gnupg lsb-release

# 添加 Docker 官方 GPG 密钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 设置仓库
echo 
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu 
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装 Docker Engine
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

注:如果是 CentOS/Alibaba Cloud Linux,请使用 yumdnf 安装方式。


2. 创建数据目录与配置文件

为了数据安全,建议将数据持久化挂载到宿主机,而不是存储在容器内部。

# 创建存放数据的目录
mkdir -p /opt/mysql/data
mkdir -p /opt/mysql/conf

# 赋予当前用户权限(防止权限问题)
chmod -R 777 /opt/mysql

注意:生产环境中建议不要使用 777,而是根据运行用户调整权限(如 chown -R mysql:mysql),此处为了演示方便暂用 777。


3. 启动 MySQL 8.0 容器

我们可以直接使用 docker run 命令一键启动,或者使用 docker-compose.yml 管理。这里提供最常用的 docker run 方式,参数包含根密码、时区等关键配置。

执行以下命令:

docker run -d 
  --name mysql8 
  -e MYSQL_ROOT_PASSWORD=your_strong_password_here 
  -e TZ=Asia/Shanghai 
  -p 3306:3306 
  -v /opt/mysql/data:/var/lib/mysql 
  -v /opt/mysql/conf:/etc/mysql/conf.d 
  --restart always 
  mysql:8.0

参数说明:

  • --name mysql8: 容器名称。
  • -e MYSQL_ROOT_PASSWORD=...: 必须修改为你自己的强密码(MySQL 8.0 强制要求)。
  • -e TZ=Asia/Shanghai: 设置时区为上海时间。
  • -p 3306:3306: 将宿主机的 3306 端口映射到容器,用于外部访问。
  • -v ...: 数据卷挂载,确保重启后数据不丢失。
  • mysql:8.0: 指定拉取 MySQL 8.0 的官方镜像。

4. 关键步骤:配置京东云安全组

这是最容易出错的一步。 默认情况下,京东云的安全组会拦截所有入站流量。你必须手动放行端口,否则本地无法连接数据库。

  1. 登录 京东云控制台
  2. 进入 云服务器 (ECS) -> 找到你的实例 -> 点击 更多 -> 网络与安全 -> 安全组
  3. 点击该安全组的 规则列表,选择 入方向 -> 添加入站规则
  4. 配置如下:
    • 协议类型: TCP
    • 端口范围: 3306 (或者填写 3306/3306)
    • 授权对象: 0.0.0.0/0 (允许所有 IP 访问,生产环境建议限制为你的特定 IP)
    • 优先级: 保持默认
  5. 保存规则。

5. 验证安装是否成功

检查容器状态

docker ps

查看是否有名为 mysql8 且状态为 Up 的容器。

进入容器测试

docker exec -it mysql8 mysql -u root -p

输入你在第 3 步设置的密码。如果能进入 mysql> 提示符,说明安装成功。

远程连接测试

在你的本地电脑(Windows/Mac/Linux)使用 Navicat、DBeaver 或命令行连接:

  • Host: 京东云公网 IP
  • Port: 3306
  • User: root
  • Password: 你设置的密码

💡 常见问题与优化建议

  1. 关于 MySQL 8.0 的认证插件
    MySQL 8.0 默认使用 caching_sha2_password 加密插件。如果你使用的是较旧的客户端工具(如旧版 Navicat 或某些语言驱动),可能会报错 Plugin caching_sha2_password could not be loaded

    • 解决方法:创建一个自定义配置文件 /opt/mysql/conf/my.cnf,内容如下,然后重启容器即可兼容旧客户端:
      [mysqld]
      default_authentication_plugin=mysql_native_password
  2. 安全性建议

    • 不要在安全组中随意开放 0.0.0.0/0,最好只开放你办公电脑的 IP 地址。
    • 定期备份 /opt/mysql/data 目录。
  3. 如何查看日志
    如果启动失败,可以通过以下命令查看错误原因:

    docker logs mysql8
未经允许不得转载:云服务器 » 京东云docker安装mysql8.0?