Mac OS Snow Leopard:为什么我的 mysql.default_socket 值在 phpinfo() 页面中没有改变?

Mac OS Snow Leopard:为什么我的 mysql.default_socket 值在 phpinfo() 页面中没有改变?

每当我尝试在 Mac OS Snow Leopard 10.6.4 上本地连接到 mySQL 时,都会出现错误。我运行的是 mySQL 5.1.46。我可以使用控制台登录。我运行的是 PHP 5.3.2,我的phpinfo()页面运行正常。因此,我运行了 PHP,我可以使用控制台和 Sequel Pro 登录 mySQL 服务器。

所以我怀疑这是一个套接字问题。在我的 /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 和/或 Web 服务器日志文件中给出的错误,并正确配置 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。请参阅在 Snow Leopard 上安装 Apache/PHP/MySQL

答案2

如果你不想在 mysql 或 php 的配置设置上乱七八糟的话,可以进行以下设置:

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 文件的目录:

须藤mkdir / var / mysql须藤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 正在使用来自/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 配置屏幕

相关内容