Справочното ръководство за MySQL съдържа подробни стъпки за това как да нулирате паролата за root, които са както следва:
Процедурата под Windows:
- Влезте в системата Windows, където MySQL работи като администратор.
- Спрете MySQL сървъра, ако работи. За сървър, който работи като услуга на Windows, отидете на мениджъра на услугите:
Меню Старт -> Контролен панел -> Административни инструменти -> Услуги
След това намерете услугата MySQL в списъка и я спрете.
Ако сървърът ви не работи като услуга, може да се наложи да използвате диспечера на задачите, за да го спрете принудително.
- Създайте текстов файл и поставете следните команди в него всяка на един ред:
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; FLUSH PRIVILEGES;
Save the file with any name. For this example the file will be C:\mysql-init.txt.SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
- Open a console window to get to the DOS command prompt: Start Menu -> Run -> cmd
- If MySQL is installed in C:\mysql. If MySQL is installed in another location, adjust the following commands accordingly.
At the DOS command prompt, execute this command:
C:\> C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt
Съдържанието на файла, наречен с опцията --init-file, се изпълнява при стартиране на сървъра, като се променя root паролата. След като сървърът стартира успешно, трябва да изтриете C:\mysql-init.txt.
Ако сте инсталирали MySQL с помощта на съветника за инсталиране на MySQL, може да се наложи да посочите опция --defaults-file:
C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini" --init-file=C:\mysql-init.txt
Подходящата настройка --defaults-file може да бъде намерена с помощта на Services Manager:
Меню Старт -> Контролен панел -> Административни инструменти -> Услуги
Намерете услугата MySQL в списъка, щракнете с десния бутон върху нея и изберете опцията Properties. Полето Път към изпълнимия файл съдържа настройката --defaults-file. Не забравяйте да предоставите аргумента --init-file с пълния системен път към файла, независимо от текущата ви работна директория
- Спрете MySQL сървъра, след което го рестартирайте в нормален режим отново. Ако MySQL сървърът се изпълнява като услуга, стартирайте го от прозореца на Windows Services. Ако стартирате сървъра ръчно, използвайте всяка команда, която обикновено използвате.
- Свържете се с MySQL сървъра, като използвате новата парола. Също така не забравяйте да изтриете файла mysql-init.txt, когато сте готови.
За Unix и Linux среда, процедурата за нулиране на root паролата е както следва:
- Влезте в системата Unix като root потребител на Unix или като същия потребител, като сървъра на mysqld работи.
- Намерете .pid файла, който съдържа идентификатора на процеса на сървъра. Точното местоположение и име на този файл зависят от вашата дистрибуция, име на хост и конфигурация. Често срещани местоположения са /var/lib/mysql/, /var/run/mysqld/ и /usr/local/mysql/data/. Обикновено името на файла има разширение .pid и започва с mysqld или с името на хоста на системата.
Спрете MySQL сървъра, като изпратите нормално убийство (не kill -9) на процеса mysqld, като използвате името на пътя на файла .pid в следната команда:
shell> kill `cat /mysql-data-directory/host_name.pid`
Обърнете внимание на използването на обратни отметки вместо кавички напред с командата cat; те карат изходът на cat да бъде заменен с командата kill.
- Създайте текстов файл и поставете следната команда в него на един ред:
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
Запазете файла с произволно име. За този пример файлът ще бъде ~/mysql-init.
- Рестартирайте MySQL сървъра със специалната опция --init-file=~/mysql-init:
shell> mysqld_safe --init-file=~/mysql-init &
Съдържанието на init-файла се изпълнява при стартиране на сървъра, като се променя root паролата. След като сървърът стартира успешно, трябва да изтриете ~/mysql-init.
- Рестартирайте сървъра нормално. Свържете се с MySQL сървър, като използвате новата парола.
Като алтернатива, на всяка платформа, mysql клиентът може да се използва за задаване на новата парола, въпреки че това е по-малко сигурен начин за нулиране на паролата (подробни инструкции тук):
- Спрете mysqld и го рестартирайте с опциите --skip-grant-tables --user=root (Потребителите на Windows пропускат частта --user=root).
- Свържете се със сървъра mysqld с тази команда:
shell> mysql -u root
- Издайте следните изрази в клиента mysql:
mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd') -> WHERE User='root'; mysql> FLUSH PRIVILEGES;
Заменете 'newpwd' с действителната root парола, която искате да използвате.
- Трябва да можете да се свържете с новата парола.