Как установить пароль на mysql
Перейти к содержимому

Как установить пароль на mysql

  • автор:

Как изменить (сбросить) root пароль в MySQL

Как изменить (сбросить) root пароль в MySQL

Довольно часто происходит такая ситуация, что пароль для учетной записи root в MySQL необходимо восстановить, поменять или сбросить. Хорошо, если он известен, но бывают случаи, когда пароль был утерян или неизвестен с самого начала. В данной статье пойдет речь о том, как этот пароль восстановить, имея доступ к серверу, на котором запущен mysql-server для обоих случаев, когда пароль о учетной записи root ИЗВЕСТЕН и НЕ ИЗВЕСТЕН.

Как поменять пароль root в MySQL

Если пароль root ИЗВЕСТЕН

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

В том случае, если вы пользуетесь каким-либо веб-интерфейсом, например, phpMyAdmin, то тогда вы можете пропустить пункт 1 и сразу же выполнить запрос для нужной версии MySQL (пункт 2) прямо из интерфейса phpMyAdmin (вкладка SQL).

1) Подключаемся в консоль MySQL сервера с правами root (не забываем ввести пароль, после появления соответствующего запроса):

mysql -u root -p

2) Меняем пароль для пользователя root: Для MySQL версий 5.7.6 и новее (5.7.7, 5.7.8. )

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEW_PASSWORD';

Для MySQL версий 5.7.5 и старее (5.7.4, 5.7.3. )

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NEW_PASSWORD');

NEW_PASSWORD — это пароль, который вам необходимо поменять на свой собственный.
В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:

Query OK, 0 rows affected (0.01 sec)

В том случае, если указанные выше команды по какой то причине не сработали, вы можете воспользоваться следующим запросом:

UPDATE mysql.user SET authentication_string=PASSWORD('NEW_PASSWORD'), plugin='mysql_native_password' WHERE User='root';

В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:

Query OK, 1 row affected, 1 warning (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 1

3) Перезагружаем привилегии, чтобы изменения вступили в силу:

flush privileges;

4) Для выхода из консоли MySQL сервера выполняем команду выхода:

exit;

После этого, пароль должен поменяться.

Если пароль root НЕ ИЗВЕСТЕН

Если вы не знаете текущий пароль root (потеряли, забыли) в MySQL, то придется пойти чуть более сложным путем, чем описанные действия выше: 1) Останавливаем mysqld:

sudo service mysql stop

2) Проверяем, что нет запущенных процессов mysqld:

ps -eaf|grep mysqld

Если все нормально, то вывод команды должен состоять лишь из одной строки, примерно такого содержания:

root 24902 1530 0 11:41 pts/0 00:00:00 grep --color=auto mysqld

3) Создаем каталог /var/run/mysqld для запуска mysqld в safe режиме из консоли

sudo mkdir /var/run/mysqld

4) Делаем владельцем данного каталога пользователя mysql (чтобы не было проблем с правами)

sudo chown mysql /var/run/mysqld

5) Запускаем MySQL в ручном режиме из консоли, пропуская проверку прав (опция —skip-grant-tables). А также отключаем доступ к серверу через TCP/IP (с помощью опци и —skip-networking), чтобы злоумышленник не мог воспользоваться тем, что мы отключили проверку прав пользователей. При использовании данной опции, доступ к серверу становится возможным только через localhost.

sudo mysqld_safe --skip-grant-tables --skip-networking &

В случае успешного запуска, вывод в консоли должен быть примерно таким:

# sudo mysqld_safe --skip-grant-tables --skip-networking & [1] 26152 2019-05-02T14:17:14.807620Z mysqld_safe Logging to syslog. 2019-05-02T14:17:14.815041Z mysqld_safe Logging to '/var/log/mysql/error.log'. 2019-05-02T14:17:14.856418Z mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 

6) Подключаемся из консоли к серверу mysqld и выбираем базу данных mysql:

mysql -u root mysql

7) Используем плагин mysql_native_password, иначе в некоторых случаях будем получать ошибку «ERROR 1524 (HY000): Plugin ‘auth_socket’ is not loaded«, а нам это не нужно:

update user set plugin="mysql_native_password";

Вывод в результате выполнения данной команды должен быть примерно таким:

Query OK, 0 rows affected (0.00 sec) Rows matched: 4 Changed: 0 Warnings: 0

8) Перезагружаем привилегии:

flush privileges;

9) Меняем пароль для нужного пользователя, в нашем случае это root: Для MySQL версий 5.7.6 и новее (5.7.7, 5.7.8. )

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEW_PASSWORD';

