Ubuntu mysql пароль root по умолчанию

Техника



mysql> flush privileges;

mysql  Ver 8.0.31-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))

mysql  Ver 15.1 Distrib 5.5.68-MariaDB, for Linux (x86_64) using readline 5.1

Restart the MYSQL server and continue installing Ezeelogin


MySQL – система управления базами данных (СУБД), используемая чаще всего в веб-разработке, но и не только там. MySQL является, наверное, одной из самых распостранённых СУБД. Её сильные стороны – быстрота, надёжность, универсальность. Ниже о том, как MySQL можно установить на сервер Ubuntu 20.04.

Содержание
  1. Введение
  2. Общая информация
  3. Требования для сброса пароля
  4. План сброса
  5. Определение версии MySQL
  6. Остановка сервера
  7. Отключение привилегий MySQL сервера
  8. Изменение пароля root пользователя MySQL
  9. Изменение пароля для MySQL 5.7.6 и новее
  10. Изменения пароля на MySQL 5.7.5 и позднее
  11. Завершение
  12. Восстановление привилегий и запуск сервера MySQL
  13. Проверка нового пароля
  14. Требования
  15. 1: Установка MySQL
  16. 2: Настройка MySQL
  17. 3: Настройка аутентификации и привилегий (опционально)
  18. 4: Тестирование MySQL
  19. Заключение
  20. Требования
  21. 1: Определение версии и остановка сервера БД
  22. 2: Перезапуск сервера
  23. Настройка MariaDB для запуска без привилегий
  24. Настройка MySQL для запуска без привилегий
  25. 3: Изменение root-пароля
  26. Изменение пароля в MariaDB
  27. Изменение пароля в MySQL
  28. 4: Перезапуск сервера БД в обычном режиме
  29. Заключение
  30. Требования
  31. 1: Определение версии базы данных и остановка сервера
  32. 2: Перезапуск сервера базы данных без проверки прав доступа
  33. Запуск MariaDB без таблиц привилегий
  34. Запуск MySQL без таблиц привилегий
  35. 3: Изменение root-пароля
  36. Изменение пароля MariaDB
  37. Изменение пароля MySQL
  38. 4: Восстановление настроек сервера БД и перезапуск
  39. Заключение
  40. Настройка аутентификации с помощью пароля
  41. SET MYSQL ROOT PASSWORD
  42. Как изменить пароль пользователя на новых версиях MySQL
  43. Настройка MySQL
  44. Шаг 1 – Определяем версию и останавливаем сервер базы данных.
  45. Шаг 4 – Запускаем сервер базы данных в штатном режиме.
  46. Установка MySQL 8
  47. //www. ezeelogin. com/kb/article/error-creating-db-user-in-mysql-8-0-335. html»>
  48. Автоматический запуск MySQL
  49. Шаг 2 – Перезапускаем сервер базы данных в режиме –skip-grant-tables
  50. Настройка режима –skip-grant-tables для MariaDB
  51. Настройка режима –skip-grant-tables для MySQL
  52. Шаг 3 – Изменение пароля root
  53. Меняем пароль root для MariaDB
  54. Меняем пароль root для MySQL

Введение

В этой статье мы расскажем, как можно решить проблему, когда вы забыли или потеряли пароль root от MySQL или MariaDB. Отчаиваться не стоит, так как его можно сбросить, если иметь доступ к серверу и учетную запись пользователя операционной системы с привилегиями root. Данное руководство было протестировано в операционной системе Ubuntu 20.04 на двух популярных СУБД – MySQL и MariaDB.

Важно: В версии Ubuntu 20.04 дефолтная конфигурация MySQL или MariaDB позволяет получить доступ к базе данных (с правами администратора) без ввода пароля, если мы устанавливаем соединение с сервером БД под пользователем root . В этом случае нам нет необходимости сбрасывать пароль. Чтобы проверить была ли конфигурация аутентификации по умолчанию изменена,  вводим команду sudo mysql. Если получаем ошибку access denied, то прибегаем к действиям, указанным с статье.

If during the installation process, you accidentally put a password in and don’t remember, here is how to reset the password:

  • Stop the MySQL server if it is running, then restart it with the –skip-grant-tables option.
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
  • Then connect to the MySQL Server using the mysql client:
  • Then run this command to reload the grant tables:
  • Now you can be able to set a new password for the root account:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

It’s done, stop the server and restart it normally. Now you can connect to the MySQL Server with the new password.


