SQLSTATE[HY000] [1045] Доступ запрещен для пользователя '@'localhost' (с использованием пароля: ДА)

Это первый раз, когда я загружаю веб-страницу на сервер, и я совершенно неопытен в этой теме. Я загрузил xampp для работы в производственной среде и через phpmyadmin настроил имя пользователя, пароль и host = '%' Но когда я загружаю свои файлы с помощью Filezila, я выкидываю это:

SQLSTATE [HY000] [1045] Доступ запрещен для пользователя ' @ 'localhost' (с использованием пароля: ДА)

Я попытался подключиться к своему серверу через Mysql Shell и Workbench, чтобы создать пользователя "пользователь", который имел все разрешения для доступа к моей базе данных, но в обоих случаях я бросил следующее:

Хост xxxx.xx.xx Не разрешается подключаться к этому серверу MariaDB.

Что я не понимаю, почему MariaDB Server? У меня нет его скачать или что-то.

Я действительно не знаю, как я могу предоставить разрешения новому пользователю внутри хоста, чтобы он мог получить доступ к моей базе данных. Мой код подключения выглядит следующим образом:

try {   
    $dsn = 'mysql:host=%;dbname=db_name;charset=utf8';
    $db = new PDO($dsn, 'user', 'contraseña');
    $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
} catch (Exception $e) {
    echo $e->getMessage();
    exit;
}

3 ответа

1) Первая ошибка говорит о том, что ваши учетные данные mysql недействительны. Исправьте конфигурацию вашей базы данных в вашем php-коде. Укажите имя пользователя, пароль и т. Д. Вы можете получить эту информацию у своего хостинг-провайдера. Попробуйте изменить "%" на "localhost".

2) Для второго хоста "xxx.xx.xxx.xxx" не разрешено подключаться к этому серверу MySQL и

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;

FLUSH PRIVILEGES;
1

MariaDB - это форк MySQL, по умолчанию многие хостинг-провайдеры и дистрибутивы Linux имеют MariaDB. Использование MariaDB - это то же самое, что и MySQL. Обратите внимание, что в вашей строке подключения хост обычно localhost вместо %,

0

Для первого вопроса: если ваше имя сервера является localhost. Пожалуйста, проверьте всю информацию (имя сервера, имя пользователя, пароль для базы данных) от вашего хостинг-провайдера. Попробуйте этот код:

<?php

$servername = "localhost";
$username = "yourusername";
$password = "yourpassword";

try {
    $conn = new PDO("mysql:host=$servername;dbname=yourdatabase", 
    $username, $password);
   // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
catch(PDOException $e)
    {
        echo "Connection failed: " . $e->getMessage();
    }
?>
0
Другие вопросы по тегам