【问题标题】:Cannot connect to mysql server with MAMP nor with Community Server无法使用 MAMP 或社区服务器连接到 mysql 服务器
【发布时间】:2011-09-08 18:35:26
【问题描述】:

我用 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 脚本?哪个文件夹?因为当我尝试对 Community Server 进行相同的测试时,浏览器并没有显示错误消息,而是开始将 php 脚本下载到我的下载文件夹中。为什么会这样?

如您所见,我对这些服务器的东西有点混乱,我需要一些帮助来解决这个问题。

【问题讨论】:

  • 查看this answer 了解一些检查 tcp 与 MySQL 连接的基本技巧。
  • 感谢您的提示。这是一个有趣的帖子,但问题似乎是另一种方式。请在下面检查我的 cmets 是否是最新的 :)

标签: mysql database mamp community-server


【解决方案1】:

我遇到了这个问题,并通过使用默认的 TCP/IP 端口而不是套接字端口来解决它。

所以在我的例子中,我使用 8889

而不是 3306
$db = mysql_connect("127.0.0.1:8889","root", "");

【讨论】:

    【解决方案2】:

    这对我有用

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

    【讨论】:

      【解决方案3】:

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

      密码错误是因为我在同一台电脑上安装了两个mysql,所以我在其中一个中检查密码,而浏览器正在查看另一个。

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

      我还通过套接字连接更改了 TCP/IP,如果您使用本地主机作为服务器,这会提高速度。

      【讨论】:

        【解决方案4】:

        按照我给 user775263 的答案,我得到了这个用户表:

        +

        --------------------+------+----------+
        | 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”。我收到错误消息 Unknown database 'pfc_db'。但是,当我输入 mysql&gt; show databases; 时,提到的 db 确实出现在表上:

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

        那么这里可能有什么问题?

        【讨论】:

          【解决方案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 返回错误消息。

          【讨论】:

          • 好点!我收到以下错误消息:Access denied for user 'root'@'localhost' (using password: NO) 所以我进入 mysql 命令行并输入 SELECT Host, User, Password FROM mysql.user; 我得到了这张表:(我将在另一条评论中跟进,因为我在粘贴表格时用完了字符)
          猜你喜欢
          • 2014-03-28
          • 1970-01-01
          • 2015-01-21
          • 2019-11-27
          • 1970-01-01
          • 2013-10-01
          • 1970-01-01
          • 2015-05-10
          • 2012-11-03
          相关资源
          最近更新 更多