如何连接docker中的MySQL容器
目录
- 连接docker中MySQL容器
- docker中MySQL容器启动
- 一 下拉镜像
- 二 运行镜像
连接docker中MySQL容器
我以gin web项目为例,演示在容器中运行时mysql的相关配置。
1. 登入MySQL修改访问权限并刷新权限。
update user set host = '%' where user = 'root';

grant all on *.* to admin@'%' identified by 'root' with grant option;
允许所有用户拿着密码“root”去访问。
flush privileges; 刷新权限
2. 修改密码认证配置。
由于docker上MySQL的版本是8.0.19

而我本地MySQL是5.7两者的认证方式不一样(前者是caching_sha2_password,后者是my_native_password)因此我们对它进行修改。

我修改了所有用户的密码认证配置后才起效。

3. 至此,我已经可以用本地的数据库图形化界面连接docker中的MySQL容器。

但是在关联运行gin_blog_docker_scrach时数据库一直拒绝连接:

最后,我查阅资料得知:
在go应用中使用localhost或则使用127.0.0.1地址都是无法找msyql服务的,因为该地址被解析成了当前go应用docker容器中的ip地址;
修改应用配置中的ip地址:

再次运行容器:

无错发生。
大功告成!
docker中MySQL容器启动
一 下拉镜像
docker pull mysql:5.7
docker images查看镜像
二 运行镜像
1. 运行镜像,如果不挂载路径运行执行以下就可以
docker run -id --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
- -i:表示创建并运行容器
- -d:表示后台运行
- -p:映射端口,相对于访问宿主机ip:3306 就是访问的mysql容器
- -e:配置mysql,这里设置了一下root密码,当然也可以也又其它设置选项,在这没用到
- mysql:5.7:镜像名和版本,如果这个镜像不存在会自动下载镜像
2. 挂载路径
挂载路径的好处一是方便我们修改和查看,比如修改mysql配置文件my.cnf,不挂载的话需要进入容器然后在修改,my.cnf挂载出来后可以直接在宿主机查看,日志文件也是同样的,第二个好处是防止暑假丢失,如果容器不小心停止删除了数据库中的所有数据就丢失了。
docker run -id --name mysql -v /docker/mysql/log/:/var/log -v /docker/mysql/data/:/var/lib/mysql -v /docker/mysql/my.cnf:/etc/my.cnf -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
用了三个-v,分别挂载出来日志 mysql数据和my.cnf,-v 宿主机文件 容器中文件
直接运行上面命令可能启动失败,需要在宿主机中先创建一个my.cnf,即在宿主机docker/mysql中床新建一个文件my.cnf文件内容为:
[mysqld] # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M skip-host-cache skip-name-resolve datadir=/var/lib/mysql socket=/var/run/mysqld/mysqld.sock secure-file-priv=/var/lib/mysql-files user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 #log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [client] socket=/var/run/mysqld/mysqld.sock !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/
docker ps查看运行的容器
使用可视化工具连接mysql测试
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
上一篇:Dockerfile建立一个自定义的镜像执行自定义进程详细过程
栏 目:其它服务器
下一篇:Docker Desktop无法正常启动解决(failed to start...)
本文标题:如何连接docker中的MySQL容器
本文地址:https://zz.feitang.co/server/30818.html
您可能感兴趣的文章
- 12-20Kubernetes中使用临时容器进行故障排查的方法
- 12-20Nginx设置HTTPS的方法步骤
- 12-20二进制方式安装 Kubernetes1.18.3版本实现脚本
- 12-20Nginx工作模式及代理配置的使用细节
- 12-20ZooKeeper分布式协调服务设计核心概念及安装配置
- 12-20Kubernetes部署可视化地图的十个步骤
- 12-20关于docker清理Overlay2占用磁盘空间的问题(亲测有效)
- 12-20Docker compose配置文件写法及命令使用示例
- 12-20openwrt安装docker并启动的操作方法
- 12-20云原生Kubernetes初始化容器Init使用教程


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-07新版Eclipse集成Tomcat时找不到server选项的解决方法
- 12-06IIS7 应用程序池自动回收关闭的解决方案
- 12-05Windows Server 2019安装VMware
- 12-05Windows服务器默认IE浏览器无法下载文件的解决方法
- 12-05Docker安装Jenkins全过程
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法





