首页 > 解决方案 > Mysql连接超时与utf8mb4升级

问题描述

我有一个托管在 AWS EC2 上的 Codeigniter Web 应用程序(PHP7 和 PDO 用于连接到 db)和 AWS RDS Mysql 上的数据库设置。为了获得 unicode 支持,我以 utf8mb4 字符集重新创建了数据库和所有表。现在我的 CI 应用程序给了我一个连接超时。我尝试从 localhost 连接到新数据库,它运行良好。

$servername = "*******.*******.us-east-2.rds.amazonaws.com";
$username = "*****";
$password = "*****";

try {
    $conn = new 
    PDO("mysql:host=$servername;dbname=*****;charset=utf8mb4;", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully"; 
}
catch(PDOException $e)
{
    echo "Connection failed: " . $e->getMessage();
}

这是我的 CI database.php

$db['default'] = array(
    'dsn'  => $_SERVER['DSN'],
    'hostname' => $_SERVER['DB_HOST'],
    'username' => $_SERVER['DB_USER'],
    'password' => $_SERVER['DB_PASSWORD'],
    'database' => $_SERVER['DB_NAME'],
    'dbdriver' => 'pdo',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8mb4',
    'dbcollat' => 'utf8mb4_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

标签: phpmysqlpdophp-7utf8mb4

解决方案


推荐阅读