Для MySQL версий 5.7.5 и старее (5.7.4, 5.7.3. )

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NEW_PASSWORD');

NEW_PASSWORD — это пароль, который вам необходимо поменять на свой собственный.
В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:

Query OK, 0 rows affected (0.01 sec)

В том случае, если указанные выше команды по какой то причине не сработали, вы можете воспользоваться следующим запросом:

UPDATE mysql.user SET authentication_string=PASSWORD('NEW_PASSWORD'), plugin='mysql_native_password' WHERE User='root';

В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:

Query OK, 1 row affected, 1 warning (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 1

9) После чего, вводим команду exit для отключения:

exit;

10) Выключаем запущенный в ручном режиме Mysqld сервер:

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

Если все пройдет успешно, то вывод должен быть примерно таким:

2019-05-02T14:30:03.404615Z mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended [1]+ Done sudo mysqld_safe --skip-grant-tables --skip-networking

Если же команда не сработала и вы получаете вот такую (или любую другую) ошибку:

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

То можно принудительно завершить процесс с помощью следующей команды:

sudo kill `cat /var/run/mysqld/mysqld.pid`

11) Проверяем, что нет запущенных процессов mysqld:

ps -eaf|grep mysqld

Если все нормально, то вывод команды должен состоять лишь из одной строки, примерно такого содержания:

root 24902 1530 0 11:41 pts/0 00:00:00 grep --color=auto mysqld

12) Запускаем Mysql-server в нормальном режиме:

sudo service mysql start

Как изменить root пароль для MySQL

После того, как пароль root пользователя [1] MySQL установлен, его можно изменить. Наиболее простой способ следующий:

  • Подключиться по SSH к виртуальному серверу;
  • Подключиться к MySQL как пользователь root при помощи команды:
mysql –u root –p
  • Затем нажать Enter, указать пароль и снова нажать Enter;
  • Выполнить следующие команды:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); quit

После этого пароль будет изменён на newpass.

Данный способ также подходит и для изменений паролей других MySQL пользователей. Для этого в вышеуказанной команде необходимо указать пользователя, для которого меняется пароль (например, вместо root@localhostdovecot@localhost) и новый пароль.

Сброс root-пароля в случае его утери

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

  • Подключаемся к VPS с правами root.
  • Останавливаем mysql-сервер.

На Debian/Ubuntu для остановки mysql-сервера используется команда

/etc/init.d/mysql stop
service mysql stop

На CentOS/Fedora

/etc/init.d/mysqld stop
service mysqld stop

На CentOS 7

systemctl stop mariadb
  • Далее выполняем команду:
mysqld_safe --skip-grant-tables &
  • Результат выполнения команды будет примерно следующим:
[1] 5988 Starting mysqld daemon with databases from /var/lib/mysql mysqld_safe[6025]: started
  • Подключаемся к mysql с правами root. Поскольку mysql запушен в безопасном режиме, пароль для входа не требуется:
mysql -u root
  • Выбираем базу данных mysql:
use mysql;
  • Устанавливаем новый mysql root-пароль командой:
update user set password=PASSWORD("новый_root_пароль") where User='root';
  • Перезагружаем привилегии:
flush privileges;
  • Отключаемся от mysql:
quit;
  • Останавливаем и затем вновь запускаем сервер MySQL командами:

Debian/Ubuntu:

/etc/init.d/mysql stop /etc/init.d/mysql start

CentOS/Fedora

/etc/init.d/mysqld stop /etc/init.d/mysqld start
systemctl stop mariadb systemctl start mariadb
  • Пробуем подключиться к mysql с новым установленным паролем:
mysql -u root –p

На этом процесс восстановления пароля завершен.

Примечания
  1. ↑Пароль root пользователя сервера и MySQL могут отличаться друг от друга

Как изменить пароль пользователя MySQL

В этом руководстве мы покажем вам, как изменить пароль пользователя MySQL. Инструкции должны работать с любым современным дистрибутивом Linux, таким как Ubuntu 18.04 и CentOS 7.

Подготовка

В зависимости от версии сервера MySQL или MariaDB, которую вы используете в своей системе, вам нужно будет использовать разные команды для изменения пароля пользователя.

Чтобы узнать версию сервера базы данных, введите следующую команду:

mysql --version

Если в вашей системе установлен MySQL, результат будет выглядеть примерно так:

mysql Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using EditLine wrapper 

Или выведите такой вывод для MariaDB:

mysql Ver 15.1 Distrib 10.1.33-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 

Обязательно отметьте, какую версию MySQL или MariaDB вы используете. Если вы хотите получить список всех учетных записей пользователей MySQL, ознакомьтесь с этим руководством.

Как изменить пароль пользователя MySQL

