Как переустановить забытый пароль пользователя root
Если для MySQL пароль пользователя root никогда не устанавливался, то для соединения с сервером в качестве пользователя root пароль не потребуется. Рекомендуется всегда устанавливать пароль для каждого пользователя (cм. раздел Как обезопасить MySQL от хакеров).
Если вы забыли установленный для root пароль, то новый пароль можно задать при помощи следующей процедуры:
Остановите сервер mysqld ; для этого нужно послать kill (но не kill -9 ) серверу mysqld . Номер процесса хранится в файле '.pid', обычно расположенном в каталоге баз данных MySQL:
shell> kill 'cat /mysql-data-directory/hostname.pid'
Чтобы выполнить эту команду, необходимо быть либо Unix-пользователем root , либо пользователем, под которым работает mysqld .
Перезапустите mysqld с опцией --skip-grant-tables .
Установите новый пароль с помощью команды mysqladmin password :
shell> mysqladmin -u root password 'mynewpassword'
Теперь можно либо просто остановить mysqld и заново запустить его обычным способом, либо просто загрузить таблицы привилегий посредством:
shell> mysqladmin -h hostname flush-privileges
После этого можно будет соединяться, пользуясь новым паролем.
Есть и другой способ установки нового пароля - с помощью клиента mysql :
Остановите mysqld и перезапустите его с опцией --skip-grant-tables , как было описано ранее.
Соединитесь с сервером mysqld посредством:
shell> mysql -u root mysql
Выполните следующие команды из клиента mysql :
mysql> UPDATE user SET Password=PASSWORD('mynewpassword') -> WHERE User='root'; mysql> FLUSH PRIVILEGES;
После этого можно будет соединяться по новому паролю.
Остановите mysqld и запустите его заново, как обычно.
Как MySQL реагирует на переполнение диска
Когда возникает ситуация переполнения диска, MySQL реагирует следующим образом:
Для снижения остроты проблемы можно принять следующие меры:
Чтобы продолжать работу, необходимо просто освободить на диске место, достаточное для вставки всех записей.
Чтобы прервать поток, необходимо послать потоку mysqladmin kill . Поток будет аварийно прекращен, когда он в следующий раз проверит диск (в течение 1 минуты).
Учтите, что таблицу, вызвавшую ситуацию переполнения диска, могут ожидать другие потоки. Если существует несколько "блокированных" потоков, то удаление одного потока, ожидающего по причине переполнения диска, позволит продолжаться другим.
Исключение составляет использование REPAIR или OPTIMIZE , а также случай, когда индексы создаются в пакете после команды LOAD DATA INFILE или ALTER TABLE .
Все упомянутые команды могут использовать большие временные файлы, которые, если их оставить без внимания, могут вызвать большие проблемы во всей системе. Если MySQL сталкивается с переполнением диска при выполнении одной из указанных операций, то сервер удаляет большие временные файлы и отмечает таблицу как поврежденную (за исключением ALTER TABLE , для которого старая таблица остается без изменений).
1 2 3
8 8 8
| |