当我尝试使用EC2上的codeigniter将Amazon EC2实例与RDS实例连接时,我收到一条消息:无法使用提供的设置连接到数据库服务器。但是,当使用具有相同参数的经典专用服务器连接到RDS时,连接成功。
$db['default']['hostname'] = 'xxxxxxx';
$db['default']['username'] = 'xxxxx';
$db['default']['password'] = 'xxxxxxx';
$db['default']['database'] = 'xxxxxxx';
$db['default']['dbdriver'] = 'mysqli';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['port'] = 3306;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
$db['default']['ssl_set'] = TRUE;
$db['default']['ssl_key'] = NULL;
$db['default']['ssl_cert'] = NULL;
$db['default']['ssl_ca'] = realpath('./mycertificate.pem');
$db['default']['ssl_capath'] = NULL;
$db['default']['ssl_cipher'] = NULL;
答案 0 :(得分:0)
如果您能够从其他服务器访问您的RDS,我会说您的安全组可能会停止您的EC2和RDS之间的访问。它们是否位于VPC中的独立私有子网中?
如果是这样,您应该在安全组内部分配每个实例在端口3306上访问和通信的能力(您实际上可以将安全组分配为安全组选项卡中的源,这非常棒!)
如果没有,EC2和RDS之间的环境是什么样的?