无法使用MAMP或社区服务器连接到mysql服务器

时间:2011-06-05 14:50:12

标签: mysql database mamp community-server

我使用MySQL Workbench创建了一个数据库,现在我需要访问它。所以我写了一个php脚本来访问它:

<? 
    $db = mysql_connect("127.0.0.1:3306","root", "");

    if (!$db){
        echo "Could not connect to database";
        exit();
    }

    $db_name = "pfc_db";
    if (!mysql_select_db($db_name, $db)){
        die ("Could not select database");
    }

    $sql=mysql_query("select * from CAPAS");
    while($row=mysql_fetch_assoc($sql)){
        $output[]=$row;
        if (isset($output)){
            echo "yes";
            echo $output[0];
        }
        else{echo "no";}
    }
    mysql_close();

?>

我对MAMP和MySQL社区服务器有疑问,我需要推进正确的道路。 我在我的mac上安装了MAMP,并将端口切换到默认的mysql 3306.我已将PHP测试脚本放在我在htdocs下创建的文件夹“Api”中。所以要试一试,我在我的浏览器http://127.0.0.1/api/test.php上键入,结果是“无法连接到数据库”。我做得对吗?

那么社区服务器呢?它比MAMP好吗?它应该运行MAMP吗?我可以使用社区服务器吗?如果是这样,我应该在哪里放置PHP脚本?哪个文件夹?因为当我尝试使用社区服务器进行相同的测试时,浏览器开始将php脚本下载到我的下载文件夹,而不是显示错误消息。为什么会这样?

正如你所看到的那样,我对这些服务器的东西有点麻烦,我需要一些帮助才能搞清楚。

5 个答案:

答案 0 :(得分:5)

您无需安装MySQL社区服务器。 MAMP已经附带MySQL。

您需要使用mysql_error()函数在代码中输出更具体的错误。

if (!$db){
    echo "Could not connect to database" . mysql_error();
    exit();
}

$db_name = "pfc_db";
if (!mysql_select_db($db_name, $db)){
    die ("Could not select database" . mysql_error());
}

mysql_error将从MySQL返回错误消息。

答案 1 :(得分:0)

按照我给用户775263的asnwer,我得到了这个用户表:

+

--------------------+------+----------+
| Host               | User | Password |
+--------------------+------+----------+
| localhost          | root |          |
| SquirrellJoe.local | root |          |
| 127.0.0.1          | root |          |
| ::1                | root |          |
| localhost          |      |          |
| SquirrellJoe.local |      |          |
+--------------------+------+----------+

如您所见,任何用户都设置了密码。但后来我发现在bin / phpmyadmin下有一个config.inc.php脚本,里面有这些句子:

$cfg['Servers'][$i]['auth_type']     = 'config';    // Authentication method (config, http or cookie based)?
$cfg['Servers'][$i]['user']          = 'root';      // MySQL user
$cfg['Servers'][$i]['password']      = 'root';          // MySQL password (only needed

我再次尝试与$db = mysql_connect("127.0.0.1:3306","root", "root");建立联系并且联系成功。为什么mysql命令行中的users表没有反映出来?这是正常的吗?我应该改变吗?

然后我遇到了另一个问题。它无法选择我在MySQL Workbench上创建的数据库'pfc_db'。我收到错误消息未知数据库'pfc_db'。但是,当我输入mysql> show databases;时,提到的数据库确实出现在表格中:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| pfc_db             |
| test               |
+--------------------+

那么这可能是什么问题?

答案 2 :(得分:0)

好吧,如果有人遇到同样的问题,我会回答自己。

密码错误的发生是因为我在同一台计算机上安装了两个mysql,因此我检查了其中一个密码,浏览器正在查看另一个。

因此,如果您在密码访问方面遇到问题,请检查您是否安装了两个mysql,并检查文件config.inc.php

我还通过套接字连接更改了TCP / IP,如果您将localhost用作服务器,则可以提高速度。

答案 3 :(得分:0)

这对我有用

sudo mkdir / var / mysql sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock

答案 4 :(得分:0)

我遇到了这个问题并使用默认的TCP / IP端口而不是套接字端口修复了它。

所以在我的情况下,而不是3306,我使用 8889

$db = mysql_connect("127.0.0.1:8889","root", "");