为啥我无法连接到 mysql 数据库?

Posted

技术标签:

【中文标题】为啥我无法连接到 mysql 数据库?【英文标题】:why am I not being able to connect to mysql database?为什么我无法连接到 mysql 数据库? 【发布时间】:2018-03-01 10:56:03 【问题描述】:

我新安装了 Wamp Server,我正在尝试开发一个本地站点。我试图访问的数据库是 Shopping。但是,我在尝试访问它时遇到错误。有人可以帮忙吗?请告诉我这里写得不好? PS:我是 php 和 Wamp Server 环境的新手。谢谢!

<?php
$connect = mysqli_connect("localhost", "root", "gold", "shopping") or die
("Please, check the server connection.");
$email_address = $_POST['emailaddress'];
$password = $_POST['password'];
$repassword = $_POST['repassword'];
$completename = $_POST['complete_name'];
$address1 = $_POST['address1'];
$address2 = $_POST['address2'];
$city = $_POST['city'];
$state = $_POST['state'];
$country = $_POST['country'];
$zipcode = $_POST['zipcode'];
$phone_no = $_POST['phone_no'];
$sql = "INSERT INTO customers (email_address, password, complete_name,
address_line1, address_line2, city, state, zipcode, country, cellphone_no)
VALUES ('$email_address',(PASSWORD('$password')), '$completename', '$address1',
'$address2','$city', '$state', '$zipcode', '$country', '$phone_no')";
$result = mysqli_query($connect, $sql) or die(mysql_error());
if ($result)

?>
<p>
Dear, <?php echo $completename; ?> your account is successfully created
<?php

else

echo "Some error occurred. Please use different email address";

?>

Error: warning access denied for user'root'@'localhost'

【问题讨论】:

mysql_error() 应该是 mysqli_error()。您不能混合库。这可能会阻止您获得正确的错误报告。无论如何,您需要准确地告诉我们错误的内容。 “我遇到错误”对任何人都没有用。发生错误的原因有很多。 另外,这不是您的问题的原因,而是一个单独的问题:您的代码容易受到 SQL 注入攻击。您应该使用参数化查询和准备好的语句来帮助防止攻击者通过使用恶意输入值来破坏您的数据库。 bobby-tables.com 给出了风险解释,以及如何使用 PHP / mysqli 安全地编写查询的一些示例。切勿将未经处理的数据直接插入 SQL。 warning access denied for user 'root'@'localhost' 表示这是您的 MySQL 用户的权限问题,请检查 mysql 数据库 - 特别是 dbuser 表查看您的权限是否正常。您可能还想查看用于存储用户密码的 PHP 的 password_hash() 函数……一旦您纠正了其他 SQL 注入问题。 首先修复了@ADyson 所说的myql_error,我尝试执行相同的文件代码,在我的服务器上工作正常,检查您的数据库密码并检查您是否创建了相同的数据库和表名。跨度> @ADyson 错误提示:警告:mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\wamp64\www \addcustomer.php 在第 2 行。我按照您的建议将 mysql_error() 更正为 mysqli_error() 但仍未解决。 【参考方案1】:

您的数据库需要密码,因此请使用以下代码检查数据库凭据并检查连接

<?php
$servername = "localhost";
$username = "username"; // set user name
$password = "password"; // set password

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) 
    die("Connection failed: " . mysqli_connect_error());

echo "Connected successfully";
?> 

【讨论】:

您好阿曼,感谢您的帮助。我检查了您提供的代码,但它似乎不适用于我的系统。也许我做得不好?我的数据库名称需要密码。在Privileges中设置如下: username hostname type Privileges Grant david localhost global ALL PRIVILEGES Yes 您好阿曼,感谢您的帮助。我检查了您提供的代码,但它似乎不适用于我的系统。也许我做得不好?我的数据库名称需要密码。在权限中,设置如下: 用户名主机名类型权限授予大卫本地主机全局所有权限是的我仍然无法找到确切的问题。你能帮忙吗?

以上是关于为啥我无法连接到 mysql 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

连接网站显示数据库错误:无法连接到数据库:无法连接到MySQL?

为啥我可以将 java 应用程序连接到 MySQL DB 但无法执行查询? [复制]

无法从 MySQL Workbench 连接到 RDS MySQL 数据库

电脑为啥显示无法连接到这个网络?

Visual Studio 2010无法连接到MySql服务器

无法使用 MySQL 连接器/ODBC 将 Access DB 连接到 ODBC DSN