Need a good GUI Tool for MySQL? TablePlus is a modern, native tool with an elegant UI that allows you to simultaneously manage multiple databases such as MySQL, PostgreSQL, SQLite, Microsoft SQL Server and more.


Download TablePlus for Mac. It’s free anyway!

Not on Mac? Download TablePlus for Windows.

On Linux? Download TablePlus for Linux

Need a quick edit on the go? Download TablePlus for iOS.

TablePlus GUI Tool MySQL

Общая информация

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

Требования для сброса пароля

  • Локальный доступ или подключение по SSH к серверу на Ubuntu Linux.
  • Предустановленная система СУБД MySQL с отсутствующим доступом.

План сброса

Определение версии MySQL

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

Для определения версии MySQL в терминале достаточно ввести команду:

mysql --version

Должен появится похожий вывод:

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

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

Остановка сервера

Для отключения привилегий нужно остановить сервер MySQL, введя в терминале команду:

sudo systemctl stop mysql

После выполнения команды процесс сервера MySQL будет приостановлен.

Отключение привилегий MySQL сервера

Для начала создаётся конфигурационный файл, который изменяет параметры запуска MySQL. Для этого нужно ввести в терминале команду:

sudo systemctl edit mysql

В созданный текстовой файл нужно внести следующие строки, которые ограничат загрузку Grant-таблиц и запретят выход в сеть (для обеспечения безопасности):

