Linux как изменить пароль пользователя mysql

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

В этом руководстве мы покажем вам, как изменить пароль пользователя 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;
  • Введите следующие команды, если у вас MySQL 5.7.5 и ранее или MariaDB 10.1.20 и ранее:

     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 .

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

Одной из важных операций при работе с пользователями в СУБД MySQL является смена пароля пользователя. Как правило изменить пароль пользователя может только суперпользователь с именем root. Однако если обычный пользователь наделен полномочиями на смену пароля то он также может это сделать.

В данной статье будет рассмотрено как изменить пароль пользователя MySQL в операционной системе Ubuntu 20.04.

Для смены пароля пользователя в MySQL присутствует несколько способов, в частности, это смена пароля при помощи команды SET PASSWORD или ALTER USER. Далее в статье будут рассмотрены все 2 способа.

Шаг 1. Как узнать версию MySQL

На данный момент (Февраль 2022 года) MySQL поддерживает две основные версии. Первая это устаревшая, но все еще поддерживая версия 5.7 и последняя актуальная версия 8.0. Для того чтобы узнать используемую версию необходимо выполнить следующую команду в терминале:

mysql --version

H4SDuG5pDxZ0AAAAAElFTkSuQmCC

В данном случае используется версия 8.0.28. Инструкция ALTER USER доступна только в современных версиях MySQL. Если у вас версия 5.x.x. то в ней следует использовать SET PASSWORD. В более новых версиях можно применять обе инструкции.

Шаг 2. Вход в консоль MySQL

Для того чтобы попасть в консоль MySQL необходимо авторизоваться при помощи логина и пароля. Если на сервере уже зарегистрирован необходимый пользователь, то вход необходимо выполнять от имени этого пользователя. Если MySQL используется впервые после установки, то входить необходимо при помощи пользователя root. Команда входа под пользователем root выглядит следующим образом (где вместо пользователя root можно использовать имя необходимого пользователя):

mysql -u root -p

A72roOCCGBR7AAAAAElFTkSuQmCC

Далее программа запросит пароль. В целях безопасности пароль не отображается в терминале. После ввода пароля необходимо нажать на клавишу Enter. После этого отобразится интерфейс консольного клиента MySQL, где можно использовать SQL команды.

Шаг 3. Просмотр хостов пользователя

В MySQL у каждой учетной записи есть свой хост, к которому данная учетная запись привязана. Есть 3 основных типа хостов в MySQL: localhost, % и IP адрес/доменное имя.

Тип записи localhost означает что под учетной записью можно входить только локально без возможности удаленного подключения, символ % (процент) означает что использовать такую учетную запись можно с любых хостов (в том числе и удаленных), IP адрес/доменное имя означает что использовать учетную запись можно только на выбранном доменном имени/IP адресе. Для того чтобы узнать тип хоста учетной записи необходимо выполнить следующий SQL запрос:

SELECT user, host FROM mysql.user;

l+rnrkS45vNSQAAAABJRU5ErkJggg==

На данном снимке экрана видно, что для пользователя alex используется хост %. Соответственно, этот хост и надо использовать при смене пароля. Пользователи в MySQL и вся информация о пользователях хранятся в базе данных mysql в таблице user.

Шаг 4. Смена пароля пользователя при помощи SET PASSWORD

Если требуется изменить пароль для пользователя root воспользуйтесь статьей Сброс пароля root в MySQL. Сменить пароль пользователя MySQL можно при помощи команды SET PASSWORD. Для того чтобы сменить пароль для пользователя alex с хостом % на somepassword666 выполните такую команду:

SET PASSWORD FOR 'alex'@'%' = 'somepassword666';

kD+vfAAAAAElFTkSuQmCC

Шаг 5. Смена пароля пользователя при помощи ALTER USER

Также установить пароль пользователя можно при помощи команды ALTER USER. Для того чтобы поменять пароль для пользователя alex с хостом % на anotherpassword666 выполните SQL запрос:

ALTER USER 'alex'@'%' IDENTIFIED BY 'anotherpassword666';

wNa8MAqBJAOIQAAAABJRU5ErkJggg==

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

Шаг 6. Сброс кэша привилегий

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

FLUSH PRIVILEGES;

XaqSQtT3osKqMmnomrat6pVVk93u24uirhLHuGeE7cMHEI0qdl0v8BT129kDTk1qwAAAAASUVORK5CYII=

Шаг 7. Проверка нового пароля

После того как пароль был изменен и кэш привилегий сброшен, необходимо проверить вход от имени пользователя чей пароль был изменен. Для этого необходимо выйти из оболочки MySQL выполнив команду exit:

exit

gDDP6UZdeVHDwAAAABJRU5ErkJggg==

Далее необходимо войти в оболочку MySQL под необходимым пользователем ведя его новый пароль. Для примера войдем под пользователем alex, чей пароль был изменен ранее:

mysql -u alex -p

weCJjTkWjPssQAAAABJRU5ErkJggg==

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

Выводы

Теперь вы знаете как выполняется смена пароля пользователя MySQL. Изменить пароль можно несколькими способами. Оба способа являются простыми и быстрыми. А каким способом предпочитаете пользоваться вы? Поделитесь об этом в комментариях!

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Бывший системный администратор и DevOps инженер. Ныне работаю по направлению DevSecOps. Использую Linux более 5 лет. Помимо Linux интересую языком программирования Python, базами данных и языком SQL а также информационной безопасностью.

At first run this command:

sudo mysql

and then you should check which authentication method of your MySQL user accounts use.So run this command

SELECT user,authentication_string,plugin,host FROM mysql.user;

now you can see something like this already :

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

in the table that is in the above , you can see that all of your mysql users accounts status & if you have set a password for root account before you see mysql_native_password in plugin column instead auth_socket.
All in all for change your root password you should run :

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Be sure to change password to a strong password of your choosing.
Then for reload your server to put your new changes into effect run this;

FLUSH PRIVILEGES;

So again check the authentication methods which has employed by your mysql , by this command:

SELECT user,authentication_string,plugin,host FROM mysql.user;

and now the output is :

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

as you can see in the grant table your root account has mysql_native_password
.
now you can exit MYSQL shell

exit;

That’s it.just you should restart mysql by sudo service mysql restart.
Now you can login to mysql as a root account with your password easily.

Понравилась статья? Поделить с друзьями: