Я пытаюсь установить инструмент на основе PHP, который подключается к базе данных MySQL, размещенной на Ubuntu. Я могу войти в базу данных MySQL из командной строки, но запуск приложения приводит к этой ошибке:
Access denied for user '[user]'@'localhost' (using password: YES)
Что я наделал: Используя руководство от это обсуждение, вот несколько шагов по устранению неполадок, которые я предпринял.
Попытка подключиться к MySQL через Telnet приводит к такой бессмысленной чепухе:
$ telnet 127.0.0.1 3306
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
A
5.1.41-3ubuntu12.10XIs(ja&7FyO`r>zpDAY{Connection closed by foreign host.
Мой /etc/hosts.deny файл пуст. Я добавил следующие строки в свой /etc/hosts.allow файл:
mysqld: ALL: РАЗРЕШИТЬ mysqld-max: ALL: РАЗРЕШИТЬ
Хотя bind-address
в моем /etc/mysql/my.cnf файл был установлен в 127.0.0.1
, Я прокомментировал это безрезультатно.
Отключить брандмауэр
Флеш привилегии
Следует отметить, что я перезапускал MySQL после каждого из этих шагов, используя следующую команду:
mysqladmin -u [user] -p shutdown
mysqld_safe &
Что мне не хватает?
Попробуй это
mysql >GRANT ALL ON [database name].* TO [user]@'127.0.0.1' IDENTIFIED BY '[PASSWORD]';
Если работает mysql admin, работает ли клиентская программа?
Если клиентская программа работает, одна из возможных причин - клиентская библиотека mysql устарела и нуждается в обновлении. (Я больше знаком с RedHat, но, вероятно, это что-то вроде sudo apt-get update php-mysql
.. не уверен на 100% в этом названии пакета)
Также убедитесь, что вы используете точное имя, указанное вами для пользователя. Если вы настроите пользователя как user@localhost
это может не сработать, чтобы использовать user@127.0.0.1
надеюсь, это поможет