MySQL socket文件是本地连接用的Unix域套接字,路径可通过SHOW VARIABLES LIKE 'socket'查询;需在my.cnf的[mysqld]和[client]段统一配置,重启服务生效;客户端可使用-S参数或连接字符串中指定unix_socket。

MySQL 的 socket 文件是本地客户端连接 MySQL 服务器时使用的 Unix 域套接字(Unix domain socket),它绕过 TCP/IP 协议栈,性能更高、更安全,仅适用于本机连接。配置的关键在于确保 mysqld 服务启动时正确生成 socket 文件,且客户端(如 mysql 命令行工具、PHP、Python 等)能准确定位该文件。
查看当前 MySQL 使用的 socket 路径
登录 MySQL 后执行以下 SQL 命令即可查到实际路径:
mysql> SHOW VARIABLES LIKE 'socket';输出类似:
+---------------+-----------------------------+| Variable_name | Value |
+---------------+-----------------------------+
| socket | /var/run/mysqld/mysqld.sock |
+---------------+-----------------------------+
这个路径就是当前生效的 socket 文件位置,后续配置需保持一致。
安装说明重要提醒:程序不支持二级目录安装,请使用一级目录或二级目录绑定!第一步,确定你的服务器支持PHP+mysql。第二步,确定你的服务器开启了gd库。第三步,将upload文件内的文件上传到网站的根目录第四步,访问你的域名+ /install/index.html进行安装,linux系统访问你的域名+ /Install/index.html第五步,按照安装程序步骤进行安装配置第六步,安装完毕后
在 my.cnf 中统一配置 socket 路径
编辑 MySQL 主配置文件(常见路径:/etc/my.cnf 或 /etc/mysql/my.cnf 或 /usr/etc/my.cnf),在 [mysqld] 和 [client] 两个段落下分别指定 socket:
-
[mysqld] 段控制服务端监听路径,例如:
socket = /var/run/mysqld/mysqld.sock -
[client] 段控制默认客户端连接路径,例如:
socket = /var/run/mysqld/mysqld.sock - 可选:为兼容性,在
[mysql]、[mysqldump]等子段也显式声明相同路径
修改后需重启 MySQL 服务生效:
sudo systemctl restart mysql(或 mysqld,依系统而定)
客户端连接时显式指定 socket 路径
若未在 [client] 段配置,或需临时切换 socket,可通过命令行参数指定:
- 使用
-S参数连接:
mysql -u root -p -S /var/run/mysqld/mysqld.sock - PHP 中使用 PDO 或 mysqli 时,在 DSN 或连接参数中设置:
mysqli://root:pass@localhost:3306/db?unix_socket=/var/run/mysqld/mysqld.sock - Python 的
pymysql或mysql-connector-python支持unix_socket参数
常见问题与注意事项
- socket 文件目录(如
/var/run/mysqld/)必须存在,且mysql用户有读写权限 - SELinux 或 AppArmor 可能阻止 mysqld 创建 socket,需检查日志并调整策略
- Docker 容器中运行 MySQL 时,宿主机和容器内路径不同,需通过卷映射确保客户端访问路径一致
- Mac 上 Homebrew 安装的 MySQL 默认 socket 通常在
/tmp/mysql.sock,Linux 发行版多为/var/run/mysqld/mysqld.sock









