【发布时间】:2015-02-27 04:29:23
【问题描述】:
我阅读了有关常见问题的留言板通知。我知道这很常见,但我查看了 stackoverflow 上的所有相关帖子,但找不到解决此问题的方法。
我正在使用最新的 MAMP。我有一个 mysql 数据库,我使用 MAMP 附带的 mysql 在命令行中设置它。我有一个名为“phpuser”的用户,其密码是“phpuser”。我已经检查了很多次,并且可以通过命令行使用该用户和密码登录。
这是我的代码。它直接来自这里的介绍教程 (http://www.w3schools.com/php/php_mysql_connect.asp):
<?php
$servername = "localhost";
$username = “phpuser”;
$password = “phpuser”;
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
当我使用最新的 MAMP php 版本运行它时,我收到此错误:
尼克斯-MacBook-Pro:你好尼克$ /Applications/MAMP/bin/php/php5.6.2/bin/php first_db.php
注意:使用未定义的常量“phpuser” - 在第 3 行的 /Applications/MAMP/htdocs/howdy/first_db.php 中假定为“phpuser”
注意:使用未定义的常量“phpuser” - 在第 4 行的 /Applications/MAMP/htdocs/howdy/first_db.php 中假定为“phpuser”
警告:mysqli::mysqli(): (28000/1045): Access denied for user '“phpuser”'@'localhost' (using password: YES) in /Applications/MAMP/htdocs/howdy/first_db.php on line 7
连接失败:用户'“phpuser”'@'localhost'的访问被拒绝(使用密码:YES)
我尝试使用默认的 php 版本运行它,然后我得到一个不同的错误:
尼克斯-MacBook-Pro:你好尼克$ php first_db.php
警告:mysqli::mysqli(): (HY000/1045): Access denied for user '"phpuser"'@'localhost' (using password: YES) in /Applications/MAMP/htdocs/howdy/first_db.php on line 7
连接失败:用户'“phpuser”'@'localhost'的访问被拒绝(使用密码:YES)
我已经尝试使用 127.0.1.1 而不是本地主机,但这也不起作用。我检查了我的主机文件,这似乎很好。反正就是这样:
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
我还尝试在此处运行 MAMP 文档中的示例代码:http://www.mamp.info/en/documentation/MAMP-3-User-Guide.pdf
我运行以下命令:
<?php
DEFINE('DB_USERNAME', 'phpuser');
DEFINE('DB_PASSWORD', 'phpuser');
DEFINE('DB_HOST', 'localhost');
DEFINE('DB_DATABASE', 'status');
// http://www.php.net/manual/en/mysqli.connect.php
$mysqli = new mysqli(DB_HOST, DB_USERNAME,
DB_PASSWORD, DB_DATABASE);
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno()
. ') ' . mysqli_connect_error());
}
echo 'Connected successfully.';
$mysqli->close();
?>
我收到以下错误:
尼克斯-MacBook-Pro:你好尼克$ /Applications/MAMP/bin/php/php5.6.2/bin/php first_db.php
注意:在第 3 行 /Applications/MAMP/htdocs/howdy/first_db.php 中使用未定义的常量“phpuser” - 假定为“phpuser”
注意:在第 4 行 /Applications/MAMP/htdocs/howdy/first_db.php 中使用未定义的常量“phpuser” - 假定为“phpuser”
注意:在第 6 行 /Applications/MAMP/htdocs/howdy/first_db.php 中使用未定义的常量“status” - 假定为“status”
警告:mysqli::mysqli(): (28000/1045): Access denied for user ''phpuser''@'localhost' (using password: YES) in /Applications/MAMP/htdocs/howdy/first_db.php on line 9
连接错误 (1045) 用户 ''phpuser''@'localhost' 的访问被拒绝(使用密码:YES)
我已经尝试过其他教程,但它们都返回错误。我尝试使用 define() 函数而不是变量,但这似乎不起作用。我已经阅读了有关“使用未定义常量”问题的几个线程,但我看不出任何解决方案如何适用于我。
我还尝试使用以下代码添加指向 mysql.socket 的链接。这对我也没有帮助(我没有 /var/mysql 文件可以启动)。
sudo mkdir /var/mysql
sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock
我也尝试过使用不同的 mysql 套接字,但无法让任何代码在没有错误的情况下运行。
【问题讨论】:
-
您似乎输入/复制了一些奇怪的引号字符。而不是
“,它应该是",而不是‘,它应该是'。你用的是什么代码编辑器? -
另外,W3Schools 是一个糟糕的资源。你最好遵循 PHP 手册中的指南。
-
@Phil 你是对的。我在 Mac 上使用 TextEdit。有一个“智能报价”设置将一种报价转换为另一种报价。亲爱的宝贝耶稣。
-
看看 Atom 或 Sublime Text 的文本编辑器