php – 连接到同一pod中的MySQL容器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 连接到同一pod中的MySQL容器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1197字,纯文字阅读大概需要2分钟。
内容图文
美好的一天,
我正在使用Kubernetes在google容器引擎上运行容器.
想法是在一个pod中运行两个容器.一个容器使用docker mysql映像,另一个容器运行php,laravel,nginx和composer.
在本地,这是有效的.这个想法是php可以连接到localhost上的数据库,如果两个容器都在同一个pod中,这应该可以工作.但是,当pod启动时,我们会在日志中看到以下消息:
SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
唯一的区别是,在本地测试时,我将localhost更改为内部docker ip.
谢谢,美好的一天
解决方法:
在Unix上,MySQL程序特别对待主机名localhost,其方式可能与您期望的与其他基于网络的程序相比有所不同.对于与localhost的连接,MySQL程序尝试使用Unix套接字文件连接到本地服务器.即使给出–port或-P选项指定端口号,也会发生这种情况.要确保客户端与本地服务器建立TCP / IP连接,请使用–host或-h指定主机名值127.0.0.1,或本地服务器的IP地址或名称.您还可以使用–protocol = TCP选项显式指定连接协议,即使对于localhost也是如此.例如:
shell> mysql --host=127.0.0.1
shell> mysql --protocol=TCP
–protocol选项使您可以建立特定类型的连接,即使其他选项通常默认为某些其他协议.
另一种解决方案是使用Kubernetes Volume抽象来共享容器之间的路径.在两个容器的映像上编辑/etc/mysql/my.cnf并更改MySQL服务器和客户端的套接字位置以指向共享目录或磁盘.
内容总结
以上是互联网集市为您收集整理的php – 连接到同一pod中的MySQL容器全部内容,希望文章能够帮你解决php – 连接到同一pod中的MySQL容器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。