每当我尝试在 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 配置屏幕