24-10-2013
УСТАНОВКА, ИЗМЕНЕНИЕ И СБРОС ПАРОЛЯ ROOT В MYSQL

Снова и снова я наблюдаю одну и ту же картину: mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: YES)'. Если вы ищете быстрое решение проблемы по сбросу пароля root, можете найте его в конце данного руководства.

mysqladmin - команда, при помощи которой меняется пароль root в MySQL

Если вы никогда не устанавливали пароль root в MySQL, сервер не будет требовать пароля root для подключения к вашим базам данных.

Метод 1. Установка пароля root в первый раз.

Чтобы впервые установить пароль MySQL используйте в консоли команду mysqladmin как показано далее:

$ mysqladmin -u root password newpass

где newpass будет пароль который вы устанавливаете.

Для изменения (обновления) пароля root воспользуйтесь следующей командой:

$ mysqladmin -u root -p oldpassword newpass

где oldpassword - ваш старый пароль, а newpassword соотвественно новый. Если же вы в ответ получили следующее сообщение:

mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: YES)'

то это означает, что пароль вы попросту забыли, либо его сменил кто-то другой. Воспользуйтесь следующей инструкцией для восстановления пароля к вашему MySQL.

Изменения пароля MySQL для других пользователей.

Для изменения пароля обычного пользователя введите следующую команду:

$ mysqladmin -u user-name -p oldpassword newpass

где user-name - имя пользователя для которого вы меняете пароль.

Метод 2 - Обновление или изменение пароля.

MySQL хранит имена пользователей и пароли в таблице пользователей внутри базы данных. Вы можете обновить пароль используя следующий метод: Залогиньтесь в MySQL и введите следующую команду:

$ mysql -u root -p /code>

2. Начните работу с базой данных. В качестве приглашения для ввода команд вначале строки у вас должно быть mysql>

mysql> use mysql;

3. Смените пароль пользователя

mysql> update user set password=PASSWORD("newpass") where User='ENTER-USER-NAME-HERE';

4. Перегрузите привелегии и отлогиньтесь

mysql> flush privileges;
mysql> quit

Этот метод применим в случае использования на вашем сервере PHP и скриптов Perl.

Восстановление пароля root в MySQL.

Вы можете восстановить пароль от баз данных MySQL если повторите следующие 5 шагов:

  • Остановите демон MySQL.
  • Запустите демон MySQL (mysqld) с опцией --skip-grant-tables, т.к. в этом случае пароль не запрашивается .
  • Подключитесь к серверу MySQL c root-привелегиями
  • Введите новый пароль.
  • Выйдите и перегрузите демон MySQL.

Далее приводятся команды, которые необходимо использовать для каждого шага, при условии, что вы вошли в систему с root-привелегиями.

Останавливаем службу MySQL:

# /etc/init.d/mysql stop
Stopping MySQL database server: mysqld.

2. Запускаем службу с опцией --skip-grant-tables

# mysqld_safe --skip-grant-tables &

Должен быть следующий вывод:

[1] 5988
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[6025]: started

3. Подключаемся с серверу MySQL при помощи клиента mysql:

# mysql -u root

Вывод:

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.15-Debian_1-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

4. Вводим новый пароль для root:

mysql> use mysql;
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit

5. Останавливаем сервер MySQL:

# /etc/init.d/mysql stop

Вывод:

Stopping MySQL database server: mysqld
STOPPING server from pid file /var/run/mysqld/mysqld.pid
mysqld_safe[6186]: ended

[1]+ Done                    mysqld_safe --skip-grant-table

Запускаем MySQL-сервер и логинимся с новым паролем:

# /etc/init.d/mysql start
# mysql -u root -p
Класс!
Яндекс.Метрика
Копирование возможно при указании прямой индексируемой гиперссылки