You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用mysqli连接MySQL数据库遇1045(Access Denied)错误,求解决方案

嘿,我来帮你拆解这个数据库连接错误的问题!

首先,我注意到一个关键的矛盾点:错误提示里显示的是用户eyohan01@localhost被拒绝访问,但你贴出来的连接代码里用的是root用户。这说明要么你实际运行的代码和你贴的不一样,要么数据库的权限配置有问题,下面我分情况给你排查方案:

1. 先确认你实际运行的代码内容

错误提示明确指出问题出在C:\xampp\htdocs\artgallery\connect.php的第7行,你贴的代码和这个路径里的代码大概率不一致——比如第7行可能是用了eyohan01作为用户名,而不是root

先去打开这个文件,检查第7行的mysqli_connect(或者mysqli::__construct)调用里的用户名、密码、数据库名是否正确。另外,你贴的代码本身还有两个小bug:

  • 变量名不统一:你定义的连接变量是$connect,但后面mysqli_select_db用的是$conn,这会导致另一个未定义变量的错误
  • 没必要分开调用mysqli_connectmysqli_select_db,可以直接在mysqli_connect的第四个参数里指定数据库名,简化代码:
<?php
// 正确的写法示例(替换成你的真实用户名和密码)
$connect = mysqli_connect("localhost", "root", "你的密码", "artgallery") 
           or die("Connection failed: " . mysqli_connect_error());
?>

2. 如果确实要用eyohan01用户连接数据库

如果你的代码里确实是用eyohan01作为连接用户,那错误说明这个用户没有访问localhostartgallery数据库的权限,或者密码错误。你可以按以下步骤解决:

  • 打开XAMPP控制面板,启动Apache和MySQL,然后点击MySQL旁边的Admin进入phpMyAdmin
  • root用户登录后,点击顶部的用户账户选项卡,找到eyohan01用户
  • 检查以下几点:
    • 该用户的主机是否设置为localhost(如果需要允许远程连接,可以设为%
    • 密码是否正确,或者直接重新设置一个密码
    • 该用户是否拥有artgallery数据库的访问权限(可以先给全权限测试,之后再按需缩小权限)
  • 也可以直接在phpMyAdmin的SQL执行框里运行授权语句:
-- 替换成你的真实密码
GRANT ALL PRIVILEGES ON artgallery.* TO 'eyohan01'@'localhost' IDENTIFIED BY '你的密码';
FLUSH PRIVILEGES;

3. 如果是用root用户连接但密码错误

XAMPP默认的root用户密码是空的,但如果你之前修改过root的密码,就需要在代码里填上正确的密码。比如如果root的密码是123456,代码应该写成:

<?php
$connect = mysqli_connect("localhost", "root", "123456", "artgallery") 
           or die("Connection failed: " . mysqli_connect_error());
?>

内容的提问来源于stack exchange,提问作者Emmanuel John

火山引擎 最新活动