PHP 8.4 连接配置(TCP 或 Unix Socket)
2025-05-15
5
参考资料
PHP 8.4 连接配置(TCP 或 Unix Socket)
1. TCP 连接配置
适用场景:远程数据库、跨服务器通信
配置方式:
$host = '127.0.0.1'; // 或远程IP(如 192.168.1.100) $port = 3306; // 默认MySQL端口 $dsn = "mysql:host=$host;port=$port;dbname=test";
示例(PDO 连接 MySQL):
try { $pdo = new PDO( "mysql:host=127.0.0.1;port=3306;dbname=test", "username", "password" ); } catch (PDOException $e) { die("Connection failed: " . $e->getMessage()); }
2. Unix Socket 连接配置
适用场景:本地数据库(如 MySQL/MariaDB 默认使用 socket 通信)
配置方式:
$socket = '/var/run/mysqld/mysqld.sock'; // 常见路径(Ubuntu/Debian) $dsn = "mysql:unix_socket=$socket;dbname=test";
示例(PDO 连接 MySQL):
try { $pdo = new PDO( "mysql:unix_socket=/var/run/mysqld/mysqld.sock;dbname=test", "username", "password" ); } catch (PDOException $e) { die("Connection failed: " . $e->getMessage()); }
3. 如何选择 TCP 或 Unix Socket?
方式 | 适用场景 | 性能 | 安全性 |
---|---|---|---|
TCP | 远程数据库、Docker 容器间通信 | 略低(网络延迟) | 需配置防火墙/IP白名单 |
Unix Socket | 本地数据库(同服务器) | 更高(无网络开销) | 仅限本机访问 |
4. 检查 MySQL 的 Socket 路径
如果不确定 MySQL 的 socket 路径,可执行:
mysql --help | grep "socket"
或查询 MySQL 配置:
cat /etc/mysql/my.cnf | grep socket
5. PHP 8.4 注意事项
PDO 驱动必须启用(
php.ini
中extension=pdo_mysql
)错误处理:建议使用
try-catch
捕获PDOException
性能优化:Unix Socket 比 TCP 更快(减少网络层开销)
如需进一步优化,可结合连接池(如 Swoole、Workerman)或持久连接(PDO::ATTR_PERSISTENT
)。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。