【问题标题】:error: Access denied for user 'root'@'localhost' (using password: NO)错误:用户'root'@'localhost'的访问被拒绝(使用密码:否)
【发布时间】:2017-03-14 17:03:42
【问题描述】:

我正在尝试实现一个登录功能,该功能允许我从 facebook 中提取数据并将它们保存在我的 moodle 网站上。不幸的是,我不是程序员,我遇到了一些问题。特别是,当我尝试将从 fb 提取的数据“写入”到 MySQL 数据库时,我遇到了一些与权限相关的困难。

这是我到目前为止所做的:

我设法从 Fb 中提取了我感兴趣的数据,并尝试将它们保存到 MySQL 数据库(通过 cpannel 创建)。我用来访问数据库的代码基本上是这样的(我的数据库的参数正确):

// Create connection

$ Db = new mysqli ($ localhost, $ username, $ password, $ database);

// Check connection

if ($ db> connect_error) {

    die ( "Connection failed:". $ db-> connect_error);

}

但是当我连接到网页时,我收到此错误:“连接失败:用户 'root'@'localhost' 的访问被拒绝(使用密码:否)”

问题似乎是用户/密码不正确。事实上,我确信这些数据与我在创建数据库时包含在 CPanel 中的数据相对应。关联用户拥有所有活动权限。

我做了一些研究,似乎问题可能与 Moodle 的某些“自动”设置有关。所以我卸载了moodle,但没有任何改变。

我也试过改代码:

$config = parse_ini_file('/config.ini');

// Connect to database

$mysqli = new mysqli($config['servername'], $config['username'], $config['password'], $config['dbname']);

printf("\n ".date("Y-m-d h:i:sa") . " - Establishing connection to " . $config['dbname'] . " on " . $config['servername'] . ".\n");

// Check connection

if ($mysqli->connect_error) {

    die('Error : (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);

    printf("\n ".date("Y-m-d h:i:sa") . " - Connection failed. Returned error: " . mysqli_connect_error() . "\n");

} else {

     printf("\n ".date("Y-m-d h:i:sa") . " - Connection successful.\n");

}

不幸的是我没有运气......

这是我实现该功能所遵循的教程:

https://www.youtube.com/watch?v=N5Kka43giyY&index=30&list=PLmpuiTmSb3xCLwwkpXeuJxwKyljf7e3Tx

我非常缺乏经验,但在我看来,当我在 cpannel 中定义密码时会出现问题......好像密码没有价值...... 关于如何解决它的任何想法?

【问题讨论】:

  • 尝试删除$variable 名称之间的空格。那么它可能成为有效的PHP
  • 有点像你在$ password$config['password'] 中没有设置值
  • @RiggsFolly 我同意你的看法。问题是我在创建与数据库关联的新用户时定义了密码!!看来这个密码没有任何价值..

标签: php mysql database mysqli


【解决方案1】:

问题应该与连接的主机参数有关,查看您的CPanel数据并尝试找到主机,例如您的CPanel提供的IP地址或域。

【讨论】:

  • 谢谢月尾。我试过了,但没有运气..也许我有一个想法:我在网站上安装了 softallculous 的穆德尔。这个过程自动创建了一个看起来运行良好的数据库和一个新用户。如果我能看到这个用户的密码,我可以将他与我的新数据库相关联,也许它会起作用..有人知道我在哪里可以找到这些信息吗?我已经尝试更改此用户的密码,但它对我不利。数据库的大问题,所以我不得不重复安装..
【解决方案2】:

您可以在下面的 mysql 查询中将 $config['password'] 替换为真实密码,例如 'your-password'

$mysqli = new mysqli($config['servername'], $config['username'], 'your-password', $config['dbname']);

【讨论】:

    猜你喜欢
    • 2018-02-09
    • 2016-12-27
    • 2012-06-17
    • 1970-01-01
    • 2013-07-27
    • 2013-11-28
    相关资源
    最近更新 更多