访问被拒绝使用PHP连接到MySQL

时间:2017-12-06 05:10:53

标签: php mysql access denied

我知道有很多线程已经问过这个问题了,但是我已经在这里待了好几个小时了。我正在尝试使用以下PHP连接到我运行MacBook的MySQL数据库:

<?php
DEFINE('DB_USER', 'webuser');
DEFINE('DB_PASSWORD', 'thispassword');
DEFINE('DB_HOST', '127.0.0.1:3306');
DEFINE('DB_NAME', 'learning_accounts');

$dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
OR die('Error connecting: ' .
mysqli_connect_error()
);

?>

返回以下错误:

Error connecting: Access denied for user 'webuser'@'localhost' (using password: YES)

我可以通过终端连接正常,甚至尝试连接PHP并且root不起作用。我是PHP和MySQL的新手,所以任何指导和见解都会受到赞赏!

我尝试了很多解决方案,例如授予权限,刷新权限,创建新用户,使用PDO,没有任何工作 - 请帮忙!

非常感谢,我讨厌学习新语言,因为在开始调试时我是一个迷失的鱼!

更新

我为我的root帐户设置了密码,但是将DB_PASSWORD变量更改为&#39;&#39;将错误更改为:连接错误:未知数据库&#39; learning_accounts&#39;

更新2 我已经解决了这个问题,查看我的答案,看看如果你遇到这个问题,我希望你能快速找到这个帖子!

  • Zach L

6 个答案:

答案 0 :(得分:1)

你可能有一个匿名用户''@ localhost'或''@'127.0.0.1'

答案 1 :(得分:1)

如果您尝试了大量解决方案,那么您可以创建另一个帐户,并尝试使用。

如果出现同样的问题,那就是mysql服务/守护进程问题。

我在时间之前有相同的经历。

那时,我重新安装了mysql服务器,问题得到解决。

答案 2 :(得分:1)

尝试更改&#34; DB_HOST&#34; to&#34; localhost&#34;。 如果它没有解决问题,那么重新安装你的mysql服务器

答案 3 :(得分:1)

正如@DontPanic在他的评论中建议的那样,从<?php $data = json_decode(file_get_contents("php://input")); //including the database connection file include_once("../classes/Crud.php"); $crud = new Crud(); $company = $data->company; $email = $data->email; $phone = $data->phone; $position = $data->position; $firstName = $data->firstName; $lastName = $data->lastName; $ownedPress = $data->presses; //insert data to database $result = $crud->execute("INSERT INTO users(company, email, phone, position, first_name, last_name) VALUES('$company','$email','$phone','$password','$position','$firstName','$lastName')"); $last_id = $crud->user_id; foreach($data as $item) { $pressesQuery = $crud->execute("INSERT INTO owned_presses(user_id, brand, tonnage, table_size, press_type) VALUES ('$last_id','$item[brand]','$item[tonnage]','$item[tableSize]','$item[pressType]')"); } ?> 中删除3306

如果您正在使用XAMPP,WAMP或EasyPHP,则默认情况下不会设置MySQL密码。因此你应该使用

127.0.0.1:3306

答案 4 :(得分:1)

如果您正在使用本地服务器,则无需输入密码只需将其设为“空白”。

    define('DB_HOST', 'localhost');    
    define('DB_USER', 'root');
    define('DB_PASSWORD', '');
    define('DB_NAME', 'learning_accounts');

$conn = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);
if (!$link) {
    die("Database connection failed: " . mysqli_error());
}

如果您正在使用服务器,只需更改DB_USERDB_PASSWORDDB_NAME即可。     如果仍然无法连接,请检查数据库名称是否正确。

如果一切都很完美,您必须查看以下链接

How to install MySQLi

答案 5 :(得分:0)

所以我终于明白了。问题是我单独安装了php,并创建了我的数据库,然后安装了XAMPP并尝试连接到该数据库。正确的方法是使用php我的管理员创建数据库,该管理器随XAMPP一起提供,并且拥有自己的php,mysql和apache,你必须使用它来处理所有事情。

我希望有其他任何有这个问题的人找到这个帖子,因为在配置文件中已经过了几天了 - 但如果我知道自己在做什么,就可以轻松避免。