ОШИБКА 1045 (28000): Доступ запрещен для пользователя 'root'@'localhost' (использован пароль: НЕТ)

ОШИБКА 1045 (28000): Доступ запрещен для пользователя 'root'@'localhost' (использован пароль: НЕТ)

Сначала я получал эту ошибку при попытке создать базы данных для использования в phpMyAdmin.ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Я поискал в нескольких местах, и мой приятель посоветовал мне просто переустановить MySQL, так как я только вчера переустановил сервер.

Поэтому я решил переустановить MySQL, и теперь я даже не могу запустить установщик, не получив эту ошибку:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Я также получил 'root'@'localhost'ошибку при попытке установить скрипт с базой данных, которую я создал. Это ошибка, которую я получил, когда я попытался установить скрипт: Запуск Centos 6

введите описание изображения здесь

PHP 5.3.3 (я использую скрипт Ioncubed, а PHP 5.4 мне не нужен).

РЕДАКТИРОВАТЬ:

Если вы собираетесь спросить, почему я сначала не посмотрел вокруг, я посмотрел вокруг! Мне не повезло найти других, у кого была такая же проблема, как у меня.

ПРАВКА 2:

Я успешно установил MySQL. Мне захотелось вернуться и попробовать еще раз, и установщик прошел нормально. Но я все еще получаю ошибку root@localhost, показанную на изображении выше. Я уже проверил, чтобы убедиться, что конфигурация не использует магическим образом "root"@"localhost".

решение1

Конфигурация базы данных использует root@localhost, и этот пароль был выбран при первой установке. Это не пароль root системы. MySQL root и root системы — это разные учетные записи с возможными разными паролями.

Попробуйте вспомнить и попытаться угадать его, используя mysql -u root -pto try. Если не получится, поищите в Google, как удалить конфигурацию MySQL и начните заново.

решение2

MySQL по-разному обрабатывает "localhost" и "127.0.0.1"; первый используется для запуска соединения сокета Unix /var/lib/mysql/mysql.sockили чего-то еще. Поэтому вам нужны две разные GRANTинструкции в вашей mysql.userтаблице (по крайней мере, я делаю это в OpenSuSE Linux; например, в Windows ваш пробег может отличаться):

(подключение mysql как root)

GRANT ALL PRIVILEGES (*or privilege list*) ON yourdb.* TO user@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES (*or privilege list*) ON yourdb.* TO [email protected] IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Тогда очевидно, что ваш скрипт действительно пытается установить как "root@localhost". Если вы не можете редактировать скрипт или конфигурацию установщика, вы можете обойти это с помощьювременноотключение пароля root:

USE mysql;
UPDATE user SET Password = NULL WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;

...для большей безопасности,не выходите из mysqlпосле этого. После завершения установки вам придется сбросить пароль root:

GRANT ALL PRIVILEGES ON mysql.* TO root@localhost IDENTIFIED BY 'newpassword';
FLUSH PRIVILEGES;

Это не решает проблемучто делает скрипт после установки. Скорее всего, так и будет.все ещеиспользуйте root на локальном хосте ивсе ещене используйте пароль. Поэтому как только вы сбросите пароль, он перестанет работать. Вам нужно найти ссылки на root и localhost (они могут быть указаны отдельно) в конфиге скрипта: должно быть что-то вроде

user = root
host = localhost
dbname = somedb

или, может быть

'username' => 'root',
"hostaddr" => "localhost",
...

и изменить их. Вы можете создать нового пользователя в MySQL, просто выполнив новый GRANTоператор.

решение3

В обычных случаях,переполнение стекаполезно. Однако в случае конфликта разных версий пароль не может быть успешно сброшен. В этом случае, пожалуйста, переустановите mysql.Вот что я встречаю!!

Вот шаги: 1) найдите установленный mysql
# rpm -qa|grep mysql

2) удалить mysql
#rpm -e 'программа'

3) удалить lib&include
#rm -rf /usr/lib/mysql
#rm -rf /usr/include/mysql

4) удалите дату mysql или сделайте ее резервную копию.
#mv /var/lib/mysql ~/mysql_backup

5) переустановить mysql
#yum install mysql mysql-server

6) Запустите службу MySQL и попробуйте
#chkconfig mysqld on
#service mysqld start
#mysql -uroot -p
--на этом этапе, если установка прошла успешно, пароль должен быть нулевым. Просто нажмите Enter и войдите в базу данных MySQL.

Связанный контент