Php

MySQL 無法通過“localhost”連接,只有 127.0.0.1

  • January 29, 2019

這對我來說有點神秘。我可以連接到 MySQL 的唯一方法是如果我通過“127.0.0.1”呼叫它……例如,我的 PHP 連接腳本不適用於 localhost

我正在執行 Mac OS X Lion、內置 apache2、MySQL、PHP、phpMyAdmin

mysql管理員:

count                             0
debug-check                       FALSE
debug-info                        TRUE
force                             FALSE
compress                          FALSE
character-sets-dir                (No default value)
default-character-set             auto
host                              (No default value)
no-beep                           FALSE
port                              0
relative                          FALSE
socket                            (No default value)
sleep                             0
ssl                               FALSE
ssl-ca                            (No default value)
ssl-capath                        (No default value)
ssl-cert                          (No default value)
ssl-cipher                        (No default value)
ssl-key                           (No default value)
ssl-verify-server-cert            FALSE
user                              (No default value)
verbose                           FALSE
vertical                          FALSE
connect-timeout                   43200
shutdown-timeout                  3600
plugin-dir                        (No default value)
default-auth                      (No default value)

如果您告訴它連接到“localhost”,MySQL 將嘗試連接到 unix 套接字。如果您告訴它連接到 127.0.0.1,您將強制它連接到網路套接字。因此,您可能已將 MySQL 配置為僅偵聽網路套接字而不是文件系統套接字。

你的 unix 套接字到底有什麼問題很難說。但我建議您閱讀MySQL 參考指南上的這一頁。這應該可以幫助你。

更新:基於更新的問題:參數“socket”應該是這樣的:“/var/lib/mysql/mysql.sock”。參考手冊中的此頁麵包含更多資訊。

這裡有我的 /etc/my.cnf 文件的開頭:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

你的文件應該是相似的。那麼你的問題應該得到解決。在測試之前不要忘記重新啟動 MySQL 伺服器。

引用自:https://serverfault.com/questions/295285