MySQL сменить пароль root

Пароль пользователя root задается при установке сервера баз данных, в некоторых случаях разрешается неограниченный доступ к MySQL (например, по умолчанию на CentOS). Сменить пароль root можно выполнив скрипт mysql_secure_installation или простой запрос UPDATE c указанием пользователя и нового пароля к системной базе данных из консоли MySQL — одним из вопросов заданных системой будет вопрос о необходимости смены пароля. При этом потребуется указать актуальный пароль.

 

Если пароль root не известен, но есть доступ по ssh на сервер, пароль также можно сменить, однако для этого потребуется остановить MySQL

MySQL сменить пароль root

 

 

MySQL сменить пароль root в Debian подобных системах

Все команды выполняются от имени системного пользователя root.

Останавливаем сервер баз данных.

/etc/init.d/mysql stop

 

Запускаем его в фоновом режиме и с опцией —skip-grant-tables, пароль при этом не запрашивается и изменения данных внесены быть не могут (такие как обновление значений или удаление таблиц)

mysqld_safe —skip-grant-tables &

 

Подключаемся к MySQL от имени root

mysql -u root

 

Оказавшись в консоли MySQL выполняем последовательно несколько команд.

Используем таблицу mysql

USE mysql;

 

Устанавливаем новый пароль заменяя необходимым значением password в кавычках.

UPDATE USER SET PASSWORD=PASSWORD(«password») WHERE USER='root';

 

Обновляем данные о привилегиях:

FLUSH PRIVILEGES;

Выходим из консоли MySQL

EXIT;

 

 

MySQL сменить пароль root в CentOS

Для CentOS процедура абсолютно идентична, но для остановки сервера баз данных и его запуска используются команды для системы инициализации systemd

systemctl stop mysqld

 

mysqld_safe —skip-grant-tables &

 

mysql -u root

 

Далее в консоли сервера баз данных:

USE mysql;

UPDATE USER SET PASSWORD=PASSWORD(«password») WHERE USER='root';

FLUSH PRIVILEGES;

EXIT;

 

Запускаем MySQL

systemctl start mysqld

 

Подключаемся указывая новый пароль

mysql -u root -p


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

В частности, это позволяет подключиться от имени root тогда когда для пользователя с меньшими привилегиями исчерпан лимит подключений (в таких случаях возникает ERROR 1040 (HY000): Too many connections).