尝试连接到数据库时出现奇怪的错误
Posted
技术标签:
【中文标题】尝试连接到数据库时出现奇怪的错误【英文标题】:Bizarre error when trying to connect to database 【发布时间】:2014-06-10 09:21:11 【问题描述】:在过去的一天左右,我无法通过 php 连接到数据库。这是我连接到数据库的代码的样子
$con = mysqli_connect("localhost","root","password","database");
这是奇怪的错误。
PHP 警告:mysqli_connect(): (HY000/1045): Access denied for user 'user'@'localhost' (using password: YES) in - on line 2
如果凭据不正确,我通常会收到该错误,但我使用 GUI 并测试了与 exact 凭据的连接,因此这意味着这不是问题所在。我刚刚开始随机收到此错误并重新启动计算机,重新安装 MySQL,并重新配置服务器我也尝试过 127.0.0.1
而不是 localhost
我在 localhost
所以我几乎可以完全控制任何事情我没有弄乱任何导致这个问题的东西。有任何想法吗?
【问题讨论】:
【参考方案1】:由于某种原因,该函数试图使用“user”用户而不是“root”用户进行连接。
您可以通过添加错误链接进一步调试:
$con= mysqli_connect("myhost","myuser","mypassw","mybd") or die("Error " . mysqli_error($con))
;
【讨论】:
你的代码有错别字...应该是 mysqli_error($con) 而不是 mysqli_error($link) 我的意思是PHP Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in - on line 2 PHP Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in - on line 2
抱歉快速复制粘贴。现在已经编辑了帖子。你得到更好的错误了吗?
请您按原样粘贴连接。我假设您将连接数据作为变量传递,其中一个返回 0/1(布尔值)而不是值。
这里是$con= mysqli_connect("localhost","root","alistar123","s") or die("Error " . mysqli_error($con));
【参考方案2】:
可能问题出在mysql服务器配置上。
您可以尝试更改密码和刷新权限后。
不如重启mysql!
希望这会有所帮助!再见。
【讨论】:
【参考方案3】:我遇到了与这个问题的标题相同的问题,所以如果其他人在这个问题上用谷歌搜索并想在 Windows 上以“skip-grant-tables”模式启动 MySql,这就是我所做的。
通过管理员工具、服务停止 MySQL 服务。
修改 my.ini 配置文件(假设默认路径)
C:\Program Files\MySQL\MySQL Server 5.5\my.ini
在 SERVER SECTION 的 [mysqld] 下,添加以下行:
skip-grant-tables
让你拥有
# SERVER SECTION
# ----------------------------------------------------------------------
#
#The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
[mysqld]
skip-grant-tables
再次启动服务,您应该可以在没有密码的情况下登录到您的数据库。
【讨论】:
以上是关于尝试连接到数据库时出现奇怪的错误的主要内容,如果未能解决你的问题,请参考以下文章
尝试连接到 localhost phpmyadmin 时出现错误
使用加密连接连接到数据源时出现 Power Query 错误
尝试使用 SQLWorkbench 连接到 Amazon Redshift 时出现操作超时错误
尝试从主机连接到 mysql docker 容器时出现“读取初始通信数据包”错误