Mon fichier / etc / hosts ressemble à ceci:
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
J'ai trouvé lors de la construction du serveur que, même si je pouvais envoyer une requête ping à localhost avec succès, dans certains fichiers de configuration pour des services comme Postfix et Apache et Dovecot, je devais spécifier 127.0.0.1
plutôt que localhost
pour les faire fonctionner.
J'ai également dû modifier les fichiers de configuration de certains sites Web pilotés par une base de données, qui localhost
se connectaient à MySQL.
J'ai essayé diverses modifications du hosts
fichier, mais rien de ce que j'ai essayé jusqu'à présent n'a aidé.
Le serveur exécute Ubuntu 12.04.02 LTS. Selinux n'est pas installé et la situation ci-dessus persiste même après avoir défini les stratégies par défaut d'IPtables pour les accepter et les vider.
127.0.0.1
(sauf un qui l'est%
). Je pense que cela en révèle probablement assez pour que je puisse y remédier, donc j'accepterai probablement votre réponse dans peu de temps.localhost
commesocket
au lieu deTCP
).La plupart des clients MySQL sont étranges dans le fait que si vous spécifiez l'hôte en tant que
localhost
, ils l'aliasent vers une connexion socket au lieu d'une connexion TCP. Vos options sont de rester avec127.0.0.1
ou, si le client le prend en charge (comme le binaire mysql CLI le fait avec l'--protocol
indicateur), de le forcer à utiliser TCP au lieu d'un socket Unix.la source
127.0.0.1
au lieu delocalhost
dans le champ du nom d'hôte lors de l'installation, les chemins d'installation se gâchent, ce qui me donne d'autres erreurs, mais la spécification de localhost ne parvient pas à connecter la base de données! Qu'est-ce qui a causé cette situation? Pourquoi je l'ai?socket = /var/run/mysqld/mysqld.sock
enmy.cnf
et le fichier existe, détenu par mysql avec les autorisations 777. Merci.127.0.0.1
cela fonctionne (mais le script utilise l'entrée plus tard et échoue car il attend un nom résoluble commelocalhost
), mais si j'utiliselocalhost
, la connexion, pour créer la base de données, échoue.Une chose à noter si les subventions sont correctes est que si vous utilisez MariaDB, il y a eu un bogue qui a causé ce comportement exact dans les versions 10.0.1 et 5.5.30 https://mariadb.atlassian.net/browse/MDEV-4356
la source
Vous pouvez vérifier l'autorisation comme ceci:
Si cela écoute sur 0 0.0.0.0:* cela signifie que tout le monde peut accéder à ce mysql.
vous pouvez modifier la liaison pour cela dans le fichier my.conf. Dans Linux, le chemin par défaut pour cela est:
Ajoutez ces lignes dans le fichier my.conf pour autoriser l'IP que vous souhaitez.
la source
PHP essaie toujours d'utiliser l'emplacement de socket par défaut. Ce problème peut apparaître si vous avez déplacé le dossier MariaDB / MySQL de / var / lib / mysql vers un autre emplacement. Afin de résoudre le problème, vous devez définir l'emplacement du nouveau socket dans le fichier /etc/php.ini .
la source
J'ai résolu ce problème en créant un lien symbolique,
sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock
. Mais je dois d'abord créer un dossier/var/run/mysqld/
car le dossier n'existait pas initialement.la source
Vous avez besoin d'un mysql.sock dans / tmp
ln -s /var/lib/mysql/mysql.sock mysql.sock
devrait bien fonctionner après cela.
la source