Как переустановить забытый пароль пользователя root


Если для MySQL пароль пользователя root никогда не устанавливался, то для соединения с сервером в качестве пользователя root пароль не потребуется. Рекомендуется всегда устанавливать пароль для каждого пользователя (Как обезопасить MySQL от хакеров).

Если вы забыли установленный для root пароль, то новый пароль можно задать при помощи следующей процедуры:

  1. Остановите сервер mysqld; для этого нужно послать kill (но не kill -9) серверу mysqld. Номер процесса хранится в файле .pid, обычно расположенном в каталоге баз данных MySQL:

    shell> kill 'cat /mysql-data-directory/hostname.pid'
    

    Чтобы выполнить эту команду, необходимо быть либо Unix-пользователем root, либо пользователем, под которым работает mysqld.

  2. Перезапустите mysqld с опцией --skip-grant-tables.

  3. Установите новый пароль с помощью команды mysqladmin password:

    shell> mysqladmin -u root password 'mynewpassword'
    
  4. Теперь можно либо просто остановить mysqld и заново запустить его обычным способом, либо просто загрузить таблицы привилегий посредством:

    shell> mysqladmin -h hostname flush-privileges
    
  5. После этого можно будет соединяться, пользуясь новым паролем.

Есть и другой способ установки нового пароля - с помощью клиента mysql:

Остановите mysqld и перезапустите его с опцией --skip-grant-tables, как было описано ранее.

  1. Соединитесь с сервером mysqld посредством:

    shell> mysql -u root mysql
    
  2. Выполните следующие команды из клиента mysql:

    mysql> UPDATE user SET Password=PASSWORD('mynewpassword')
        -> WHERE User='root';
    mysql> FLUSH PRIVILEGES;
    
  3. После этого можно будет соединяться по новому паролю.

  4. Остановите mysqld и запустите его заново, как обычно.