我知道有很多线程已经问过这个问题了,但是我已经在这里待了好几个小时了。我正在尝试使用以下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 我已经解决了这个问题,查看我的答案,看看如果你遇到这个问题,我希望你能快速找到这个帖子!
答案 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_USER
,DB_PASSWORD
和DB_NAME
即可。
如果仍然无法连接,请检查数据库名称是否正确。
如果一切都很完美,您必须查看以下链接
答案 5 :(得分:0)
所以我终于明白了。问题是我单独安装了php,并创建了我的数据库,然后安装了XAMPP并尝试连接到该数据库。正确的方法是使用php我的管理员创建数据库,该管理器随XAMPP一起提供,并且拥有自己的php,mysql和apache,你必须使用它来处理所有事情。
我希望有其他任何有这个问题的人找到这个帖子,因为在配置文件中已经过了几天了 - 但如果我知道自己在做什么,就可以轻松避免。