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.
- Введение
- Общая информация
- Требования для сброса пароля
- План сброса
- Определение версии MySQL
- Остановка сервера
- Отключение привилегий MySQL сервера
- Изменение пароля root пользователя MySQL
- Изменение пароля для MySQL 5.7.6 и новее
- Изменения пароля на MySQL 5.7.5 и позднее
- Завершение
- Восстановление привилегий и запуск сервера MySQL
- Проверка нового пароля
- Требования
- 1: Установка MySQL
- 2: Настройка MySQL
- 3: Настройка аутентификации и привилегий (опционально)
- 4: Тестирование MySQL
- Заключение
- Требования
- 1: Определение версии и остановка сервера БД
- 2: Перезапуск сервера
- Настройка MariaDB для запуска без привилегий
- Настройка MySQL для запуска без привилегий
- 3: Изменение root-пароля
- Изменение пароля в MariaDB
- Изменение пароля в MySQL
- 4: Перезапуск сервера БД в обычном режиме
- Заключение
- Требования
- 1: Определение версии базы данных и остановка сервера
- 2: Перезапуск сервера базы данных без проверки прав доступа
- Запуск MariaDB без таблиц привилегий
- Запуск MySQL без таблиц привилегий
- 3: Изменение root-пароля
- Изменение пароля MariaDB
- Изменение пароля MySQL
- 4: Восстановление настроек сервера БД и перезапуск
- Заключение
- Настройка аутентификации с помощью пароля
- SET MYSQL ROOT PASSWORD
- Как изменить пароль пользователя на новых версиях MySQL
- Настройка MySQL
- Шаг 1 – Определяем версию и останавливаем сервер базы данных.
- Шаг 4 – Запускаем сервер базы данных в штатном режиме.
- Установка MySQL 8
- //www. ezeelogin. com/kb/article/error-creating-db-user-in-mysql-8-0-335. html»>
- Автоматический запуск MySQL
- Шаг 2 – Перезапускаем сервер базы данных в режиме –skip-grant-tables
- Настройка режима –skip-grant-tables для MariaDB
- Настройка режима –skip-grant-tables для MySQL
- Шаг 3 – Изменение пароля root
- Меняем пароль root для MariaDB
- Меняем пароль 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.
Общая информация
Сбросить пароль 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.
Теперь нужно перезапустить сервер базы данных в обычном режиме.
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? От этого никто не застрахован.
Так выглядит сброс пароля на 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
Вы получите примерно такой вывод:
После этого перезапустите конфигурацию и примените изменения:
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;
Вывод данной инструкции должен выглядеть примерно так:

Для изменения метода аутентификации учётной записи 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:

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

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

Шаг 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 закончен. Теперь, необходимо внести некоторые изменения в конфигурацию установленной СУБД.
//www. ezeelogin. com/kb/article/error-creating-db-user-in-mysql-8-0-335. html»>
Автоматический запуск MySQL
Каким бы способом не был установлен MySQL, его запуск должен производиться автоматически. Чтобы убедиться в этом, необходимо набрать:
$ systemctl status mysql.service

Также, активировать 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 и запускаем базу данных в нормальном режиме.