Php Can';即使正在运行,也无法连接到MySQL
这快把我逼疯了!我在Mac OS X Lion上有MySQL首选项窗格,还可以从终端启动和停止它。mysql可以从终端工作,我可以连接到数据库,但当我从PHP源代码执行此操作时,它无法连接。它昨晚起作用了,但现在不行了,我不知道为什么。以下是一些细节: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
- 我告诉
在正确的目录中查找mysql.sockphp.ini
- 我还将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
环境变量。