Ошибка подключения PHP к MariaDB: Ошибка 1045 Доступ запрещен - PullRequest
1 голос
/ 05 апреля 2019

Я пытаюсь подключиться к базе данных mariadb, используя PHP, но безуспешно. При каждой попытке я получаю следующее:

Ошибка: невозможно подключиться к MySQL. Ошибка отладки: 1045 Ошибка отладки: доступ запрещен для пользователя 'gt_user' @ 'localhost' (с использованием пароля: ДА)

Я перепробовал много попыток. Даже вернулись к простому тесту index.php, который никогда не подключается.

Подключение из командной строки с теми же учетными данными пользователя работает нормально

mysql -u USER -p -h localhost database

Я даже пытался предоставить пользователю все привилегии, а также создал того же пользователя с @ '%' вместо @ 'localhost'

Вот простой тестовый код php, который я пытаюсь:

<?php
$link = mysqli_connect("localhost", "gt_user", "passpass", "gt_monitor");

if (!$link) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
}

echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;

mysqli_close($link);
?>

Я также пытался из браузера на локальном хосте и удаленно. Та же ошибка.

Я думаю, это связано с отсутствующими зависимостями. Не уверен, как тщательно проверить. Запуск PHP 7.0.33 и mariadb 10.1.37 на Raspberry pi на последней версии Rasbian Stretch.

Ответы [ 2 ]

0 голосов
/ 23 апреля 2019

У меня была идентичная проблема.

Наконец, для меня сработало использование PDO вместо mysqli_connect ().

$myPDO = new PDO('mysql:host=localhost;dbname=dbname', 'username', 'password');

ПРОБЛЕМА ИНТЕРЕСНЫХ И РАЗРУШЕННЫХ. наверняка.

0 голосов
/ 05 апреля 2019

удалось решить эту проблему.

В основном удалил mysql, переустановил и снова настроил базу данных.Вставил некоторые данные и повторно протестировал тестовый index.php, который сработал первым.

Для дальнейшего использования, вот шаги, которые я предпринял ниже, чтобы вернуться на правильный путь:

 sudo apt-get remove --purge mysql-server mysql-client mysql-common -y
 sudo apt-get autoremove -y
 sudo apt-get autoclean

И чтобыпереустановить (также для работы с raspberry pi GPIO и Python:

sudo apt update
sudo apt install mariadb-server
sudo apt-get -y install python-mysql.connector
pip install mysql-connector
pip install mysql-connector-repackaged
pip install mysql-connector-python
pip install mysql-connector-python-dd 
pip install mysql-connector-python-rf

Я ограничил пароль gt_user только прописными и строчными буквами и цифрами. Никаких специальных символов.

Надеюсь, этопомогает кому-то в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...