Php Can';即使正在运行,也无法连接到MySQL

Php Can';即使正在运行,也无法连接到MySQL,php,mysql,terminal,connection,Php,Mysql,Terminal,Connection,这快把我逼疯了!我在Mac OS X Lion上有MySQL首选项窗格,还可以从终端启动和停止它。mysql可以从终端工作,我可以连接到数据库,但当我从PHP源代码执行此操作时,它无法连接。它昨晚起作用了,但现在不行了,我不知道为什么。以下是一些细节: 我告诉php.ini在正确的目录中查找mysql.sock 我还将mysql的my.cnf中的socket变量设置为正确的路径 为了确保这一点,我在mysql套接字的默认目录(/tmp/mysql.sock)中创建了一个符号链接,以链接到/va

这快把我逼疯了!我在Mac OS X Lion上有MySQL首选项窗格,还可以从终端启动和停止它。mysql可以从终端工作,我可以连接到数据库,但当我从PHP源代码执行此操作时,它无法连接。它昨晚起作用了,但现在不行了,我不知道为什么。以下是一些细节:

  • 我告诉
    php.ini
    在正确的目录中查找mysql.sock

  • 我还将mysql的
    my.cnf
    中的
    socket
    变量设置为正确的路径

  • 为了确保这一点,我在mysql套接字的默认目录(
    /tmp/mysql.sock
    )中创建了一个符号链接,以链接到
    /var/tmp/mysql.sock
    中的套接字文件

  • 当我从首选项窗格中停止MySQL,并尝试从终端启动它时,它会说“成功!”但是我不能在终端中使用命令
    mysql


有人能从这混乱的局面中得到什么吗?

回答我自己的问题:

好的,我不知道为什么,但我在配置上有差异。尽管我在my.cnf文件中设置了
socket
变量,但当我启动mysql服务器时,它总是为socket寻找不同的位置

my.cnf

[mysqld]
socket=/var/tmp/mysql.sock

[client]
socket=/var/tmp/mysql.sock
我仍然收到错误:
error 2002(HY000):无法通过socket'/tmp/MySQL.sock'(2)
连接到本地MySQL服务器。注意它仍然是如何查找
/tmp/mysql.sock

找到这个后,我意识到我的mysql服务器从来没有在
/usr/local/mysql/my.cnf
中读取我的配置文件

这是我从
mysqladmin
命令中得到的:

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
解决方案:我在主文件夹中创建了一个符号链接

ln -s /usr/local/mysql/my.cnf ~/.my.cnf

是的!问题已解决:)

投票迁移到;但是运行终端的用户是否具有对
/var/tmp/mysql.sock
的写访问权限?您是否能够通过PHP连接到mysql服务器?@JamesElliott不,我无法通过PHP连接。套接字文件的访问部分显示
srwxrwx
,所以它应该是@eggyal,你会得到什么错误?那
my.cnf
的位置是什么?它在
/usr/local/mysql/
中,这是我安装它时的默认目录。我没有改变它。但我也在其他目录中搜索了不同的
my.cnf
,但没有结果。所以我假设这是mysql检查的唯一一个?这是我从运行
mysqladmin |更多
默认选项按给定顺序从以下文件中读取:/etc/my.cnf/etc/mysql/my.cnf/usr/local/mysql/etc/my.cnf~/.my.cnf
,因为我的home目录中没有
my.cnf
文件,我在其中设置的变量肯定是最后读取的。真奇怪,我们等着!我发现了一些东西。它从不读取我的配置文件?取决于
MYSQL\u HOME
环境变量。