[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid --skip-grant-tables --skip-networking

Для сохранения изменений в файле нужно нажать «CTRL+X», потом «Y» и подтвердить изменения нажатием «Enter».

Для применения изменений в процессе загрузки MySQL, нужно обновить конфигурацию Systemd командой:

sudo systemctl daemon-reload

Остаётся запустить сервер MySQL с отключенными привилегиями. Для этого в терминале вводится команда:

sudo systemctl start mysql

Изменение пароля root пользователя MySQL

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

Для выполнения входа в консоль MySQL нужно ввести команду:

sudo mysql -u root

Авторизация должна пройти без введения пароля.

Для того чтобы сменить пароль пользователя root, нужно загрузить Grant-таблицы, введя команду в терминал MySQL:

FLUSH PRIVILEGES;

Изменение пароля для MySQL 5.7.6 и новее

Смена пароля root пользователя в консоли MySQL выполняется последовательным введением следующих команд:

UPDATE mysql.user SET authentication_string = PASSWORD('MY_NEW_PASSWORD')

WHERE User = 'root';

FLUSH PRIVILEGES;

Вместо «MY_NEW_PASSWORD» вводится собственный пароль. Не стоит забывать о безопасности и ставить лёгкие пароли, так как это сыграет на руку злоумышленникам.

Изменения пароля на MySQL 5.7.5 и позднее

Нужно последовательно ввести следующие команды:

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

FLUSH PRIVILEGES;

В поле «MY_NEW_PASSWORD» вводится собственный пароль.

Завершение

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

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

Восстановление привилегий и запуск сервера MySQL

После изменения пароля необходимо восстановить параметры загрузки сервера MySQL, удалив конфигурацию Systemd. Для этого в терминале последовательно вводятся команды:

sudo systemctl revert mysql

sudo systemctl daemon-reload

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

sudo systemctl restart mysql

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

Проверить новый пароль можно, выполнив вход в консоль MySQL от имени root пользователя:

mysql -u root -p




2 мая, 2020 11:36 дп

MySQL – это открытая система управления базами данных, которая является частью стека LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Для управления данными реляционная система MySQL использует SQL (Structured Query Language).

Данный мануал поможет установить версию MySQL 8 на сервер Ubuntu 20.04. В результате вы получите рабочую БД, которую вы сможете использовать для хранения данных сайта или приложения.

Требования

Для работы вам понадобится сервер Ubuntu 20.04 с настроенным пользователем sudo и брандмауэром UFW. Все необходимые инструкции можно найти в мануале по начальной настройке сервера.

1: Установка MySQL

В Ubuntu 20.04 можно установить MySQL с помощью пакетного менеджера APT. На момент написания мануала в стандартном репозитории системы доступна версия MySQL 8.0.19. Прежде чем установить ее, обновите индекс локальных пакетов:

sudo apt update

Чтобы установить пакет mysql-server, введите:

sudo apt install mysql-server

Эта команда установит MySQL, но не предложит вам установить пароль или внести какие-либо изменения в настройки. На данный момент ваша установка не защищена, и это нужно исправить.

2: Настройка MySQL

Запустите этот сценарий:

После этого сценарий задаст вам ряд вопросов и на основе ваших ответов изменит конфигурацию СУБД. Сначала он предложит настроить Validate Password Plugin, который проверяет надежность вашего пароля.

Если вы решите настроить Validate Password Plugin, сценарий предложит выбрать уровень проверки пароля. Наивысший уровень можно включить, нажав 2; тогда ваш пароль должен будет включать минимум 8 символов, среди которых должны быть буквы в верхнем и нижнем регистре, цифры и специальные символы.

После настройки Validate Password Plugin сценарий предложит выбрать root-пароль MySQL. Введите надежный пароль и подтвердите его:

Please set the password for root here.
New password:
Re-enter new password:

Если вы включили Validate Password Plugin, сценарий оценит сложность вашего пароля согласно выбранному уровню. После этого сценарий уточнит, хотите ли вы оставить этот пароль или выбрать новый. Чтобы продолжить работу, не меняя пароль, нажмите у:

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

3: Настройка аутентификации и привилегий (опционально)

Чтобы использовать пароль для аутентификации root пользователя MySQL, вам необходимо переключить метод аутентификации с auth_socket на другой плагин, например на caching_sha2_password или mysql_native_password. Для этого откройте командную строку MySQL:

Дополнительно:  Как поставить запятую на клавиатуре компьютера или ноутбука?

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

Вместо password выберите надежный пароль. Имейте в виду: этот пароль заменит тот пароль, что вы выбрали в разделе 2.

Затем запустите FLUSH PRIVILEGES, чтобы перезагрузить таблицы привилегий и применить новые настройки:

Проверьте метод аутентификации пользователей, чтобы убедиться, что root больше не поддерживает плагин auth_socket:

Как видите, теперь корневой пользователь MySQL аутентифицируется с помощью caching_sha2_password. После этой проверки вы можете выйти из оболочки MySQL:

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

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

mysql -u root -p

Создайте нового пользователя и выберите для него надежный пароль:

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

Обратите внимание, на этом этапе вам не нужно снова запускать команду FLUSH PRIVILEGES. Она необходима только при изменении таблиц привилегий с помощью операторов INSERT, UPDATE или DELETE. Поскольку вы создали нового пользователя, а не меняли уже существующего, FLUSH PRIVILEGES здесь не нужна.

После этого выйдите из оболочки MySQL:

А сейчас давайте проверим установку MySQL.

4: Тестирование MySQL

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

systemctl status mysql.service

Вы увидите такой вывод:

mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-04-21 12:56:48 UTC; 6min ago
Main PID: 10382 (mysqld)
Status: "Server is operational"
Tasks: 39 (limit: 1137)
Memory: 370.0M
CGroup: /system.slice/mysql.service
└─10382 /usr/sbin/mysqld

Если сервис MySQL почему-то не запущен, запустите его:

sudo systemctl start mysql

Чтобы подключиться к MySQL как root (-u root), ввести пароль (-p) и запросить версию, используйте такую команду:

Эта команда вернет:

Такой вывод значит, что MySQL работает.

Заключение

Теперь вы умеете выполнять базовую установку и настройку MySQL.

Много полезной информации о MySQL вы найдете в официальной документации.

Tags: MySQL, SQL, Ubuntu, Ubuntu 20.04






15 октября, 2018 12:02 пп

MariaDB, mySQL, Ubuntu

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

Примечание: Обычно в новых установках Ubuntu 18.04 конфигурация MySQL или MariaDB по умолчанию позволяет вам получить доступ к базе данных (с полными правами администратора) без пароля, если подключаться с системной учетной записи root. В этом случае сбрасывать пароль не нужно. Прежде чем приступать к восстановлению root-пароля базы данных, попробуйте обратиться к базе данных с помощью команды sudo mysql. Если это приведет к ошибке access denied, приступайте к выполнению мануала.

В этом мануале вы узнаете, как сбросить root пароль базы данных MySQL и MariaDB, установленных с помощью менеджера пакетов apt в Ubuntu 18.04. Процедура изменения пароля и конфигурация systemd по умолчанию в MySQL и MariaDB отличаются. Инструкции в этом мануале могут подойти и для других версий системы и БД, но они составлены и протестированы специально для Ubuntu 18.04 и стандартных пакетов этого дистрибутива.

Требования

Для работы вам понадобится:

  • Сервер Ubuntu 18.04, настроенный по этому мануалу.
  • Система управления базами данных MySQL или MariaDB. Инструкции по установке можно найти в мануале Установка MySQL в Ubuntu 18.04.

1: Определение версии и остановка сервера БД

Ubuntu 18.04 использует MySQL или MariaDB, популярный форк, полностью совместимый с MySQL. В зависимости от СУБД вам придется использовать разные команды для восстановления root пароля. На данном этапе важно определить, какой сервер баз данных вы используете.

Введите такую команду:

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

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

Если у вас MySQL, вы увидите:

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

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

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

sudo systemctl stop mariadb

Для MySQL введите:

sudo systemctl stop mysql

Остановив сервер БД, вы можете перезапустить его в безопасном режиме, чтобы сбросить root пароль.

2: Перезапуск сервера

Запуск MySQL и MariaDB без проверки привилегий позволяет получить доступ к командной строке базы данных с правами root без предоставления пароля. Для этого вам необходимо остановить загрузку таблиц привилегий БД, в которых хранятся данные о правах пользователя. Поскольку это немного опасно, вы также можете отключить сеть, чтобы другие клиенты не могли подключиться к временно уязвимому серверу.

Выполните один из следующих подразделов в зависимости от того, какой сервер баз данных вы используете.

Настройка MariaDB для запуска без привилегий

Чтобы запустить сервер MariaDB без привилегий, нужно использовать юнит-файл systemd для установки дополнительных параметров демонов сервера MariaDB.

Выполните следующую команду, которая устанавливает переменную среды MYSQLD_OPTS, используемую MariaDB при запуске. Параметры -skip-grant-tables и -skip-network указывают, что MariaDB запускается без таблиц привилегий и сетевых функций:

sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking"

Теперь запустите MariaDB:

sudo systemctl start mariadb

Команда не отображает никакого вывода, но она перезапустит сервер БД с учетом новых переменных.

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

sudo systemctl status mariadb

Теперь можно подключиться к MariaDB как пользователь root без пароля:

sudo mysql -u root

Вы увидите командную строку оболочки MariaDB:

Теперь переходите к разделу 3.

Настройка MySQL для запуска без привилегий

Чтобы запустить сервер MySQL без таблиц привилегий, нужно изменить конфигурацию systemd MySQL и передать серверу дополнительные параметры командной строки при запуске.

Для этого выполните следующую команду:

sudo systemctl edit mysql

Эта команда откроет новый файл в редакторе nano, который можно использовать для управления переопределений MySQL. Они изменяют параметры сервиса MySQL по умолчанию. Этот файл будет пустым, в него нужно вставить следующий контент:

Первый оператор ExecStart очищает значение по умолчанию, а второй предоставляет systemd новую команду запуска с параметрами для отключения загрузки таблиц привилегий и сетевых функций.

Нажмите CTRL-Х, чтобы выйти из файла, затем Y, чтобы сохранить изменения, и ENTER, чтобы подтвердить имя файла.

Перезагрузите конфигурацию systemd, чтобы применить эти изменения:

sudo systemctl daemon-reload

Запустите сервер MySQL:

sudo systemctl start mysql

Команда не отображает никакого вывода, но она перезапустит сервер БД с учетом новых конфигураций.

Теперь можно подключиться к БД как пользователь root без пароля:

sudo mysql -u root

Вы увидите командную строку оболочки MySQL:

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

Теперь можно сбросить утраченный пароль.

3: Изменение root-пароля

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

Чтобы перезагрузить таблицы, введите команду FLUSH PRIVILEGES.

Теперь вы можете изменить root-пароль. Дальнейшие действия зависят от того, какую СУБД вы используете, MariaDB или MySQL.

Изменение пароля в MariaDB

Если вы используете MariaDB, выполните следующую команду, чтобы установить пароль учетной записи root. Вместо new_password укажите свой новый пароль, который вы запомните.

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

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

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

Вы увидите вывод:

Query OK, 0 rows affected (0.01 sec)
Rows matched: 1  Changed: 0  Warnings: 0

Пароль изменен. Введите exit, чтобы выйти из консоли MariaDB и перейдите к разделу 4, чтобы перезапустить сервер базы данных в обычном режиме.

Изменение пароля в MySQL

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

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

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

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

Вы увидите вывод:

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

Пароль изменен. Введите exit, чтобы выйти из консоли MySQL.

Дополнительно:  Root beer изи что за вкус

Теперь нужно перезапустить сервер базы данных в обычном режиме.

4: Перезапуск сервера БД в обычном режиме

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

В MariaDB отключите переменную среды MYSQLD_OPTS, которую вы установили ранее:

sudo systemctl unset-environment MYSQLD_OPTS

Теперь перезапустите сервис с помощью systemctl:

sudo systemctl restart mariadb

В MySQL удалите измененные конфигурации systemd.

sudo systemctl revert mysql

Вы увидите такой вывод:

Removed /etc/systemd/system/mysql.service.d/override.conf.
Removed /etc/systemd/system/mysql.service.d.

Обновите конфигурации systemd:

sudo systemctl daemon-reload

А затем перезапустите сервис:

sudo systemctl restart mysql

Теперь БД работает в нормальном режиме. Убедитесь, что новый пароль работает:

mysql -u root -p

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

Заключение

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

Больше дополнительной информации об управлении пользователями, механизмах аутентификации или способах сброса пароля БД в других версиях СУБД можно найти в официальной документации MySQL и MariaDB.

Tags: MariaDB, MySQL, Ubuntu, Ubuntu 18.04






15 марта, 2021 12:03 пп

MariaDB, mySQL, Ubuntu

Забыли root пароль от своей базы данных MySQL или MariaDB? От этого никто не застрахован.

Повышение безопасности клиента OpenSSH в Ubuntu

Так выглядит сброс пароля на MySQL

Если эта неприятность случилась с вами, вы все равно можете получить доступ к БД и сбросить пароль – для этого понадобится доступ к серверу и учетная запись пользователя с привилегиями sudo.

В этом руководстве мы поможем вам сбросить root пароль MySQL и MariaDB, установленных с помощью apt в Ubuntu 20.04. Процедура изменения пароля root зависит от системы управления базами данных – MySQL или MariaDB, – а также от стандартной конфигурации systemd, которая поставляется с дистрибутивом. Инструкции, описанные в этом руководстве, были протестированы в Ubuntu 20.04 и на стандартных пакетах из дистрибутива, но они могут подойти и другим версиям системы или СУБД.

Примечание: В свежих установках Ubuntu 20.04 конфигурация MySQL или MariaDB по умолчанию обычно позволяет получить полный доступ к БД (с привилегиями администратора) без ввода пароля, если соединение устанавливается из системного аккаунта root. В этом случае вы можете не сбрасывать пароль. Прежде чем приступить к сбросу root пароля базы данных, попробуйте получить доступ к БД с помощью команды sudo mysql. И только если вы получили отказ в доступе (или ранее изменили стандартную конфигурацию), выполните эти инструкции по сбросу.

Требования

Чтобы восстановить root пароль MySQL или MariaDB, вам потребуется:

  • Доступ к серверу Ubuntu 20.04, на котором работает MySQL или MariaDB, а также пользователь sudo или другой способ доступа к серверу с привилегиями root.
  • Чтобы протестировать описанные здесь методы восстановления пароля, не затрагивая ваш рабочий сервер, вы можете создать тестовый сервер и настроить его согласно этому руководству. Обязательно создайте пользователя с привилегиями sudo. Затем установите MySQL, следуя этому руководству, или MariaDB – по этим инструкциям.

Примечание: Оба руководства по установке СУБД сохраняют стандартную конфигурацию для root (которая не потребует пароля для аутентификации в БД, если вы можете получить доступ к системной учетной записи root).

1: Определение версии базы данных и остановка сервера

Ubuntu 20.04 использует либо MySQL, либо MariaDB – популярную замену, полностью совместимую с MySQL. Для восстановления пароля root нужно использовать разные команды – в зависимости от того, какую СУБД вы установили. Следуйте этому разделу, чтобы определить, какой сервер базы данных вы используете.

Чтобы узнать версию СУБД, введите:

Если вы используете MariaDB, это будет указано в выводе:

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

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

mysql  Ver 8.0.22-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))

