Причины ошибки аутентификации MySQL: «Доступ запрещен для пользователя« xxx »@« yyy »»? - PullRequest
1 голос
/ 29 октября 2008

Какие возможные причины могут существовать для MySQL, выдающего ошибку “Access denied for user 'xxx'@'yyy'” при попытке доступа к базе данных с помощью PHP-mysqli и работающей нормально при использовании инструмента командной строки mysql с точно такими же именем пользователя, паролем, сокетом, базой данных и хостом
Обновление:
В таблице mysql.user действительно было три пользователя, каждый с другим хостом (но с тем же хешированным паролем), одному было присвоено значение localhost, одному - 127.0.0.1, а другому - имя хоста компьютера. Удаление двух из них и изменение хоста третьего на «%» имело только один эффект: теперь доступ запрещен также с помощью инструмента командной строки. Я сделал

 select user();

до этого в командной строке, и это привело к тому же xxx @ yyy, что было отказано в php.

Ответы [ 4 ]

5 голосов
/ 29 октября 2008

Иногда в php / mysql есть разница между localhost и 127.0.0.1

В mysql вы предоставляете доступ на основе имени хоста, для локальных пользователей это будет localhost. Я видел php, пытающийся соединиться с 'myservername' вместо localhost, хотя в конфигурации был определен 'localhost'.

Попробуйте предоставить доступ в mysql для 127.0.0.1 и подключиться в php через порт 12706.0.1 3306.

3 голосов
/ 14 декабря 2012

На случай, если кому-то все еще интересно: я никогда не решал эту конкретную проблему. Похоже, проблема была в том, с каким оборудованием я работал на MySQL. С тех пор я никогда не видел ничего подобного.

0 голосов
/ 20 февраля 2014

Сегодня у службы FTP моего провайдера веб-хостинга возникли некоторые проблемы, поэтому я решил создать локальный виртуальный веб-сервер для работы на моем веб-сайте. Я установил EasyPHP 14.1 с phpMyAdmin и создал своего пользователя и свою базу данных с таблицами.

Первая попытка: не удалась. Я понял, что таблицы, которую я искал, не существует. -> Я решил создать отсутствующую таблицу.

Вторая попытка: не удалась. Я понял, что имя пользователя, которое я установил для моего нового пользователя, отличается от имени пользователя, которое я использовал для своего соединения. -> Я редактировал имя пользователя.

Третья попытка: не удалась. Я понял, что новое имя базы данных отличается от имени базы данных, которое я использую для подключения на своем сайте. -> Я редактировал имя БД.

Четвертая попытка: не удалась. Я понял, что между привилегиями моего нового пользователя не было «Гранта». Я даже не знаю, что означает «Грант», но давайте попробуем включить его -> Добавлена ​​привилегия «Грант».

Пятая попытка: я выиграл!

Надеюсь, мое маленькое приключение могло бы кому-нибудь помочь. =)

0 голосов
/ 31 октября 2008

После прочтения вашего обновления я могу заподозрить ошибку в / с паролем. Используете ли вы "странные" символы в вашем PW (что может вызвать проблемы кодирования utf-8 / iso)?

Использование% в поле Host позволит пользователю подключаться с любого хоста. Поэтому единственное, что может быть неправильным, - это пароль.

Можете ли вы создать другого пользователя. с помощью что «предоставить все для всех», идентифицируемый синтаксисом «somesimplepw», и пытаться соединиться с этим пользователем? Не забудьте "очистить поля"

Для получения информации о том, как создать нового пользователя, нажмите здесь

...