PHP和MySQLi错误-用户'root'@'localhost'的访问被拒绝(使用密码:否)[重复]

Posted

技术标签:

【中文标题】PHP和MySQLi错误-用户\'root\'@\'localhost\'的访问被拒绝(使用密码:否)[重复]【英文标题】:PHP and MySQLi error-Access denied for user 'root'@'localhost' (using password: NO) [duplicate]PHP和MySQLi错误-用户'root'@'localhost'的访问被拒绝(使用密码:否)[重复] 【发布时间】:2019-02-21 19:08:07 【问题描述】:

我定义:

$hostname= "localhost";
$database = "company";
$username = "dxy";
$password= "abc";
$c = mysqli_connect($hostname, $username, $password);

我得到以下错误:

错误 2:用户 'root'@'localhost' 的访问被拒绝(使用密码:否)

为什么它尝试通过root@localhost 而不是dxy@localhost 连接?

我在这台专用服务器上有另一个应用程序。但它通过username@localhost 连接而不是root....这有什么问题?

当我将mysqli 更改为mysql 时,它会完美连接。

感谢您的帮助。

【问题讨论】:

我看不到此代码生成该错误消息。你确定它不是来自代码中的其他地方,或者你的变量没有被覆盖? 注意:mysqli 的面向对象接口明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的mysql_query 接口混淆。在您对程序风格投入过多之前,值得转换一下。示例:$db = new mysqli(…)$db->prepare("…") 过程化接口是 php 4 时代引入 mysqli API 时的产物,不应在新代码中使用。 我添加了第四个参数,没有运气。当我将 mysqli 更改为 mysql 时,一切正常。不,这是连接错误。我正在使用 Plesk 来管理我的服务器,所以不确定它是否与此有关 我将在不久的将来迁移到 mysqli API...我的应用程序很重,有超过 200 个动态页面... 没有足够的代码来支持这个问题。我有一种感觉,你没有向我们展示/告诉我们一切。我认为您仍在使用一些旧的 mysql_* 函数,并且可能没有一个数据库连接。我几乎 100% 确定您正在混合使用不同的 mysql api。 【参考方案1】:

首先,您在连接中遗漏了数据库,因此它不知道在哪里连接。其次创建一个新的 mysqli() 函数来定义一个数据库连接。 希望这会有所帮助。

$hostname  = 'localhost';
$username  = 'dxy';
$password  = 'abc';
$database  = 'company';
$c =  new mysqli($hostname, $username, $password, $database);

【讨论】:

仅连接时不需要数据库参数。但是,在查询表时需要它。我有一种感觉,这比他们让我们知道的更进一步/更深入。 正如你们中的一个人所怀疑的那样,应用程序本身的问题不是 db conn。实际错误是:错误:2 mysql_real_escape_string(): Access denied for user 'root'@'localhost' (using password: NO)..so I changed mysql_real_escape_string() to mysqli_real_escape_string() && added first conn parameters.. .现在一切都很好。吸取教训不要同时使用混合 MySQL 新旧 MySQLi...

以上是关于PHP和MySQLi错误-用户'root'@'localhost'的访问被拒绝(使用密码:否)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

PHP和MySQLi错误 - 访问被拒绝用户'root'@'localhost'(使用密码:NO)[复制]

PHP登录页面因root用户错误而拒绝访问,并期望参数1为mysqli,bool给定[重复]

kali配置phpmyadmin报错mysqli::__construct(): (HY000/1698): Access denied for user 'root'@'lo

Zabbix的安装与部署---问题处理(php65.6.28 mysqli 报错误 处理)

PHP中的MySQLi扩展学习mysqli类的一些少见的属性方法

PHP中的MySQLi扩展学习mysqli类的一些少见的属性方法