php - 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
);
解决方案
推荐阅读
- javascript - 如何禁用带有highcharts的图表显示?
- java - OnError 观察 Observable on Retrofit
- swiftui - 从 SwiftUI 中的上下文菜单触发导航
- hive - 从 Hive 中的 Metastore 查询表抛出错误
- angularjs - 如何在同一页面上使用 ion-menu 和 ion-slides?
- angular - 覆盖排序表的角度材料默认样式
- python - 如何修复“溢出错误:编码字符串时不支持的 UTF-8 序列长度”
- arrays - Spark - 从嵌套数组中的结构中选择列时出错
- powershell - 批量调用powershell时如何在一行中回显变量和字符串
- python - 如何指定与多个相似表的关系