Выяснив, какую СУБД вы используете, вы можете определить команды, которые следует выполнять в оставшейся части этого мануала.

Прежде чем менять пароль root, необходимо выключить сервер базы данных. Если вы используете MariaDB, вы можете сделать это с помощью команды:

sudo systemctl stop mariadb

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

sudo systemctl stop mysql

Остановив базу данных, вы можете перезапустить ее и сбросить утраченный пароль root.

2: Перезапуск сервера базы данных без проверки прав доступа

Режим MySQL и MariaDB без проверки привилегий позволяет получить доступ к командной строке БД с правами root, не предоставляя действительного пароля. Чтобы включить этот режим, необходимо запретить базе данных загружать таблицы привилегий, в которых хранится информация о доступе пользователей. Поскольку такой режим представляет некоторую угрозу безопасности, рекомендуем также отключить сеть, чтобы другие клиенты не смогли подключиться к временно уязвимому серверу.

Процедура запуска сервера без загрузки таблиц привилегий в MariaDB и MySQL различается.

Запуск MariaDB без таблиц привилегий

Чтобы запустить сервер MariaDB без таблиц привилегий, мы воспользуемся юнит-файлом systemd – в нем нужно установить дополнительные параметры для демона сервера MariaDB.

Выполните следующую команду, которая устанавливает переменную среды MYSQLD_OPTS, которую MariaDB использует при запуске. Параметры –skip-grant-tables и –skip-networking запустят MariaDB без загрузки таблиц привилегий или сетевых функций.

sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking"

Затем запустите сервер MariaDB:

sudo systemctl start mariadb

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

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

sudo systemctl status mariadb

Теперь вы сможете подключиться к базе данных как root пользователь MariaDB без пароля:

sudo mysql -u root

На экране сразу появится командная оболочка базы данных.

Теперь, когда у вас есть доступ к серверу базы данных MariaDB, вы можете изменить пароль root – перейдите к разделу 3.

Запуск MySQL без таблиц привилегий

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

Для этого выполните следующую команду:

sudo systemctl edit mysql

Эта команда откроет в редакторе nano новый файл, который вы будете использовать для редактирования переопределений сервиса MySQL. Они изменяют стандартные параметры MySQL.

Этот файл сейчас пуст. Добавьте в него следующие строки:

ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking

Первый оператор ExecStart сбрасывает значение по умолчанию, а второй предоставляет systemd новую команду для запуска сервиса – она содержит параметры, которые отключат загрузку таблиц привилегий и сетевые соединения.

Нажмите Ctrl-x, чтобы выйти из файла, затем y, чтобы сохранить внесенные изменения. Чтобы подтвердить имя файла, нажмите ввод.

Перезагрузите конфигурацию systemd, после чего эти изменения вступят в силу:

sudo systemctl daemon-reload

Теперь запустите сервер MySQL:

