%20%E9%A0%81%E9%9D%A2%E4%B8%AD%E7%9A%84%20mysql.default_socket%20%E5%80%BC%E6%B2%92%E6%9C%89%E6%94%B9%E8%AE%8A%EF%BC%9F.png)
每當我嘗試在 Mac OS Snow Leopard 10.6.4 上本地連接到 mySQL 時,都會收到錯誤。我正在運行 mySQL 5.1.46。我可以使用控制台登入。我正在運行 PHP 5.3.2 並且我的phpinfo()
頁面工作正常。所以我已經運行了 PHP,我可以使用控制台和 Sequel Pro 登入 mySQL 伺服器。
所以我懷疑是socket的問題。在我的 /etc 目錄中,我沒有 php.ini,但有 php.ini.default。所以我進入那裡,在我看到“default_socket”的每個地方我都會將其更改為:
/var/mysql/mysql.sock
到:
/tmp/mysql.sock
我在以下位置看到它:
pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
當我連接到 phpMyAdmin 時,出現以下錯誤: 無法在沒有錯誤的情況下啟動會話,請檢查 PHP 和/或網頁伺服器記錄檔中給出的錯誤並正確設定 PHP 安裝。
當我查看文件時phpinfo()
,我在 mySQL 下看到以下內容:
mysql.default_socket /var/mysql/mysql.sock /var/mysql/mysql.sock
我重新啟動 Apache...哎呀,我重新啟動了整台電腦。依然沒有。我知道 mySQL 正在工作,我知道 PHP 正在工作,但我無法讓他們說話。
有什麼幫助嗎?
答案1
PHP 應該尋找要載入的 php.ini 檔案(而不是 php.ini.default),因此請嘗試將 php.ini.default 重新命名為 php.ini。看在雪豹上安裝 Apache/PHP/MySQL。
答案2
如果你不想搞亂 mysql 或 php 的配置設置,那麼設定這個 hack:
mkdir /var/mysql
ln -s /tmp/mysql.sock /var/mysql/mysql.sock
這會在 PHP 正在尋找的連接到真實 mysql.sock 的位置建立一個別名。
答案3
將 mysql.sock 帶入 PHP
MySQL 和 Leopard 出現的一個問題是 mysql.sock 檔案的位置。以前,此檔案的預設位置位於 /tmp 目錄中。該位置現已移至 /var/mysql 目錄。 PHP 將在那裡查找它。不幸的是,MySQL 的預設位置仍會將其放置在舊位置。我們可以透過在 /etc 目錄中建立 my.cnf 設定檔來解決此問題。將包含以下內容的檔案儲存到 /etc/my.cnf:
[客戶端]套接字= /var/mysql/mysql.sock
[mysqld] 套接字 = /var/mysql/mysql.sock
在終端機視窗中,鍵入以下命令來建立 sock 檔案的目錄:
sudo mkdir /var/mysql sudo chown _mysql /var/mysql
來源:http://www.procata.com/blog/archives/2007/10/28/working-with-php-5-in-mac-os-x-105/
答案4
我執行了以下操作來解決該問題 (Mac OS x) -
1.) 先進入你的 apache webroot (可從 /etc/apache2/httpd.conf -> DocumentRoot 取得路徑)。對我來說是 /Library/WebServer/Documents/
1.1)在該位置建立一個showphpconfig.php
2.) 在瀏覽器中存取此文件:http://127.0.0.1/showphpconfig.php
這將顯示您的 apache 伺服器正在使用什麼設定文件
對我來說它正在使用/private/etc/php.ini
我還看到 php 正在使用 mysql sock 文件/var/mysql/mysql.sock
3.) 我複製了 php.ini 檔案。打開它並找到所有有 mysql.sock 的行。
複製這些行並建立一個新條目,如下所示 -
;pdo_mysql.default_socket=/var/mysql/mysql.sock
pdo_mysql.default_socket=/tmp/mysql.sock
內啡肽這 ”;”第一行前面,也就是註解掉第一行
這樣的行應該有4行左右
現在您已經告訴 php,mysql 套接字檔案實際上存在於 /tmp 資料夾中
4.) 重新啟動您的 apache 伺服器 -apachectl restart
您應該會看到 WordPress 設定畫面