Mac OS Snow Leopard:為什麼我的 phpinfo() 頁面中的 mysql.default_socket 值沒有改變?

Mac OS Snow Leopard:為什麼我的 phpinfo() 頁面中的 mysql.default_socket 值沒有改變?

每當我嘗試在 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 設定畫面

相關內容