sudo systemctl start mysql

Команда не покажет на экране никаких данных, но сервер БД запустится. Таблицы привилегий и сетевые соединения буду отключены.

Подключитесь к базе данных как пользователь root:

sudo mysql -u root

Вы попадете в командную строку БД сразу, без ввода пароля.

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

3: Изменение root-пароля

Перезагрузить эти таблицы можно с помощью команды FLUSH PRIVILEGES:

Теперь вы можете изменить свой пароль root. Процедура изменения пароля также зависит от вашей СУБД.

Изменение пароля MariaDB

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

Вместо new_password нужно указать ваш новый сложный пароль:

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

Query OK, 0 rows affected (0.001 sec)

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

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

Query OK, 0 rows affected (0.01 sec)

Ваш root-пароль MariaDB изменен. Введите exit, чтобы выйти из консоли БД, и перейдите к разделу 4, чтобы перезапустить сервер БД в обычном режиме.

Изменение пароля MySQL

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

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

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

Query OK, 0 rows affected (0.01 sec)

Теперь ваш пароль изменен. Выйдите из консоли MySQL, введя exit.

Давайте перезапустим БД в нормальном рабочем режиме.

4: Восстановление настроек сервера БД и перезапуск

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

В MariaDB отключите переменную среды MYSQLD_OPTS, которую вы установили ранее:

sudo systemctl unset-environment MYSQLD_OPTS

Затем перезапустите сервис:

sudo systemctl restart mariadb

В MySQL удалите переопределения стандартных настроек systemd:

sudo systemctl revert mysql

Вы получите примерно такой вывод:

Дополнительно:  Root fail перевод

После этого перезапустите конфигурацию и примените изменения:

sudo systemctl daemon-reload

sudo systemctl restart mysql

Итак, база данных вернулась в нормальное состояние.

mysql -u root -p

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

Заключение

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

За дополнительной информацией об управлении пользователями, о механизмах аутентификации или способах сброса паролей баз данных для других версий MySQL или MariaDB обратитесь к официальной документации MySQL или MariaDB.

Tags: MariaDB, MySQL, Ubuntu 20.04


