2011-11-12 19 views
7

Impossibile connettersi al server del database utilizzando le impostazioni fornite.Connessione a un database remoto tramite CodeIgniter

Ho avuto difficoltà a collegare la mia applicazione al mio database remoto. Sto ricevendo l'errore mostrato sopra quando eseguo la mia applicazione. Ho visto le risposte precedenti a questa domanda su questo sito, ma non ho avuto fortuna nel risolverlo. Da quello che ho imparato, ho bisogno di sostituire il nome host e fare in modo che il mio database mysql accetti le connessioni esterne, cosa che ho fatto entrambe. Ho provato gli stessi valori nel mio database.php attraverso la riga di comando mysql e funziona.

Quindi cos'altro potrei mancare?

Qui ci sono le mie impostazioni in database.php:

$active_group = 'staging'; 
$active_record = TRUE; 

$db['default']['hostname'] = 'localhost'; 
$db['default']['username'] = 'root'; 
$db['default']['password'] = ''; 
$db['default']['database'] = 'myDatabase'; 
$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; 

$db['staging']['hostname'] = 'XX.XX.XXX.XXX'; 
$db['staging']['username'] = 'user'; 
$db['staging']['password'] = 'pwd'; 
$db['staging']['database'] = 'myDatabase'; 
$db['staging']['dbdriver'] = 'mysql'; 
$db['staging']['dbprefix'] = ''; 
$db['staging']['pconnect'] = TRUE; 
$db['staging']['db_debug'] = TRUE; 
$db['staging']['cache_on'] = FALSE; 
$db['staging']['cachedir'] = ''; 
$db['staging']['char_set'] = 'utf8'; 
$db['staging']['dbcollat'] = 'utf8_general_ci'; 
$db['staging']['swap_pre'] = ''; 
$db['staging']['autoinit'] = TRUE; 
$db['staging']['stricton'] = FALSE; 
+0

come hai provato finora? dare il codice di configurazione del database. –

+0

Ho modificato la mia domanda con la mia configurazione del database. – Mikey

+0

sembra corretto. –

risposta

4

provare questo comando dalla shell per vedere se è possibile connettersi:

mysql -h HOSTNAME -uUSERNAME -p DATABASE 

anche controllare per vedere se non si dispone di una porta diversa da collegare al set mysql, per impostazione predefinita, codeigniter si connetterà a 3306, a meno che non si definisca il set di porte effettivo. questo potrebbe essere il problema.

buona fortuna

+1

Posso connettermi usando quel comando. La porta non è diversa. – Mikey

+0

sì, dovresti vedere il prompt mysql, ma sembra che tu sia su Windows dato che stai usando un exe, quel comando è pensato per macchine basate su unix. stai usando la configurazione di staging per connetterti in questo modo: '$ this-> db_staging = $ this-> CI-> load-> database ('staging', TRUE);'? –

+0

Mi dispiace per la rimozione dei commenti precedenti, mi sono reso conto che non ho scritto correttamente il tuo comando. No, non sto usando la configurazione di staging in questo modo. No, carico solo il mio database nel costruttore in quanto tale: $ this-> CI-> load-> database(). – Mikey

1
$active_group = 'staging'; 
$active_record = TRUE; 

provare cambiare sopra il codice a

$active_group = 'default'; 
$active_record = TRUE; 
0

Se si è applicata la politica di SELinux sul server assicurarsi di abilitare httpd_can_network_connect flag booleano

setsebool -P httpd_can_network_connect=1 
Problemi correlati