Выполните следующие действия, чтобы изменить пароль пользователя MySQL:

1. Войдите в оболочку MySQL как root.

Войдите в оболочку MySQL, набрав следующую команду и при появлении запроса введите пароль root-пользователя MySQL:

mysql -u root -p

Если вы не установили пароль для пользователя root MySQL, вы можете войти в систему с помощью sudo mysql .

2. Установите пароль пользователя MySQL.

  • Введите следующие команды, если у вас MySQL 5.7.6 и новее или MariaDB 10.1.20 и новее:
ALTER USER 'user-name'@'localhost' IDENTIFIED BY 'NEW_USER_PASSWORD'; FLUSH PRIVILEGES;

Если инструкция ALTER USER вас не работает, вы можете напрямую изменить пользовательскую таблицу:

UPDATE mysql.user SET authentication_string = PASSWORD('NEW_USER_PASSWORD') WHERE User = 'user-name' AND Host = 'localhost'; FLUSH PRIVILEGES;
SET PASSWORD FOR 'user-name'@'localhost' = PASSWORD('NEW_USER_PASSWORD'); FLUSH PRIVILEGES;

Убедитесь, что вы изменили user-name на имя пользователя, для которого хотите изменить пароль. Если пользователь подключается к серверу MySQL с другого хоста, измените localhost на удаленное имя хоста или IP-адрес.

В обоих случаях, если все пойдет хорошо, вы увидите следующий результат:

Query OK, 0 rows affected (0.00 sec) 

Выйдите из командной строки MySQL, выполнив:

quit;

3. Подтвердите новый пароль.

Чтобы убедиться, что новый пароль применен правильно, введите:

mysql -u user-name -h localhost -p

Вам будет предложено ввести новый пароль пользователя. Введите его, и вы войдете на свой сервер MySQL.

Выводы

В этом руководстве вы узнали, как изменить пароль пользователя MySQL или MariaDB. Убедитесь, что новый пароль надежный и надежный, и храните его в надежном месте.

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

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

Как изменить пароль от phpMyAdmin

Изменить или сбросить пароль от пользователя phpMyAdmin можно:

  • по SSH. Этот способ подойдет, если вы забыли пароль пользователя, под которым подключаетесь к phpMyAdmin.
  • через интерфейс phpMyAdmin. Подойдет, если вы знаете пароль и вам нужно его сменить.

В статье мы расскажем про оба способа.

Для сброса пароля по SSH вам понадобится доступ к root-пользователю MySQL. Если вы потеряли root-доступ к серверу баз данных, воспользуйтесь инструкцией.

Учетная запись, под которой вы подключаетесь к phpMyAdmin, — это обычный пользователь mySQL. Ниже мы расскажем, как сменить забытый пароль от такой учётной записи.

Как поменять пароль phpMyAdmin по SSH

Подключитесь к серверу по SSH.
Подключитесь к серверу баз данных командой:

Mysql -uroot -p’password’

Вместо password напишите пароль от root-пользователя MySQL.
Узнайте версию MySQL при помощи команды:

Mysql --version

Используйте одну из команд в зависимости от версии MySQL: 5.7.6 и выше:

ALTER USER 'username' IDENTIFIED BY 'password';

5.7.5 и ниже:

SET PASSWORD FOR 'username'@'localhost' = PASSWORD('password');

Вместо username введите имя пользователя, вместо password введите ваш новый пароль.
Перезагрузите таблицы привилегий командой:

FLUSH PRIVILEGES;

Готово, вы сменили пароль от пользователя phpMyAdmin.

Как поменять пароль в phpMyAdmin

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

Войдите в веб-интерфейс.

Перейти к списку учётных записей в phpMyAdmin

Нажмите Учетные записи пользователей:

Список учётных записей и действий в phpMyAdmin

Напротив нужного имени нажмите Редактировать привилегии:

Настройки пользователя в phpMyAdmin

Вверху страницы нажмите Изменить пароль:

Введите пароль и подтвердите его, затем нажмите Вперед: !](https://img.reg.ru/faq/20210504-kak-izmenit-parol-ot-phpmyadmin-4.png «[Установка нового пароля для пользователя в phpMyAdmin»)

Готово, пароль от учетной записи изменен.

Стандартные доступы phpMyAdmin

На облачных серверах Рег.ру с шаблонами LEMP и LAMP phpMyAdmin устанавливается автоматически. При подключении к такому серверу по SSH вы увидите приветственное окно с доступами:

Стандартные доступы к phpMyAdmin

phpMyAdmin default password

Помогла ли вам статья?

Спасибо за оценку. Рады помочь ��

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *