Mac 使用Docker部署Mysql镜像,并使用DBever客户端连接

使用docker拉取镜像

复制代码
docker pull mysql:8.0

docker 部署

bash 复制代码
docker run -d --name mysql8 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456789 -v ${HOME}/docker/mysql/data:/var/lib/mysql -v ${HOME}/docker/mysql/config:/etc/mysql/conf.d --restart unless-stopped mysql:8.0

参数详解

  1. -d

    • 作用:以"分离模式"(后台运行)启动容器。
    • 示例:容器启动后,终端不会阻塞。
  2. --name mysql8

    • 作用 :为容器指定名称 mysql8(便于后续管理)。
    • 注意:名称必须唯一,重复使用会报错。
  3. -p 3306:3306

    • 作用 :将宿主机的 3306 端口映射到容器的 3306 端口。
    • 格式主机端口:容器端口
    • 用途 :允许外部通过宿主机的 3306 端口访问 MySQL 服务。
  4. -e MYSQL_ROOT_PASSWORD=123456789

    • 作用 :设置 MySQL 的 root 用户密码为 123456789
    • 关键性:此环境变量是必需的,否则容器启动会失败。
  5. -v ${HOME}/docker/mysql/data:/var/lib/mysql

    • 作用 :将宿主机目录 ${HOME}/docker/mysql/data 挂载到容器的 /var/lib/mysql
    • 用途:持久化 MySQL 数据文件(避免容器删除后数据丢失)。
    • 路径说明
      • ${HOME}/docker/mysql/data:宿主机目录(需提前创建)。
      • /var/lib/mysql:容器内 MySQL 默认数据存储路径。
  6. -v ${HOME}/docker/mysql/config:/etc/mysql/conf.d

    • 作用 :挂载自定义配置文件目录到容器的 /etc/mysql/conf.d
    • 用途:覆盖 MySQL 默认配置(如字符集、缓冲区大小等)。
    • 示例 :在宿主机 ${HOME}/docker/mysql/config 下放置 my.cnf 文件。
  7. --restart unless-stopped

    • 作用 :设置容器自动重启策略。
      • unless-stopped:除非手动停止,否则总是重启(如宿主机重启后自动恢复容器)。
    • 其他选项
      • no(默认):不自动重启。
      • always:无条件重启(包括手动停止后)。
  8. mysql:8.0

    • 作用:指定使用的镜像为官方 MySQL 8.0 版本。
    • 注意 :若本地不存在该镜像,Docker 会先拉取(docker pull mysql:8.0)。

本地连接mysql镜像

使用brew安装本地mysql客户端

bash 复制代码
brew install mysql-client
echo 'export PATH="/opt/homebrew/opt/mysql-client/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

连接mysql

css 复制代码
mysql -h 127.0.0.1 -P 3306 -u root -p

DBever连接镜像

测试连接报错:Public Key Retrieval is not allowed

先点 finish,完成连接

右键该连接,点击 Edit Connection

将"allowPublicKeyRetrieval" 设置为 true,将"useSSL"设置为 false

相关推荐
brzhang6 小时前
读懂 MiniMax Agent 的设计逻辑,然后我复刻了一个MiniMax Agent
前端·后端·架构
草明7 小时前
Go 的 IO 多路复用
开发语言·后端·golang
蓝-萧7 小时前
Plugin ‘mysql_native_password‘ is not loaded`
java·后端
故事不长丨7 小时前
【Java SpringBoot+Vue 实现视频文件上传与存储】
java·javascript·spring boot·vscode·后端·vue·intellij-idea
9ilk7 小时前
【仿RabbitMQ的发布订阅式消息队列】--- 前置技术
分布式·后端·中间件·rabbitmq
鬼火儿8 小时前
Golang笔记——Interface类型
java·后端
三十_A8 小时前
【无标题】
前端·后端·node.js
蓝-萧8 小时前
Redis——Windows安装
java·后端
王元_SmallA9 小时前
【玩转全栈】----Django基本配置和介绍
java·后端
Moonbit9 小时前
招募进行时 | MoonBit AI : 程序语言 & 大模型
前端·后端·面试