Connexion à une base de données à distance par le biais de CodeIgniter
Impossible de se connecter à votre serveur de base de données en utilisant les paramètres.
J'ai eu de la difficulté à connecter ma demande à ma base de données distante. Je reçois l'erreur indiqué ci-dessus, quand je lance mon application. J'ai regardé les précédentes réponses à cette question sur ce site, mais je n'ai obtenu aucune chance à résoudre. De ce que j'ai appris, j'ai besoin de remplacer le nom d'hôte et de faire ma base de données mysql accepter les connexions externes, dont j'ai fait. J'ai essayé les mêmes valeurs dans mon database.php par le biais de la ligne de commande mysql et ça fonctionne.
Alors quoi d'autre pourrais-je éventuellement être manquants?
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;
J'ai édité ma question avec ma base de données de config.
il semble qu'il est correct.
OriginalL'auteur Mikey | 2011-11-12
Vous devez vous connecter pour publier un commentaire.
essayer cette commande à partir de votre shell pour voir si vous pouvez vous connecter:
également vérifier pour voir si vous n'avez pas un autre port pour se connecter à mysql par défaut codeigniter va se connecter à 3306, à moins de spécifier le port série. cela pourrait être la question.
bonne chance
oui, vous devriez voir l'invite mysql, mais il semble que vous êtes sur windows, puisque vous êtes en utilisant un fichier exe, cette commande est destinée pour les machines unix. êtes-vous à l'aide de la mise en scène config pour vous connecter comme suit:
$this->db_staging= $this->CI->load->database('staging', TRUE);
?Désolé à propos de la suppression des commentaires précédents, j'ai réalisé que je n'avais pas écrit votre commande correctement. Non, je ne suis pas à l'aide de la mise en scène de config comme ça. Non, je ne charger ma base de données dans le constructeur en tant que telle: $this->CI->load->base de données().
ok, mais vous avez 2 définitions défini, et depuis c'est un tableau, il sera de retour la définition par défaut, donc vous devez spécifier votre définition de connexion. je suggère de définir la connexion que vous souhaitez utiliser, si vous n'avez pas de localhost db en cours d'exécution sur votre serveur de test, mais une connexion à distance alors il va échouer et le message d'erreur
De ce que j'ai trouvé, il charge dans le bon groupe, par exemple, mise en scène, parce que le tableau de valeurs sont utilisées lorsqu'il tente de se connecter: retour @mysql_connect($this->nom d'hôte, $this->username, $this->mot de passe, TRUE) sur la ligne 70 du système/base de données/drivers/mysql/mysql_driver. Cependant, c'est cette ligne qui est un échec qui m'ont conduit à cette erreur, comme indiqué dans ce question. En tout cas, merci beaucoup pour votre aide!
OriginalL'auteur Robert Van Sant
mysql par défaut n'accepte que les connexions localhost, assurez-vous que votre serveur est correctement configuré localement
http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html
assurez-vous que votre serveur n'est pas derrière un routeur qui est dans un sous-réseau privé, vous pourriez neet pour configurer le NAT statique pour le transfert de ports de votre serveur dans le web
OriginalL'auteur cristi _b
essayer de changer le code ci-dessus pour
OriginalL'auteur Mia Torres
Si vous avez appliqué la Politique SELinux dans votre serveur, assurez-vous d'activer httpd_can_network_connect indicateur booléen
OriginalL'auteur Gopal Gautam