PHP 8.4 连接配置(TCP 或 Unix Socket)

43 阅读2分钟

PHP 8.4 连接配置(TCP 或 Unix Socket)

几个主流的网页自动翻译开源项目

15个主流的前端 UI 框架/库

FileZillaServer是一款开源FTP服务器软件-宝塔

如何配置忽略源站不缓存标头

CDN客户端缓存策略配置指南

优化robots.txt提升搜索抓取效率

如何在HTTP响应中设置Cookie?

浏览器中获取 Cookie

优化robots.txt提升搜索抓取效率

PHP 8.4 连接配置(TCP 或 Unix Socket)

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)。