如何使用docker搭建mysql环境_mysql docker环境搭建教程

来源:这里教程网 时间:2026-02-28 20:31:59 作者:

直接用 Docker 运行 MySQL 是最轻量、最快速的方式,不用装依赖、不污染本地环境,开发和测试场景特别适合。

拉取并运行官方 MySQL 镜像

推荐使用官方

mysql
镜像,版本明确、安全更新及时。比如启动一个 MySQL 8.0 实例:

执行命令:docker run -d --name mysql-dev -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /mydata/mysql:/var/lib/mysql -d mysql:8.0 --name 指定容器名,方便后续管理 -p 3306:3306 把宿主机 3306 端口映射到容器内 -e MYSQL_ROOT_PASSWORD 必须设置,否则容器会启动失败 -v 挂载数据目录,避免容器删除后数据丢失

连接 MySQL 容器

容器运行后,可以用任意 MySQL 客户端连接:

本地命令行连接:mysql -h 127.0.0.1 -P 3306 -u root -p,密码就是上面设的
123456
DBeaver、Navicat 等图形工具,主机填
127.0.0.1
,端口
3306
,用户名
root
,密码一致
注意:MySQL 8.0 默认用
caching_sha2_password
插件,部分老客户端不兼容;如遇连接失败,可加参数
--default-authentication-plugin=mysql_native_password
启动,或进容器改用户认证方式

用 docker-compose 管理更省心

适合需要持久化配置、多服务协同(比如搭配 PHP 或 Node 应用)的场景。新建

docker-compose.yml

version: '3.8'
services:
  mysql:
    image: mysql:8.0
    container_name: mysql-dev
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: myapp
    ports:
      - "3306:3306"
    volumes:
      - ./mysql-data:/var/lib/mysql
      - ./my.cnf:/etc/mysql/conf.d/my.cnf:ro
MYSQL_DATABASE 会自动创建指定库,省去手动建库步骤 my.cnf 可挂载自定义配置(如修改最大连接数、字符集),内容需符合 MySQL 语法 启动只需:docker-compose up -d;停止用 docker-compose down

常见问题与处理

刚上手容易卡在这几个点:

端口被占用:检查是否已有 MySQL 进程在跑,或换端口如
-p 3307:3306
容器启动后立刻退出:多半是
MYSQL_ROOT_PASSWORD
没设,或者挂载目录权限不对(Linux 下可加
--user 999:999
或提前
chown -R 999:999 ./mysql-data
中文乱码:在
my.cnf
中加上
[client] default-character-set = utf8mb4
[mysqld] character-set-server = utf8mb4
忘记 root 密码:删掉容器和数据卷,重新运行(开发环境可接受);生产环境建议用初始化脚本或外部密码管理

相关推荐