gpt4 book ai didi

php - mysqli::__construct(): (HY000/1045): 用户 'lfc_site' @'localhost' 的访问被拒绝(使用密码:YES)

转载 作者:行者123 更新时间:2023-11-29 18:13:12 25 4
gpt4 key购买 nike

我正在将托管平台从 cPanel 切换到 Plesk,但我的一个网站上的脚本似乎出现了一些问题。主站点运行在最新版本的 Joomla 上,数据库连接没有错误。我有一个在 cron 作业上运行的外部脚本,但似乎没有连接。我收到此错误:

mysqli::__construct(): (HY000/1045): Access denied for user 'lfc_site'@'localhost' (using password: YES)

我必须假设它与我的连接类有关,所以我将其发布在这里:

  1. 我有一个包含数据库登录凭据的 cofig.ini。

    [数据库]用户名 = 数据库用户密码 = ******dbname = 数据库名称

那么我的连接类是这样的:

<?php
//Database connection class
class Db {
protected static $connection;
public function connect() {
if(!isset(self::$connection)) {
global $config;
self::$connection = new mysqli('localhost:3306',$config['username'],$config['password'],$config['dbname']);
}
if(self::$connection === false) {
return false;
}
return self::$connection;
}
public function query($query) {
$connection = $this -> connect();
$result = $connection -> query($query);
return $result;
}
public function select($query) {
$rows = array();
$result = $this -> query($query);
if($result === false) {
return false;
}
while ($row = $result -> fetch_assoc()) {
$rows[] = $row;
}
return $rows;
}
public function error() {
$connection = $this -> connect();
return $connection -> error;
}
public function quote($value) {
$connection = $this -> connect();
return "'" . $connection -> real_escape_string($value) . "'";
}
}
?>

最后我的脚本运行查询......

<?php
require_once('/var/www/vhosts/user/httpdocs/db.php');
$config = parse_ini_file('/var/www/vhosts/user/httpdocs/config.ini');

$db = new Db();
$rows = $db -> select('
SELECT *
FROM milestones
WHERE status != "arrived"
AND departure_time BETWEEN (NOW() - INTERVAL 12 HOUR)
AND (NOW() + INTERVAL 12 HOUR)
AND type = "4"
');

?>

我猜测可能有一个未启用的模块禁止该脚本正确建立连接,正如我所说,Joomla 脚本似乎使用完全相同的凭据进行连接而没有问题?

最佳答案

“外部脚本”是什么意思?

根据您提供的输出,我假设它与 Joomla 安装位于同一台计算机上。

问题很可能不在于您的凭据(如果它们适用于 Joomla 并且您已经仔细检查过它们),而在于您提供的主机名或服务器配置或 MariaDB 用户 (lfc_site) 权限。

您可以尝试将代码中的localhost更改为127.0.0.1,看看是否有任何区别。

如果没有,请通过 SSH 连接到您的服务器并提供输出

  1. plesk db,然后SELECT user, host FROM mysql.user WHERE user = 'lfc_site';
  2. grep bind/etc/mysql/my.cnf

进行进一步调查。

关于php - mysqli::__construct(): (HY000/1045): 用户 'lfc_site' @'localhost' 的访问被拒绝(使用密码:YES),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47232742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com