2014-02-07 262 views
0

我的網站位於亞馬遜AWS的遠程主機, 我試圖連接到GoDaDDy主機中的另一個數據庫。 2個網站共享相同的db。連接到外部遠程數據庫

我出現錯誤:發生數據庫錯誤。無法使用提供的設置連接到數據庫服務器。

在亞馬遜我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; 

任何幫助是值得歡迎的, 邁克

回答

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; 

到數據庫的配置。


更新:

既然你已經打開的端口

root# nc -z -w1 192.186.236.98 3306 
Connection to 192.186.236.98 port 3306 [tcp/mysql] succeeded! 

仍然無法連接意味着你的用戶名/密碼或數據庫名設置錯誤。如果可以,請檢查服務器上的mysql日誌。

+0

我有端口3306在配置中設置,它不解決。 –

+0

已更新的答案。 – stormdrain

0

確保您要連接的服務器具有在防火牆中打開的端口3306(或運行MySQL的任何端口,默認情況下爲3306),並且允許您正在使用的用戶創建遠程連接。

爲了更安全,您可以要求GoDaddy只允許從您的亞馬遜IP地址/範圍到您的數據庫的外部連接。

+0

仍然有相同的錯誤 –

0

如果您嘗試通過SSL進行連接,則某個mysql或mysqli數據庫連接可能會因某些較早版本的PHP和/或CI而失敗。 我至少有PHP> = 5.3.3和CI> = 2.1.3版本的新版mysqli和PDO接口沒有任何SSL問題,但我不知道是否可以使舊的mysql接口可靠地工作SSL。

+0

我試過以上所有仍然有相同的錯誤。 –