php7.x + ubuntu + mysql DSN localhost vs 127.0.0.1和unix_socket

问题描述

我试图更好地理解PHP7中DSN解释的过程。我注意到,如果我在DSN中使用了“ host = localhost”,它会尝试查找unix套接字。在Ubuntu的默认设置中,套接字位于/var/run/mysqld/mysqld.sock中,这显然是非标准的,当您在'/ var / lib / mysql / mysql中寻找它时,会在mysql中收到File Not Found错误。 .sock'

我相应地修改了代码,但是在类似的ubuntu安装上通过apache2运行时,一位同事遇到了另一种行为。使用apache2进行访问时,使用host = localhost可以正常工作,但是使用cli运行完全相同的代码时,会产生“找不到文件”错误。

我知道每个都有单独的配置文件子目录,但是我不知道会导致此问题的任何内容。有谁知道ubuntu中的实际行为是什么,它将允许'localhost'在apache2配置中工作,而在ubuntu上的cli配置中工作,以便我可以更好地了解发生了什么?

(将同事的dsn切换为host = 127.0.0.1确实使它在两个版本上都可以使用,但是我只是想弄清楚为什么本地主机只能在apache2中使用)

SW

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...