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;
Для первого вопроса: если ваше имя сервера является 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();
}
?>
MariaDB - это форк MySQL, по умолчанию многие хостинг-провайдеры и дистрибутивы Linux имеют MariaDB. Использование MariaDB - это то же самое, что и MySQL. Обратите внимание, что в вашей строке подключения хост обычно localhost
вместо %
,