2011-11-12 15 views
7

No se puede conectar a su servidor de base de datos utilizando la configuración proporcionada.Conexión a una base de datos remota a través de CodeIgniter

He estado teniendo dificultades para conectar mi aplicación a mi base de datos remota. Recibo el error que se muestra arriba cuando ejecuto mi aplicación. He visto las respuestas anteriores a esta pregunta en este sitio, pero no he tenido suerte en resolverlo. Por lo que aprendí, necesito reemplazar el nombre de host y hacer que mi base de datos mysql acepte conexiones externas, lo cual he hecho ambas. Probé los mismos valores en mi database.php a través de la línea de comandos mysql y funciona.

¿Qué más podría estar perdiendo?

Éstos son mis ajustes en 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

¿Cómo trató hasta ahora? dar el código de configuración de la base de datos. –

+0

He editado mi pregunta con la configuración de mi base de datos. – Mikey

+0

parece que es correcto. –

Respuesta

4

tratar este comando desde el shell para ver si se puede conectar: ​​

mysql -h HOSTNAME -uUSERNAME -p DATABASE 

también comprobar para ver si usted no tiene un puerto diferente para conectarse al conjunto de mysql, de forma predeterminada codeigniter se conectará a 3306, a menos que defina el conjunto de puertos real. este podría ser el problema.

buena suerte

+1

Puedo conectarme usando ese comando. El puerto no es diferente. – Mikey

+0

sí, debería ver el indicador mysql, pero parece que está en Windows, ya que está utilizando un exe, ese comando está destinado a máquinas basadas en Unix. ¿Estás utilizando la configuración de etapas para conectarte de la siguiente manera: '$ this-> db_staging = $ this-> CI-> load-> database ('staging', TRUE);'? –

+0

Disculpa por eliminar comentarios anteriores, me di cuenta de que no escribí tu comando correctamente. No, no estoy usando la configuración de etapas así. No, solo cargo mi base de datos en el constructor como tal: $ this-> CI-> load-> database(). – Mikey

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

intento para cambiar el código anterior a

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

Si ha aplicado la política de SELinux en su servidor asegúrese de habilitar httpd_can_network_connect bandera booleana

setsebool -P httpd_can_network_connect=1 
Cuestiones relacionadas