Tuesday, May 02, 2006

MySQL - сугубо техническое: ошибка 1045

По неизвестным науке причинам MySQL после инсталляции отказывается вопринимать пользователя root с заданным паролем. Выдается ошибка:

ERROR 1045
(28000): Access denied for user 'root'@'localhost' (using password: YES)


зачем так сделано - неизвестно :-), но проблема носит, по всей видимости повсеместный характер. Вот решение:

1) запустить сервер с опцией --skip-grant-table. Можно просто в .ini файл дописать
строку skip-grant-table

2) выполнить следующие SQL предложения:
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('your_new_password') where USER='root';
mysql> FLUSH PRIVILEGES;

3) удалить строку skip-grant-tables из ini файла и запустить сервер.

Теперь можно подключиться с новым паролем:

# mysql -u root -p
Enter password: your_new_password



3 comments:

Dima said...

На самом деле возможен ещё один вариант возникновения подобной ошибки. Если в службах Windows осталась ссылка на старую версию MySQL неправильно удалённую. Если ВЫ скажем неверно удалили MySQL 4 со старым root и пытаетесь установить MySQL 5 то при попытке установить новый root вылезет ошибка 1045. Нужно через regedit удалить службу старого MySQL перезапустить машину и новый MySQL встанет без проблем.

Xargasus said...

Дима скажи по какому запросу в regedit надо найти старую службу MySQL

Anonymous said...

сделайте одолжение , распишите детально где чего писать и где чего запускать


за 2 суток ни одной толковой и рабочей инструкции в сети так и не нашел