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