2010-08-16 5 views
2

Sur mon serveur Web Unix, j'ai deux serveurs de base de données MySQL en cours d'exécution. Un sur le port 3306, et un autre sur 3307. Je voulais spécifier le numéro de port de la base de données à se connecter dans /config/database.php de codeigniter.Codeigniter DB paramètres - pourquoi 127.0.0.1 fonctionne, localhost ne fonctionne pas

J'ai essayé ....

$database['hostname'] = "localhost:3307"; 

Cela ne fonctionne pas. La webapp connecté à la base de données sur le port 3306.

Alors j'ai essayé ceci ....

$database['hostname'] = "127.0.0.1:3307"; 

Cela a fonctionné. La webapp se est connecté à la base de données sur le port 3307.

Je ne comprends pas pourquoi? Quelqu'un peut-il jeter un peu de lumière là-dessus? Je pense que ce n'est pas un problème spécifique de codeigniter malgré le titre.

Observe

Répondre

2

Je suppose que localhost est valide pour IPv6 aussi, mais 127.0.0.1 est indéniablement un IPv4 adresse, donc il pourrait donc jeter quelques clés dans votre machine.

Je l'ai déjà rencontré plusieurs fois. (FireFox est/était connu pour être lent sur localhost: 8000 mais rapide sur 127.0.0.1:8000 lors du développement avec Django)

2

Il existe un index de port dans la configuration. Essayez ceci:

$database['port'] = 3307; 

Plus d'infos ici (en bas de la page):

http://codeigniter.com/user_guide/database/configuration.html

+0

'Port - Le numéro de port de base de données. Actuellement seulement utilisé avec le pilote Postgres. »J'ai indiqué dans ma question que j'utilise MySQL. En outre, je sais comment définir le numéro de port, je veux savoir pourquoi le localhost ne fonctionne pas, tandis que 127.0.0.1 le fait quand j'utilise 'hostname: port'. – vikmalhotra

+0

Oh, eh bien ... désolé, je ne peux pas vous aider davantage. – treeface

Questions connexes