用 Docker 运行 MySQL 是最轻量、可复现的本地或测试环境搭建方式,核心是一条 docker run 命令配合挂载和参数;支持持久化、远程连接、自定义配置及常见问题处理。

直接用 Docker 运行 MySQL 是最轻量、可复现的本地或测试环境搭建方式。核心就是一条 docker run 命令,配合少量挂载和参数即可完成部署。
执行以下命令即可拉取官方镜像并启动一个带持久化、可远程连接的 MySQL 8.0 容器:
docker run -d \--name mysql8 \-p 3306:3306 \-e MYSQL_ROOT_PASSWORD=123456 \-v /mydata/mysql/conf:/etc/mysql/conf.d \-v /mydata/mysql/data:/var/lib/mysql \-v /mydata/mysql/logs:/var/log/mysql \-d mysql:8.0说明:
-p 3306:3306 映射宿主机 3306 端口;
-e MYSQL_ROOT_PASSWORD 设置 root 密码(必须);
-v 三个挂载分别对应配置、数据、日志,确保容器重启后数据不丢失。
在 /mydata/mysql/conf/ 下新建 custom.cnf,例如启用时区、调整字符集:
[mysqld] default-time-zone = '+08:00' character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci skip-character-set-client-handshake = true
Docker 启动时会自动加载该文件。注意:MySQL 8.0 默认使用 caching_sha2_password 插件,如需兼容老客户端,可在配置中加一行:default_authentication_plugin = mysql_native_password
启动后检查状态:docker ps | grep mysql8
进入容器执行 SQL 验证:docker exec -it mysql8 mysql -uroot -p123456 -e "SELECT VERSION(), @@sql_mode;"
从宿主机用客户端(如 MySQL Workbench、DBeaver 或命令行)连接 127.0.0.1:3306,用户名 root,密码即启动时设置的值。
-p 3307:3306)docker exec -it mysql8 mysql -uroot -p123456 -e "CREATE USER 'root'@'%' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;"
/mydata/mysql/data)属主为 999:999(MySQL 容器默认用户 ID),可运行:sudo chown -R 999:999 /mydata/mysql
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号