目录连接Docker中Mysql容器docker中mysql容器启动一 下拉镜像二 运行镜像连接docker中Mysql容器 我以gin WEB项目为例,演示在容器中运行时mysql的相关配置。 1. 登入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 pull mysql:5.7
docker images查看镜像
1. 运行镜像,如果不挂载路径运行执行以下就可以
docker run -id --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 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查看运行的容器
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
--结束END--
本文标题: 如何连接docker中的MySQL容器
本文链接: https://www.lsjlt.com/news/173624.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-10
2024-05-10
2024-05-10
2024-05-10
2024-05-10
2024-05-10
2024-05-10
2024-05-10
2024-05-10
2024-05-10
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0