从昨天开始我就遇到了一个无法解决的问题。
当我想连接主机的数据库时出现错误,错误是没有这样的文件或目录
,我查找了socket文件的路径,路径是/var/run/mysqld/mysqld.sock
所以我改变了文件路径。在本地,它的功能是我在网上但在生产中没有的解决方案
这里是 laravel .env
文件的conf
DB_Connection = mysql
DB_HOST = hXXmysqlXXX
DB_PORT = 3306
DB_DATABASE = XXX_test
DB_USERNAME = XXX_bdd
DB_PASSWORD = XXXX
'# DB_SOCKET = / tmp / mysql.sock (it's a comment)
DB_SOCKET = /var/run/mysqld/mysqld.sock
不幸的是,这并没有解决错误。
你能帮我解决这个问题吗?
谢谢
(我已经研究过这个问题,但没有找到解决方案。请原谅我的英语,这不是我的母语)
最佳答案
您是否正在寻找连接到本地数据库或远程数据库(位于其他计算机/服务器上的数据库)?
在 Unix 上,MySQL 程序特别对待主机名 localhost, 与其他基于网络的程序相比,其方式可能与您的期望不同。
对于到本地主机的连接,MySQL 程序尝试使用 Unix 套接字文件连接到本地服务器。即使使用 --port 或 -P 选项来指定端口号,也会发生这种情况。
要确保客户端与本地服务器建立 TCP/IP 连接,请使用 --host 或 -h 指定主机名值 127.0.0.1,或者本地服务器的 IP 地址或名称。您还可以使用 --protocol=TCP 选项显式指定连接协议(protocol),甚至对于本地主机也是如此。
协议(protocol)可以是{TCP|SOCKET|PIPE|MEMORY}
简而言之:您不必为远程连接指定 sock 文件。
关于php - laravel : SQLSTATE[HY000] [2002] No such file or directory, 中的错误套接字文件的路径不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48523802/