1、准备工作
在开始之前,你需要确保已经安装了 Docker,并且启动了 Docker 服务。如果你还没有安装 Docker,请先参考官方文档进行安装。
2、创建 MySQL 容器
docker run -d -p 3306:3306 --name mysql-container -e MYSQL_ROOT_PASSWORD=your_password mysql:latest
按自己需要,修改musql-container以及your_password
3、连接到 MySQL 容器
docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" mysql-container
在cmd中运行这个命令,会返回我们运行的容器的ip,记录下用于连接。
4、连接数据库,创建数据库
CREATE DATABASE my_database;
5、如果连接不上
参考大佬这篇:docker中的mysql连接不上 - 老白网络
在使用 Docker 部署 MySQL 时,有时会出现连接不上的情况。下面是一些可能的原因及解决方法。
1. 确认 MySQL 容器是否正常运行。
docker ps
如果 MySQL 容器没有运行,请启动该容器。
docker start [容器名/容器ID]
2. 检查 MySQL 容器的端口是否正确映射到宿主机。
docker port [容器名/容器ID]
确认这个命令输出的端口号与在应用程序中使用的端口号一致。
3. 确认 MySQL 容器的 root 密码是否正确。
如果没有设置 root 密码,可以通过以下步骤进行设置:
docker exec -it [容器名/容器ID] /bin/bash mysqladmin -u root password [新密码]
在命令行中使用以下命令验证密码是否设置成功。
mysql -u root -p[新密码]
4. 检查应用程序连接 MySQL 时使用的地址和端口号是否正确。
应用程序连接 MySQL 时应该使用容器的 IP 地址和容器中的 MySQL 端口号。可以参考以下示例:
mysql -h [容器ID] -P [容器中的 MySQL 端口号] -u [用户名] -p[密码]
如果这些方法都没有解决问题,可以尝试重启 Docker,或者重新构建 MySQL 镜像并重新部署。
6、遇到连接不上提示access denied的情况
这个时候可以修改etc/my.cnf这个文件,在【mysqlId】后面增加skip-grant-tables, 跳过权限检测
docker cp mysql-container:/etc/my.cnf F:\tools
//修改后
docker cp F:\tools\my.cnf mysql-container:/etc/my.cnf
7、本地使用navicat链接的时候
需要用127.0.0.1作为链接地址,而不是第二步返回的IP