tch*_*ore 8 php mysql macos mysql-error-2002
大约一周前我在我的Mac OS 10.6上安装了MySQL,经过一些游戏,让它工作得很好.它与python MySQLdb集成,我也有Sequel Pro连接到数据库.但是,php不会访问服务器.甚至在我将一个php.ini文件添加到/ etc /并将其指向Sequel Pro使用的相同袜子之后:/tmp/mysql.sock.
但现在我根本无法访问本地服务器.据我所知,我的计算机上没有mysql.sock文件,不在/ tmp /或其他任何地方.
我可以从终端启动mysql服务器,但它会在一分钟后自动退出:
110425 17:36:18 mysqld_safe Logging to '/usr/local/mysql/data/dn0a208bf7.sunet.err'.
110425 17:36:18 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
110425 17:37:58 mysqld_safe mysqld from pid file /usr/local/mysql/data/dn0a208bf7.sunet.pid ended
Run Code Online (Sandbox Code Playgroud)
如果我尝试从命令行调用"mysql"(今天早些时候工作得很好):
ERROR 2002 (HY000): Can\'t connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Run Code Online (Sandbox Code Playgroud)
PHP错误当然是类似的:
PHP Warning: mysql_real_escape_string(): [2002] No such file or directory (trying to connect via unix:///tmp/mysql.sock)
Run Code Online (Sandbox Code Playgroud)
另外,我的mysql安装目录中没有"my.cnf"文件:/ usr/local/mysql.有一些my.cnf文件用于XAMPP附带的mysql安装.那些也有默认套接字列为'/tmp/mysql.sock',但我不得不手动更改它们.
有什么想法发生了什么?为什么修改php.ini文件也会为Sequel Pro带来变化?
小智 20
首先,我建议您使用自制软件在Mac上安装任何第三方库或工具.请访问:http://mxcl.github.com/homebrew/
否则,对于您的问题,您可以在Mac上搜索mysql套接字的位置,然后将其符号链接到/ tmp.
在您的终端尝试类似:
locate mysql | grep sock
Run Code Online (Sandbox Code Playgroud)
你会得到类似的东西:
/the/path/to/mysql.sock
Run Code Online (Sandbox Code Playgroud)
然后做 :
ln -s /the/path/to/mysql.sock /tmp/mysql.sock
Run Code Online (Sandbox Code Playgroud)
这应该有效.
您还可以编辑php.ini文件以设置mysql套接字的正确路径.
希望这有帮助.
我得到了一些类似的错误,最终到了这里.我使用的是OSX 10.9.5.这解决了我的问题(希望它有助于某人).
1)sudo mkdir/var/mysql
2)sudo ln -s /private/tmp/mysql.sock /var/mysql/mysql.sock
更多信息:http://glidingphenomena.blogspot.com.br/2010/03/fixing-warning-mysqlconnect-cant.html
谢谢!
| 归档时间: |
|
| 查看次数: |
47520 次 |
| 最近记录: |