使用 MAMP 服务器拒绝用户 'root'@'localhost' 的访问(使用密码:YES)

Posted

技术标签:

【中文标题】使用 MAMP 服务器拒绝用户 \'root\'@\'localhost\' 的访问(使用密码:YES)【英文标题】:Access denied for user 'root'@'localhost' (using password: YES) using MAMP server使用 MAMP 服务器拒绝用户 'root'@'localhost' 的访问(使用密码:YES) 【发布时间】:2018-03-14 11:23:59 【问题描述】:

我有一个 html 表单,我正在使用 php 将结果发送到 phpMyAdmin 上的 sql 数据库,但在提交后我收到“用户'root'@'localhost'的访问被拒绝(使用密码:YES)”错误。

这一切都是使用 MAMP 在本地托管的,root@localhost 是唯一的用户,我确定我的密码是正确的。

我查看了类似的问题,刷新了权限,创建了新用户,尝试通过命令行登录(我得到了同样的错误),但似乎没有任何效果。

这是我的代码:

$hostname = "localhost";
$username = "root";
$password = "root";
$dbname = "quotetool";

$conn = new mysqli($hostname, $username, $password, $dbname);

if ($conn->connect_error) 
    die("Connection failed: " . $conn->connect_error);


$sql = "INSERT INTO customerdetails (workstations, servers, firewalls, name, email, phone, support)
VALUES ('$workstations', '$servers', '$firewalls', '$name', '$email', '$phone', '$support')";

if ($conn->query($sql) === TRUE) 
    echo "New record created";
 else 
    echo "Error: " . $sql . "<br>" . $conn->error; 

$conn->close();

如果有帮助,这是我的用户

Screenshot of my error

【问题讨论】:

你说 $password ="root";但是,如果您的数据库说是,那么为什么不将您的变量更改为 $password="YES"; 当您连接数据库的用户名或密码错误时会出现此错误。我认为您的密码 root 不匹配。 密码形式 mamp 通常是 root by 仍然尝试空白密码。 @Tomm 刚试过,我得到了这个:访问被拒绝用户'root'@'localhost'(使用密码:否) MySQL ERROR 1045 (28000): Access denied for user 'bill'@'localhost' (using password: YES)的可能重复 【参考方案1】:

试试这个代码可能是因为 MySql 期望 Mamp 使用端口 3306。

$hostname = "localhost";
$username = "root";
$password = "root";
$dbname = "quotetool";
$port = "8889";

$conn = new mysqli($hostname, $username, $password, $dbname, $port);

if ($conn->connect_error) 
    die("Connection failed: " . $conn->connect_error);


$sql = "INSERT INTO customerdetails (workstations, servers, firewalls, name, email, phone, support)
VALUES ('$workstations', '$servers', '$firewalls', '$name', '$email', '$phone', '$support')";

if ($conn->query($sql) === TRUE) 
    echo "New record created";
 else 
    echo "Error: " . $sql . "<br>" . $conn->error; 

$conn->close();

正确的语法

mysqli_connect(host,username,password,dbname,port,socket);

如果有任何问题,请告诉我,我会尝试修复它。

【讨论】:

太棒了,非常感谢。我实际上改变了 $port = "3306";到 $port="8889" 因为这是 sql 正在使用的一个,但现在它工作得很好。干杯!

以上是关于使用 MAMP 服务器拒绝用户 'root'@'localhost' 的访问(使用密码:YES)的主要内容,如果未能解决你的问题,请参考以下文章

phpMyAdmin 上的错误 #1045 - Mac 访问被拒绝

MAMP Pro 出错

无法访问 PHPMyAdmin

在 Mac 上使用 MAMP 本地拒绝 phpMyAdmin 访问

MYSQL 错误 1045 拒绝访问

用户'root'@'localhost'的MYSQL访问被拒绝