连不上mysql,试了很多
Posted
技术标签:
【中文标题】连不上mysql,试了很多【英文标题】:Can't connect to mysql, have tried a lot of things 【发布时间】:2012-07-09 01:31:27 【问题描述】:我已经阅读了大量的主题和解决方案,我并没有刻意尝试制作另一个这些帖子。
现在不碍事了
如果我在本地 osx 文件夹中运行此程序(启用网络共享),我会收到无法连接错误:
<?php
$db = mysql_connect("localhost", "root", "password");
if (!$db)
die('Could not connect' . mysql_error());
echo 'Connected successfully';
然而,当我去终端并运行以下它工作正常:
mysql -u root -h 'localhost' -p
password<enter>
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1030
Server version: 5.5.25a MySQL Community Server (GPL)
我已更新 php.ini 以指向 /tmp/mysql.sock
以及
【问题讨论】:
你试过用 127.0.0.1 代替 localhost 吗? 【参考方案1】:尝试使用phpinfo();
显示您的php 配置,您可能会从中学到很多东西。
另外,检查 MySQL 使用的端口号,我见过很多例子,它不是 OSX 安装的标准。
【讨论】:
如何查看端口号? 好吧wtf!它说我的套接字不是 /tmp/mysql.sock 就像我在 php.ini 中设置的那样......而且我确实重新启动了 apache 在 phpinfo 上有两行:mysql.default_port 或 mysqli.default_port 取决于您的连接设置。【参考方案2】:如果您刚刚开始使用 PHP5,则不应使用 mysql_connect
,而应使用 mysqli_connect
(使用 mysql 扩展名是 discouraged)。
检查connect_error
以获取有关连接失败原因的更多信息。
(取自上述文档的示例)
<?php
$mysqli = @new mysqli('localhost', 'root', 'password', 'THE DB NAME');
// Works as of PHP 5.2.9 and 5.3.0.
if ($mysqli->connect_error)
die('Connect Error: ' . $mysqli->connect_error);
【讨论】:
它说'没有这样的文件或目录'。我基本上试图在本地安装 phpmyadmin,它一直给出错误 2002。当我以这种方式尝试时(以消除 phpyadmin 作为错误的变量..),我明白了。 “没有这样的文件或目录” 我感觉警告比这更复杂一点,但我猜你需要更改mysqli.default_socket
。对于我在 OSX 上的情况,我必须将其从 /var/mysql/mysql.sock
更改为 /tmp/mysql.sock
。一旦你在上面我的答案中使用测试脚本正确地完成它,你将对你的 mysql.default_socket
路径进行等效的更改。
你说得对。我运行了 phpinfo,它仍然显示旧路径...但我在 /etc/php.ini 中更改了它...在 OSX 中是否有其他地方? (即 php.ini 文件)
附言。我改变了它,我确实重新启动了 apache
php -i | grep Loaded
会告诉你加载的php.ini
的路径以上是关于连不上mysql,试了很多的主要内容,如果未能解决你的问题,请参考以下文章