PHP脚本无法连接到MYSQL数据库
Posted
技术标签:
【中文标题】PHP脚本无法连接到MYSQL数据库【英文标题】:PHP script cannot connect to MYSQL database 【发布时间】:2019-03-25 18:35:35 【问题描述】:我有一个直接尝试连接 mysql 数据库的脚本。
当我运行脚本时,我得到了错误:
警告:mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\xampp\htdocs\ShopSite\submitReg.php on line 16 连接失败。
连接代码为:
$server="127.0.0.1";
$db="shop";
$user="root";
$password="";
$conn=mysqli_connect($server,$user,$password,$db) or die("Failed to connect");
我可以连接到 phpMyAdmin 并在那里编辑数据库就好了。我正在使用 XAMPP 并在本地运行它。
当我转到用户帐户时,它说没有 root 密码。我查看了配置文件,没有设置密码。我没有为任何东西设置密码。
我没有进入并摆弄设置,也没有创建任何新帐户。它工作得很好(从来没有遇到过这个问题),然后它就从这个开始了。我重新安装了 XAMPP,仍然给我这个问题。
我不明白为什么它说使用密码“是”。
我已经花了好几个小时试图修复它。我浏览了很多线程。不一定都适用于我,因为我在本地运行它,并且没有进入并创建新的用户帐户。一切都是默认的。
在重新安装之前,我尝试创建一个新用户帐户并为其授予必要的权限。我也给了它一个密码。没用。
我不明白它为什么会这样,而且我自己也没有足够的知识来修复它。非常感谢任何帮助,以便它可以返回连接。
【问题讨论】:
它说“localhost”和“使用密码:YES”的事实让我觉得你没有看正确的代码块。 您是否尝试过添加具有密码的用户并登录到数据库?我也会尝试直接使用像 heidisql 这样的 mysqli 客户端登录 @Devon,你是什么意思? 如果您正在查看的代码块与错误相对应,它将显示“127.0.0.1”和“使用密码:否”。您确定您发布的代码是 C:\xampp\htdocs\ShopSite\submitReg.php 的第 16 行吗? @GuyLouzon 我之前尝试过,但没有成功。这次试了一下,果然成功了。感谢您再次提出建议。不知道为什么它以前不喜欢它。 【参考方案1】:改变
$server="127.0.0.1";
由
$server="localhost";
【讨论】:
验证服务器上的权限表(如果需要,重新加载授权)以及您正在连接到正确的服务器。 试试这个:$con = mysqli_connect("localhost","root","","database_name")or die("Failed to connect");【参考方案2】:我使用 XAMPP 有一段时间了,它对我来说效果很好,
我认为你的mysql服务器的默认密码没有设置为''
,所以我猜
如果您更改 root 密码并尝试使用新密码访问您的数据库,它应该可以工作。
更新根密码
要更新root
使用密码,您必须执行以下步骤:
-
打开 XAMPP 控制面板
点击 MySQL 按钮
MySQL 控制台加载后,执行以下查询:
为 'root'@'localhost' 设置密码 = PASSWORD('pass');`
之后,将$password
变量更改为新密码
在这种情况下是pass
添加新用户
您还可以通过执行以下查询来添加新用户:
GRANT ALL PRIVILEGES ON *.* TO 'new-user'@'localhost' IDENTIFIED BY 'password';
虽然用户名是new-user
,密码是password
。
我希望这会有所帮助。
【讨论】:
以上是关于PHP脚本无法连接到MYSQL数据库的主要内容,如果未能解决你的问题,请参考以下文章
docker mysql initdb 脚本无法连接到数据库
无法通过php代码连接到mysql数据库,PHP致命错误:找不到类'MySQLi'