【问题标题】:Can't establish connect to MySQL over localhost with MAMP无法使用 MAMP 通过 localhost 建立与 MySQL 的连接
【发布时间】:2015-02-01 22:56:37
【问题描述】:

我一直在尝试设置 MAMP(普通版)并使用 PHP 连接到 MySQL 数据库,但我似乎无法正确连接。它在 localhost 上运行,用户“test”在 localhost 上,并具有 SELECT、INSERT、UPDATE 和 DELETE 的权限。 Apache 使用端口 80 和 MySQL 3306。我哪里出错了?哦,是的,我试过使用 127.0.0.1 但没有 avial。

<?php

$link = mysql_connect("localhost:3306", “test”, “development”) or die("Could not connect");
mysql_select_db(“login_test”) or die("Could not select database");

$arr = array();

$rs = mysql_query("SELECT * FROM users");
while($obj = mysql_fetch_object($rs)) {
    $arr[] = $obj;
}

echo json_encode($arr);

?>

编辑:我已经验证我可以从终端连接到 MySQL。 /Applications/MAMP/Library/bin/mysql --host=localhost -uroot -proot

【问题讨论】:

  • 您的代码上真的有这些引号
  • 引号替换为 " 引起问题。
  • 试试"localhost" 而不是"localhost:3306"
  • 先尝试从命令行连接。 /path/to/mysql -h localhost -u test -p。询问时输入密码。哦,是的,你得到的确切错误是什么?
  • @Jigar 不是一个错误,页面因“无法连接”而死。

标签: php mysql mamp


【解决方案1】:

将“引号”替换为“我成功运行了您的代码,但我将“更改为”

 <?php

$link = mysql_connect("localhost:3306", "root", "") or die("Could not connect");
mysql_select_db("login_test") or die("Could not select database");

$arr = array();

$rs = mysql_query("SELECT * FROM users");
while($obj = mysql_fetch_object($rs)) {
$arr[] = $obj;
}

echo var_dump($arr);
?>

【讨论】:

  • 似乎我的编辑程序(Adobe's Brackets)决定使用错误类型的引号。
【解决方案2】:

mysql_query 不再使用,更换你所有的mysql_

使用 mysqli_query($connection, "Query") 或 PDO 语句

【讨论】:

  • 你怎么知道,mysql 未启用而mysqli 扩展已启用?这不是答案的解决方案。
  • Jigar,你不需要知道,它不是你是否启用它,它不再支持。 php.net/manual/en/migration55.deprecated.php
  • 这可能是一个答案,因为他提到他的一切设置都正确,只是无法连接
  • 已弃用并不意味着它已被删除。在较新版本的 PHP 中会被移除,因此不建议在新编写的代码中使用它。
  • 好吧,它从 5.5 开始就已经被删除了,这很可能比那个人正在使用的版本更旧。可能是一个答案,不排除这种可能性。
猜你喜欢
  • 1970-01-01
  • 2013-04-15
  • 2017-05-11
  • 2015-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多