首页 > 解决方案 > MySql 数据库连接问题

问题描述

我有一个共享 Plesk 主机的经销商帐户,但没有 root 访问权限。我有一个站点和一个具有数据库的子域,但我没有机会编写连接它的代码。我最近需要将站点和数据库移动到它自己的 Plesk 订阅中,这涉及重新添加 GitHub 库并通过 Plesk 运行 composer。

FF 到今天,我正在尝试连接到数据库。我可以通过 SqlYog 但不能通过 pdo 访问它——我会遇到身份验证错误。我添加了mysqli,同样的问题。

我添加了一个新数据库和新用户,看看移动是否是问题所在。现在我得到的只是 500 个错误。没有任何内容写入错误日志。

mysql 5.5 PHP 7.2

这是 Plesk 问题还是我可以解决的问题?

这是我的代码

<?php

error_reporting(E_ALL);
ini_set('display_errors', 'On');

$set = 2;
$method = 1;

$host = 'localhost';
$charset = 'utf8mb4';

if ($set === 1) {
    $db = 'PermaDb';
    $user = 'permaname';
    $pass = '123456';  // proper password but not special chars
} else {
    $db = 'TestDb';
    $user = 'testname';
    $pass = '654321';
}

if ($method === 1) {
    $dsn = "mysql:host=$host;dbname=$db;charset=$charset";

//$dsn = "mysql:host=$host;dbname=$db;";
    $options = [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES => false
    ];
    try {
        $pdo = new PDO($dsn, $user, $pass, $options);
    } catch (\PDOException $e) {
        echo '<li>' . $e->getMessage();
        echo '<li>' . $e->getCode();
    }
} else {
    $mysqli = new mysqli($host, $user, $pass, $db);
    if ($mysqli->connect_errno) {
        echo "<li>Mysqli: Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    } else {
        echo '<li>Mysqli: Connected';
    }
    echo '<li>' . $mysqli->host_info . "\n";
}

标签: mysqlauthenticationplesk

解决方案


推荐阅读