2011-11-12 2 views
7

Impossible de se connecter à votre serveur de base de données à l'aide des paramètres fournis.Connexion à une base de données distante via CodeIgniter

J'ai eu des difficultés à connecter mon application à ma base de données distante. Je reçois l'erreur ci-dessus lorsque je lance mon application. J'ai regardé les réponses précédentes à cette question sur ce site, mais je n'ai eu aucune chance de le résoudre. D'après ce que j'ai appris, j'ai besoin de remplacer le nom d'hôte et de faire en sorte que ma base de données mysql accepte les connexions externes, ce que j'ai fait tous les deux. J'ai essayé les mêmes valeurs dans mon fichier database.php via la ligne de commande mysql et cela fonctionne.

Alors quoi d'autre pourrais-je manquer?

Voici mes paramètres dans 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

comment avez-vous essayé jusqu'à présent? donne le code de la config de base de données. –

+0

J'ai modifié ma question avec ma config de base de données. – Mikey

+0

semble que c'est correct. –

Répondre

4

essayer cette commande de votre shell pour voir si vous pouvez connecter:

mysql -h HOSTNAME -uUSERNAME -p DATABASE 

Vérifiez également si vous n'avez pas un port différent pour se connecter à l'ensemble mysql, par défaut codeigniter se connectera à 3306, sauf si vous définissez l'ensemble de ports réel. cela pourrait être le problème.

bonne chance

+1

Je peux me connecter en utilisant cette commande. Le port n'est pas différent. – Mikey

+0

Oui, vous devriez voir l'invite mysql, mais il semble que vous soyez sur Windows depuis que vous utilisez un exe, cette commande est destinée aux machines basées sur unix. utilisez-vous la configuration de transfert pour vous connecter comme ceci: '$ this-> db_staging = $ this-> CI-> load-> database ('staging', TRUE);'? –

+0

Désolé de supprimer les commentaires précédents, j'ai réalisé que je n'ai pas écrit votre commande correctement. Non, je n'utilise pas la config de mise en scène comme ça. Non, je charge uniquement ma base de données dans le constructeur en tant que tel: $ this-> CI-> load-> database(). – Mikey

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

changer code ci-dessus pour

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

Si vous avez appliqué la politique SELinux dans votre serveur assurez-vous que vous activez httpd_can_network_connect booléen drapeau

setsebool -P httpd_can_network_connect=1 
Questions connexes