Настройка аутентификации с помощью пароля

Для аутентификации учётной записи root MySQL по умолчанию используется плагин auth_socket. Это во многом более безопасно и удобно, но может осложнять взаимодействие СУБД с внешними приложениями в случаях, когда необходимо предоставить им доступ к пользователю MySQL.

Чтобы использовать пароль для подключения к СУБД под учётной записью root нужно изменить метод аутентификации. В нашем случае это – auth_socket.

В командной строке необходимо подключиться к MySQL:

$ sudo mysql

и вывести список аккаунтов СУБД, в котором виден используемый ими метод аутентификации (колонка plugin), командой:

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

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

Пользователи MySQL

Для изменения метода аутентификации учётной записи root нужно использовать команду:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'psswd'; 

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

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'psswd';

Для применения произведённых изменений необходимо выполнить инструкцию:

mysql> FLUSH PRIVILEGES;

Проверить применение изменений можно набрав команду:

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

Выход из оболочки MySQL производится командой:

mysql> exit
$ sudo mysql

либо, если аутентификация рутовой учётной записи производится с помощью пароля:

$ mysql -u root -p

Далее, создайте нового пользователя:

mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'psswd';

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

mysql> GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;

После чего можно выйти из оболочки MySQL:

mysql> exit

SET MYSQL ROOT PASSWORD


What is Mysql default  Password?

How to set Mysql root Password?

Login to MySQL > Assign a password using Alter command > Flush the privileges to reload the grant tables in the database.

mysql> flush privileges;


  • How to Reset/Recover Mysql root Password (8v)

1. Stop Mysql Service.

2. Ensure mysqld dir exists and set the owner.

3. Start MySQL with —skip grant-tables& option

When the —skip-grant-tables option is used, anyone can connect to the database server without a password d with all privileges granted. 

4. Login without a Password.

5. Reset the Root Password


6. After Resetting make sure all MYSQL processes are stopped before starting the service again.

7. Start Mysql service


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

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

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

sudo mysql

При получении ошибки «access denied» стоит переходить к описанному выше способу – «Сброс пароля root».

Если доступ к консоли получен успешно получен, можно выполнить сброс пароля root в Ubuntu для MySQL, последовательно вводя следующие команды:

UPDATE mysql.user SET authentication_string = PASSWORD('new_password')

WHERE user = 'root';

В поле «new_password» вводится новый пароль для пользователя root.

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

FLUSH PRIVILEGES;

В случае успеха будет получен следующий вывод:

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

Настройка MySQL

Настройка заключается в изменении некоторых наиболее уязвимых опций СУБД, которые используются по умолчанию. Данное действие производится при помощи встроенного в MySQL специального скрипта:

$ sudo mysql_secure_installation

Для начала в открывшемся диалоге необходимо определить, нужно ли производить настройку компоненты валидации пароля, используемой при проверке надёжности пароля в MySQL. Если вы даёте согласие на использование валидации пароля, скрипт предложит вам установить уровень валидации, выбрав из 0 – низкий, 1 – средний, 2 – высокий:

Выбор уровня валидации пароля

На следующем шаге нужно установить пароль для учётной записи root в MySQL:

Пароль root`а MySQL

Скрипт оценит надёжность введённого пароля и запросит вашего согласия на его использование:

Оценка пароля root`а MySQL

В последующем диалоге можно использовать ответ Yes для удаления анонимных пользователей СУБД, запрещения удалённого подключения под рутовой учётной записью MySQL, удаления дефолтной БД test и для загрузки новых таблиц привилегий:

Настройка безопасности MySQL

Шаг 1 – Определяем версию и останавливаем сервер базы данных.

Необходимы различные действия для сброса root пароля в зависимости от того, какая СУБД у нас установлена – MySQL или MariaDB. Для того, чтобы определить, какой сервер базы данных установлен в системе вводим:

mysql --version

Если используется MariaDB, то в выводе получим следующее: (разумеется, версия БД может меняться)

MariaDB output
mysql Ver 15.1 Distrib 10.3.25-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
MySQL output
mysql Ver 8.0.22-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))

Чтобы произвести сброс root-пароля в MySQL или MariaDB, нам необходимо остановить сервер базы данных.

sudo systemctl stop mariadb
sudo systemctl stop mysql

После остановки базы данных производим ее перезапуск в безопасном режиме для сброса пароля root.

Шаг 4 – Запускаем сервер базы данных в штатном режиме.

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

