Docker phpMyAdmin 连接访问宿主机本地mysql
20190422 之前学习 docker LNMP ,一直都是建立一个 mysql 容器 ,使用 nginx + php 容器来 link 这个 mysql 容器,再建立一个phpmyadmin 容器来管理容器中的mysql
问题:
实际环境中,经常是已经存在本地 mysql ,没有必要再去改动 mysql 环境,甚至转移 mysql 数据
有的系统安装的 mysql 缺省只有一个 locall 的root 账户,有的已经存在一个 % 的 root 账户
让 nginx + php 容器配置的网站,访问宿主机本地数据库的时候,身份已经不是 localhost 或 127.0.0.1 的 root了!
刚刚特意检查了一下 mysql 容器的mysql,已经缺省就存在 % 的 root,所以,他们只需要被 link ,就可以被 php 访问
进入 mysql 容器[root@centos7-71 application]# docker exec -it mysql57 bash本地mysqlroot@c49318865d09:/# mysql -u root -p查询 mysql usermysql> use mysqlmysql> select User,host from user;+---------------+-----------+| User | host |+---------------+-----------+| root | % || mysql.session | localhost || mysql.sys | localhost || root | localhost |+---------------+-----------+4 rows in set (0.00 sec)
同理,宿主机本地的 mysql 需要配置访问控制,允许非 localhost 或 127.0.0.1 的 用户(缺省为root)
2、参考
https://blog.csdn.net/weixin_36296538/article/details/84189706
3、宿主机 mysql 设置
- 修改 mysql conf
** 为了测试方便,先简单改成了 0.0.0.0 ,通过测试之后,再设置防火墙进行 ip 限制
** 也可以改成 php 容器ip (phpmyadmin容器)
cd /etc/mysql/mysql.conf.d/
vim mysql conf
# by wzh 20190422
bind-address = 0.0.0.0
# bind-address = 127.0.0.1
检查并增加 % 的 root 账户 (或者其他账户)
** 我这个 ubuntu 18.04 下的 mysql 中,就只有127.0.0.1 的 root 账户
** 没有按照参考中直接 update 这个 root,而是增加一条 % 的 root账户 记录
** 简单复制 127.0.0.1 的 root 记录 ,然后修改 Host = %CREATE TEMPORARY TABLE tmp SELECT * FROM user WHERE User = 'root';UPDATE tmp SET Host='%' WHERE User = 'root';INSERT INTO user SELECT * FROM tmp WHERE User = 'root';
确认一下:
mysql> Select User,Host from user;+------------------+-----------+| User | Host |+------------------+-----------+| root | % || debian-sys-maint | localhost || mysql.session | localhost || mysql.sys | localhost || phpmyadmin | localhost || root | localhost |+------------------+-----------+6 rows in set (0.00 sec)
4、创建并启动 phpmyadmin 容器
先找个已经存在容器的宿主机,学习一下获取容器 ip 的指令
ip route show
ip route show | grep docker0
ip route show | grep docker0 | awk ‘{print $9}’安装 Docker phpmyadmin 容器
docker search phpmyadmin
docker pull phpmyadmin/phpmyadmin启动容器,映射 宿主机 9997 端口 对应到 phpmyadmin 容器的 80 端口
docker run -d
–name myadmin
-e PMA_HOST=$(ip route show | grep docker0 | awk ‘{print $9}’)
-e PMA_PORT=3306
-p 9997:80
phpmyadmin/phpmyadmin
5、测试验证
curl 127.0.0.1:9997
浏览器测试
http://192.168.1.192:9997/index.php
Docker phpMyAdmin 连接访问宿主机本地mysql相关推荐
- docker容器无法访问宿主机报出 No route to host
项目场景: 提示:docker容器无法访问宿主机报出 No route to host: 例如:防火墙环境下,docker容器无法访问宿主机的其他应用端口 原因分析: 在进行docker部署的时候我们 ...
- 【docker】使用云服务器运行docker时无法访问宿主机的映射端口
导语:这几天在学docker,在学到容器映射端口时,总是无法访问到宿主机的对应端口,这就很纳闷了,IP地址和端口号都是对应的,eth0的IP地址加上容器外端口.不过想了一下,唯一区别是我在云服务器上跑 ...
- docker 连接宿主机的 MySQL
docker 连接宿主机的 MySQL 本文地址:https://blog.lucien.ink/archives/505 在实际生产过程中,docker 内的服务有时需要连接宿主机的 MySQL,在 ...
- CentOS7使用docker 启动容器后 , 宿主机连接访问不到容器的端口
CentOS7使用docker 启动容器后 , 宿主机连接访问不到容器的端口 注意第一种方法是在网上找的 , 我并没有执行成功 , 但是他分析的很不错, 可以参考第二种方法 首先需要明确docker的 ...
- docker 容器访问宿主机的解决方式
需求 基于本地docker的自研及使用需要,希望docker容器的服务能连接到宿主机提供的服务. 背景 网络上查阅了大量的资料,基本的解决办法是通过手动查阅IP的方式进行, 但docker宿主机的ip ...
- mac for docker访问宿主机服务
pod访问mac主机网络 Docker For Mac的Docker Daemon是运行于虚拟机(xhyve)中的, 而不是像Linux上那样作为进程运行于宿主机,因此Docker For Mac没有 ...
- 容器访问宿主机数据库_docker从容器中怎么访问宿主机
展开全部 例如你的62616964757a686964616fe4b893e5b19e31333433626437docker环境的虚拟IP是192.168.99.100,那么宿主机同样会托管一个和1 ...
- docker中容器与宿主机之间的网络关系
接上一篇jupter远程访问 docker中容器与宿主机之间的网络关系 一.PC上的网络关系 1.网卡的物理地址 网卡的物理地址(MAC地址):是网卡的唯一标识.由生产厂商写入网卡中.MAC地址就如同 ...
- mysql断网_断网的情况上如何访问本机的mysql
断网的情况下怎么访问本机的mysql 我发现把网络断掉后mysql就不能访问了. 使用phpmyadmin(http://localhost/phpmyadmin/index.php?)访问,输入用户 ...
- 17.Docker 容器时间与宿主机同步
Docker容器时间与宿主机同步 BY 赫墨拉 · PUBLISHED 2018年7月10日 · UPDATED 2019年6月10日 问题描述: 在我们平时使用docker,运行我们的应用的时候,访 ...
最新文章
- 公钥和私钥怎么生成_科普 | Eth2 验证者如何生成和保护取款密钥
- 最受欢迎的应用服务器
- cad怎么快速算面积_用cad算面积的快捷键方法步骤详细,大朗CAD培训班
- centos7 如何安装部署k8s_如何在centos7上安装FreeIPA的客户端
- 量子物理 詹班 计算机,(电气系计算机系詹班)量子物理作业答案
- [转载] Python使用list.reverse()返回None
- 环境在c盘_笔记本电脑常见故障--清理C盘空间
- Python 进阶之路 (五) map, filter, reduce, zip 一网打尽
- uinty 为什么一旋转鼠标镜头就倒了_Unity3D使用鼠标旋转缩放平移视角
- python3 shell,python3执行shell命令
- 如何位图转换矢量图或者数字油画底稿
- Threejs实现天空盒,全景场景,地面草地
- 直接可以用的Python和OpenCV检测及分割图像的目标区域例子
- 英语·句子的五大结构
- 单片机 MSP430 串口 计算 波特率
- 手撕生产者-消费者模式 | P问题、NP问题
- OKR是上下同欲的载体
- java—Web(项目)—数据库(插入数据)
- css画直角三角形,关于CSS画三角形的那些事
- [WinError 206] 文件名或扩展名太长(组策略值修改 解除windows文件名 字符长度限制)