Docker安装MySQL 8.0两个版本的命令总结

 更新时间:2026年03月23日 09:57:03   作者:连杰李  
docker是一种开源的容器化平台,可以将应用程序及其依赖项打包成一个隔离的容器,然后在任何操作系统中运行,MySQL是一个流行的开源关系型数据库管理系统,这篇文章主要介绍了Docker安装MySQL 8.0两个版本的命令,需要的朋友可以参考下

我需要一个 Docker 安装 MySQL 8.0 的命令

为了帮你用 Docker 安装 MySQL 8.0,我准备了两个版本的命令。如果你是第一次使用,建议先用简化版快速跑起来;如果你希望数据能长期保存、配置更灵活(比如为了生产环境或重要开发),请直接使用完整版

简化版(快速体验)

这条命令最短,适合快速启动一个 MySQL 实例进行测试,但容器删除后数据会丢失

docker run -d \
  --name mysql8 \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=root \
  mysql:8.0

完整版(推荐,数据持久化 + 详细配置)

这条命令包含了数据挂载、配置文件挂载、时区设置和开机自启,适合长期使用。

# 1. 先在宿主机创建必要的目录
mkdir -p ~/docker/mysql/{data,conf}

# 2. 启动容器的完整命令
docker run -d \
  --name mysql8 \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=your_secure_password \
  -e TZ=Asia/Shanghai \
  -v ~/docker/mysql/data:/var/lib/mysql \
  -v ~/docker/mysql/conf:/etc/mysql/conf.d \
  --restart unless-stopped \
  mysql:8.0 \
  --character-set-server=utf8mb4 \
  --collation-server=utf8mb4_unicode_ci

命令参数详解

为了让您更清楚每部分的作用,我为您拆解了完整版命令的含义:

参数说明
-d后台运行容器(守护式运行)。
--name mysql8为容器指定一个名字,方便后续管理(如 docker stop mysql8)。
-p 3306:3306端口映射,将宿主机的 3306 端口映射到容器的 3306 端口。
-e MYSQL_ROOT_PASSWORD=...必须设置,这是 root 用户的登录密码。
-v ~/docker/...数据持久化。将容器内的数据目录和配置目录挂载到宿主机,防止容器删除后数据丢失。
--restart unless-stopped容器开机自启策略,除非手动停止,否则随 Docker 自动启动。
--character-set-server=utf8mb4额外追加的 MySQL 参数,设置默认字符集为 utf8mb4,支持存储表情符号。

特别注意:远程连接与密码插件

MySQL 8.0 默认使用新的密码验证插件 caching_sha2_password,部分旧的客户端工具(如老版本 Navicat)可能无法连接。

如果遇到连接问题,请按以下步骤解决:

  1. 进入容器:

    docker exec -it mysql8 mysql -uroot -p
    

    (输入你设置的密码)

  2. 修改密码验证方式:
    在 MySQL 命令行中执行,将其改为兼容性更好的 mysql_native_password

    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_secure_password';
    FLUSH PRIVILEGES;
    

补充:如何开启远程访问

如果您需要从其他机器访问这个数据库,除了上面的修改插件步骤外,还需要确保:

  1. 防火墙开放端口:确保宿主机防火墙放行了 3306 端口。
  2. 用户授权:如果您创建了新用户,记得授权 %(所有主机)访问,或者在启动时添加环境变量 -e MYSQL_ROOT_HOST=% 允许 root 远程登录。

总结

到此这篇关于Docker安装MySQL 8.0两个版本命令总结的文章就介绍到这了,更多相关Docker安装MySQL 8.0命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL查询重复数据(删除重复数据保留id最小的一条为唯一数据)

    MySQL查询重复数据(删除重复数据保留id最小的一条为唯一数据)

    查重是我们在工作中经常会遇到的一个需求,下面这篇文章主要给大家介绍了关于MySQL查询重复数据(删除重复数据保留id最小的一条为唯一数据)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • MySQL中UPDATE语句使用的实例教程

    MySQL中UPDATE语句使用的实例教程

    这篇文章主要介绍了MySQL中UPDATE语句使用的实例教程,包括UPDATE的使用中所容易引起的性能问题的分析,需要的朋友可以参考下
    2015-11-11
  • Mysql修改server uuid的方法分享

    Mysql修改server uuid的方法分享

    这篇文章主要给大家介绍了关于Mysql修改server uuid的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • mysql 快速解决死锁方式小结

    mysql 快速解决死锁方式小结

    本文讲述了在MySQL中识别和终止导致死锁的SQL语句,通过SHOWENGINEINNODBSTATUS和INFORMATION_SCHEMA表,可以找到死锁的具体事务,感兴趣的可以了解一下
    2024-11-11
  • lnmp下如何关闭Mysql日志保护磁盘空间

    lnmp下如何关闭Mysql日志保护磁盘空间

    这篇文章主要介绍了lnmp下如何关闭Mysql日志保护磁盘空间的相关资料,需要的朋友可以参考下
    2015-09-09
  • Mysql的MVCC机制解读

    Mysql的MVCC机制解读

    MySQL InnoDB通过隐藏列(DB_TRX_ID、DB_ROLL_PTR)记录事务ID与回滚指针,结合ReadView判断数据可见性,利用回滚段存储旧版本数据,实现MVCC机制,提升并发性能并保障数据一致性与隔离性
    2025-08-08
  • Window环境下MySQL UDF提权

    Window环境下MySQL UDF提权

    本文章仅记录某次内网渗透过程中遇到的MySQL 采用UDF提权等方式进行获取权限,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>
    2023-03-03
  • MySQL中常用的字段截取和字符串截取方法

    MySQL中常用的字段截取和字符串截取方法

    在 MySQL 数据库中,有时我们需要截取字段或字符串的一部分进行查询、展示或处理,本文将介绍 MySQL 中常用的字段截取和字符串截取方法,帮助你灵活处理数据,需要的朋友可以参考下
    2024-01-01
  • CentOS安装配置MySQL8.0的步骤详解

    CentOS安装配置MySQL8.0的步骤详解

    这篇文章主要介绍了CentOS安装配置MySQL8.0的步骤,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-08-08
  • SQL删除重复数据的实例教程

    SQL删除重复数据的实例教程

    在使用SQL提数的时候,常会遇到表内有重复值的时候,下面这篇文章主要给大家介绍了关于SQL删除重复数据的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07

最新评论