Удаляем переменную окружения  MYSQLD_OPTS:

sudo systemctl unset-environment MYSQLD_OPTS

и перезапускаем сервер MariaDB:

sudo systemctl restart mariadb

Удаляем все изменения конфигурации демона systemd для MySQL:

sudo systemctl revert mysql

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

Output
Removed /etc/systemd/system/mysql.service.d/override.conf.
emoved /etc/systemd/system/mysql.service.d.

Затем перезагружаем демон systemd:

sudo systemctl daemon-reload

и сервер MySQL:

sudo systemctl restart mysql

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

mysql -u root -p

Успех!  Не забывайте пароли=)          

Установка MySQL 8

Первым делом, как всегда, необходимо обновить репозитории пакетов сервера:

$ sudo apt update

Теперь можно переходить к установке пакетов MySQL:

$ sudo apt install mysql-server

На момент написания статьи в репозиториях доступна версия 8.0.22. Проверить версию установленного пакета можно при помощи команды:

$ mysql -V
Версия MySQL

На этом процесс установки MySQL закончен. Теперь, необходимо внести некоторые изменения в конфигурацию установленной СУБД.

//www. ezeelogin. com/kb/article/error-creating-db-user-in-mysql-8-0-335. html»>

Автоматический запуск MySQL

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

$ systemctl status mysql.service 
Статус MySQL

Также, активировать MySQL можно командой:

$ sudo systemctl start mysql

Теперь на вашем сервере произведена базовая установка СУБД MySQL.

Шаг 2 – Перезапускаем сервер базы данных в режиме –skip-grant-tables

Запуск MySQL и MariaDB в режиме –skip-grant-tables позволяет подключиться к базе данных с правами root без пароля. Поскольку это уязвимый режим работы СУБД, рекомендуется запуск сервера БД в однопользовательском режиме .

Настройка режима –skip-grant-tables для MariaDB

Зададим переменную окружения MYSQLD_OPTS, используемую в MariaDB при запуске: 

sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking"

Запустим сервер БД:

sudo systemctl start mariadb

Корректность запуска сервера смотрим командой:

sudo systemctl status mariadb

Теперь подключаемся к базе данных пользователем root без пароля:

sudo mysql -u root

Подключившись к консоли MariaDB, меняем пароль root, как показано в Шаге 3 далее.

Настройка режима –skip-grant-tables для MySQL

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

sudo systemctl edit mysql

После выполнения команды будет открыт новый файл в nano-редакторе, где мы будем внесем необходимые параметры запуска сервера MySQL.   Изначально файл будет пустым. Добавим следующие строки:

[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking

Нажимаем CTRL-X, чтобы выйти из файла, затем – Y, чтобы сохранить внесенные изменения.   Перезагружаем systemd, чтобы перечитать изменения:

sudo systemctl daemon-reload

Запускаем сервер MySQL:

sudo systemctl start mysql

и подключаемся пользователем root:

sudo mysql -u root

Далее переходим к Шагу 3.

Шаг 3 – Изменение пароля root

Поскольку СУБД запущена в режиме –skip-grant-tables, мы имеем возможность получить доступ к серверу баз данных без пароля, но не можем выполнять запросы на изменением данных. Чтобы установить пароль root , нам необходимо перезагрузить таблицы предоставления привилегий, выполнив инструкцию:

FLUSH PRIVILEGES;

Теперь сброс пароля root в MySQL или MariaDB возможен . 

Меняем пароль root для MariaDB

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

В строке ‘new_password’ указываем свой пароль.

Output
Query OK, 0 rows affected (0.001 sec)

Далее установим механизм аутентификации по умолчанию:

UPDATE mysql.user SET authentication_string = '' WHERE user = 'root';
UPDATE mysql.user SET plugin = '' WHERE user = 'root';

Пароль изменен. Выходим из консоли MariaDB и смотрим Шаг 4 для перезапуска сервера базы данных в штатном режиме.

Меняем пароль root для MySQL

Для MySQL выполняем следующий запрос, заменив new_password на свой пароль. MySQL позволяет использовать настраиваемые механизмы аутентификации, поэтому добавляем инструкцию, указывающую MySQL использовать механизм аутентификации по умолчанию:

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'new_password';
Output
Query OK, 0 rows affected (0.01 sec)

Выходим из консоли MySQL и запускаем базу данных в нормальном режиме.

Оцените статью
Master Hi-technology
Добавить комментарий