我的网站位于亚马逊AWS的远程主机中, 我正在尝试连接到GoDaDDy主机中的另一个数据库。 2个网站共享相同的数据库。
我遇到错误:发生数据库错误。无法使用提供的设置连接到数据库服务器。
在亚马逊的我在config文件夹中的database.php中有这个:
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = '192.186.236.98';
$db['default']['username'] = 'username';
$db['default']['password'] = 'mydbpwd';
$db['default']['database'] = 'mydbname';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$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;
欢迎任何帮助, 麦克
答案 0 :(得分:1)
确保Godaddy服务器允许访问所需的端口。截至目前,端口3306未在此服务器上打开,因此数据库连接将失败。
Nmap scan report for ip-192-186-236-98.ip.secureserver.net (192.186.236.98)
Host is up (0.049s latency).
PORT STATE SERVICE
3306/tcp closed mysql
Nmap done: 1 IP address (1 host up) scanned in 0.22 seconds
同时添加
$db['default']['port'] = 3306;
到db配置。
更新
由于您已打开端口
root# nc -z -w1 192.186.236.98 3306
Connection to 192.186.236.98 port 3306 [tcp/mysql] succeeded!
仍然无法连接意味着您设置了错误的用户名/密码或数据库名称。如果可以,请检查服务器上的mysql日志。
答案 1 :(得分:0)
确保您要连接的服务器在防火墙中打开端口3306
(或运行MySQL的任何端口,默认情况下为3306),并且允许您使用的用户创建远程连接。
为了更安全,您可以要求GoDaddy仅允许从您的Amazon IP地址/范围到您的数据库的外部连接。
答案 2 :(得分:0)
如果您尝试通过SSL连接,则mysql或mysqli数据库连接可能会因某些旧版本的PHP和/或CI而失败。 对于版本至少为PHP> = 5.3.3和CI> = 2.1.3的新版mysqli和PDO接口,我没有任何SSL问题,但我不知道是否可以通过SSL可靠地使用较旧的mysql接口