首页 >数据库 >mysql教程 >为什么无法通过Unix Socket连接MySQL?

为什么无法通过Unix Socket连接MySQL?

Linda Hamilton
Linda Hamilton原创
2024-12-16 07:57:16825浏览

Why Can't I Connect to MySQL via Unix Socket?

无法通过 Unix Socket 连接到 MySQL:无法通过 Socket 'MySQL' 连接到 MySQL (2)

连接时使用 PHP 的 mysqli 类并指定“localhost”作为主机连接到 MySQL,您会遇到错误消息“无法通过套接字连接到本地 MySQL 服务器” ‘MySQL’(2)”。这表明用于本地连接的 Unix 套接字存在问题。

了解本地主机连接

默认情况下,MySQL 客户端库使用 Unix 域套接字连接到当主机指定为“localhost”时,本地 MySQL 服务器。但是,如果套接字无法访问或不存在,您将遇到此错误。

故障排除选项

要解决此问题,您有多种选择:

  1. 使用 IP 地址 (TCP/IP): 将主机更改为127.0.0.1或本地服务器的实际IP地址。这会强制连接使用 TCP/IP 套接字而不是 Unix 套接字。
  2. 修改 my.cnf(PHP 的套接字设置): 在 MySQL 配置文件 (my.cnf) 中,找到 MySQL 创建套接字的位置并将 PHP 的 php.ini 中的 mysqli.default_socket 设置为该位置
mysqli.default_socket = /var/run/mysqld/mysqld.sock
  1. 直接套接字配置:
$db = new MySQLi('localhost', 'kamil', '***', '', 0, 
                              '/var/run/mysqld/mysqld.sock')

通过直接指定套接字,您将覆盖默认值Unix 套接字配置。

就您而言,因为您只能通过127.0.0.1,建议使用选项1。如果您需要允许外部网站连接,您应该创建一个具有适当权限的新用户,并使用 TCP/IP(选项 1)进行远程连接。

以上是为什么无法通过Unix Socket连接MySQL?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn