пятница, 29 октября 2010 г.
понедельник, 25 октября 2010 г.
Сброс пароля пользователя root в MySQL.
Что делать, если по ошибке отконфигурил phpmyadmin так что нельзя зайди ни через web-интерфейс ни локально? не бывает такого? Бывает.. Если к примеру при редактировании привелегий root в поле hosts allowed - указал ip машины, с которой должен идти коннект и при этом старый пользователь был удален.
При попытке локального коннекта или через phpmyadmin мы получим:
#1045 - Access denied for user 'root'@'localhost' (using password: YES)
Выход из данной ситуации:
1. Стопаем мускул
2. Запускаем MySQL сервер без проверки привилегий:
3. Смотрим что к чему привязано
#mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select host, user from user;
+---------------+------------------+
| host | user |
+---------------+------------------+
| 127.0.0.1 | root |
| 20x.4x.5x.1x | root |
| localhost | debian-sys-maint |
| localhost | schedule |
| nsxx | root |
+---------------+------------------+
5 rows in set (0.00 sec)
4. Исправляем ошибку. Разрешаем коннекты с любого хоста:
или только с локалхоста:
5. перегружаем привилегии
6.Выходим из mysql клиента выполнив в нем команду
7.Перегружаем mysql сервер.
При попытке локального коннекта или через phpmyadmin мы получим:
#1045 - Access denied for user 'root'@'localhost' (using password: YES)
Выход из данной ситуации:
1. Стопаем мускул
#/etc/init.d/mysql stop
2. Запускаем MySQL сервер без проверки привилегий:
#mysqld_safe --skip-grant-tables &
3. Смотрим что к чему привязано
#mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select host, user from user;
+---------------+------------------+
| host | user |
+---------------+------------------+
| 127.0.0.1 | root |
| 20x.4x.5x.1x | root |
| localhost | debian-sys-maint |
| localhost | schedule |
| nsxx | root |
+---------------+------------------+
5 rows in set (0.00 sec)
4. Исправляем ошибку. Разрешаем коннекты с любого хоста:
update user set host=’%’ where user=’root’ and host=’20x.4x.5x.1x’;
или только с локалхоста:
update user set host=’localhost’ where user=’root’ and host=’20x.4x.5x.1x’;
5. перегружаем привилегии
flush privileges;
6.Выходим из mysql клиента выполнив в нем команду
exit
7.Перегружаем mysql сервер.
service mysqld restart