какой пароль mysql ubuntu по умолчанию
Как сбросить пароль пользователя root в СУБД MySQL или MariaDB на ОС Ubuntu 20.04
1665 просмотров 6 2021-03-18 2021-04-07
Введение
В этой статье мы расскажем, как можно решить проблему, когда вы забыли или потеряли пароль root от MySQL или MariaDB. Отчаиваться не стоит, так как его можно сбросить, если иметь доступ к серверу и учетную запись пользователя операционной системы с привилегиями root. Данное руководство было протестировано в операционной системе Ubuntu 20.04 на двух популярных СУБД – MySQL и MariaDB.
Шаг 1 – Определяем версию и останавливаем сервер базы данных.
Необходимы различные действия для сброса root пароля в зависимости от того, какая СУБД у нас установлена – MySQL или MariaDB. Для того, чтобы определить, какой сервер базы данных установлен в системе вводим:
Если используется MariaDB, то в выводе получим следующее: (разумеется, версия БД может меняться)
Чтобы произвести сброс root-пароля в MySQL или MariaDB, нам необходимо остановить сервер базы данных.
Для MariaDB:
Для MySQL:
После остановки базы данных производим ее перезапуск в безопасном режиме для сброса пароля root.
Шаг 2 – Перезапускаем сервер базы данных в режиме –skip-grant-tables
Настройка режима –skip-grant-tables для MariaDB
Зададим переменную окружения MYSQLD_OPTS, используемую в MariaDB при запуске:
Запустим сервер БД:
Корректность запуска сервера смотрим командой:
Теперь подключаемся к базе данных пользователем root без пароля:
Подключившись к консоли MariaDB, меняем пароль root, как показано в Шаге 3 далее.
Настройка режима –skip-grant-tables для MySQL
Чтобы запустить сервер MySQL в этом режиме, изменим конфигурацию systemd для MySQL, чтобы при запуске сервер запустился с дополнительными параметрами.
После выполнения команды будет открыт новый файл в nano-редакторе, где мы будем внесем необходимые параметры запуска сервера MySQL. Изначально файл будет пустым. Добавим следующие строки:
Нажимаем CTRL-X, чтобы выйти из файла, затем – Y, чтобы сохранить внесенные изменения. Перезагружаем systemd, чтобы перечитать изменения:
Запускаем сервер MySQL:
и подключаемся пользователем root:
Далее переходим к Шагу 3.
Шаг 3 – Изменение пароля root
Меняем пароль root для MariaDB
В строке ‘new_password’ указываем свой пароль.
Далее установим механизм аутентификации по умолчанию:
Пароль изменен. Выходим из консоли MariaDB и смотрим Шаг 4 для перезапуска сервера базы данных в штатном режиме.
Меняем пароль root для MySQL
Для MySQL выполняем следующий запрос, заменив new_password на свой пароль. MySQL позволяет использовать настраиваемые механизмы аутентификации, поэтому добавляем инструкцию, указывающую MySQL использовать механизм аутентификации по умолчанию:
Выходим из консоли MySQL и запускаем базу данных в нормальном режиме.
Шаг 4 – Запускаем сервер базы данных в штатном режиме.
Чтобы перезапустить сервер базы данных в штатном режиме, выполним следующие действия:
Для MariaDB
Удаляем переменную окружения MYSQLD_OPTS:
и перезапускаем сервер MariaDB:
Для MySQL
Удаляем все изменения конфигурации демона systemd для MySQL:
Вывод должен быть примерно таким:
Затем перезагружаем демон systemd:
После этого база данных должна перейти в нормальное состояние. Пробуем подключится к серверу базы данных пользователем root с новым паролем:
Сброс root-пароля MySQL или MariaDB в Ubuntu 18.04
Забыть пароль может каждый. Если это случилось с вашим 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 и стандартных пакетов этого дистрибутива.
Требования
Для работы вам понадобится:
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
sudo systemctl stop mysql
Остановив сервер БД, вы можете перезапустить его в безопасном режиме, чтобы сбросить root пароль.
2: Перезапуск сервера
Запуск MySQL и MariaDB без проверки привилегий позволяет получить доступ к командной строке базы данных с правами root без предоставления пароля. Для этого вам необходимо остановить загрузку таблиц привилегий БД, в которых хранятся данные о правах пользователя. Поскольку это немного опасно, вы также можете отключить сеть, чтобы другие клиенты не могли подключиться к временно уязвимому серверу.
Выполните один из следующих подразделов в зависимости от того, какой сервер баз данных вы используете.
Настройка MariaDB для запуска без привилегий
Чтобы запустить сервер MariaDB без привилегий, нужно использовать юнит-файл systemd для установки дополнительных параметров демонов сервера MariaDB.
Теперь запустите MariaDB:
sudo systemctl start mariadb
Команда не отображает никакого вывода, но она перезапустит сервер БД с учетом новых переменных.
Чтобы убедиться, что сервер запущен, введите команду:
sudo systemctl status mariadb
Теперь можно подключиться к MariaDB как пользователь root без пароля:
Вы увидите командную строку оболочки MariaDB:
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MariaDB [(none)]>
Теперь переходите к разделу 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 без пароля:
Вы увидите командную строку оболочки 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 укажите свой новый пароль, который вы запомните.
UPDATE mysql.user SET password = PASSWORD(‘new_password’) WHERE user = ‘root’;
Если пароль успешно изменен, вы увидите:
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB позволяет использовать пользовательские механизмы аутентификации. Введите следующие два оператора, чтобы убедиться, что MariaDB будет использовать механизм аутентификации по умолчанию для нового пароля, который вы только что присвоили учетной записи root:
UPDATE mysql.user SET authentication_string = » WHERE user = ‘root’;
UPDATE mysql.user SET plugin = » WHERE user = ‘root’;
Query OK, 0 rows affected (0.01 sec)
Rows matched: 1 Changed: 0 Warnings: 0
Пароль изменен. Введите exit, чтобы выйти из консоли MariaDB и перейдите к разделу 4, чтобы перезапустить сервер базы данных в обычном режиме.
Изменение пароля в MySQL
В MySQL выполните следующий оператор, чтобы изменить пароль пользователя root. Вместо new_password нужно указать новый надежный пароль, который вы запомните:
UPDATE mysql.user SET authentication_string = PASSWORD(‘new_password’) WHERE user = ‘root’;
Если пароль успешно изменен, вы увидите:
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MySQL позволяет использовать пользовательские механизмы аутентификации. Введите следующий оператор, чтобы убедиться, что MySQL будет использовать механизм аутентификации по умолчанию для нового пароля, который вы только что присвоили учетной записи root:
UPDATE mysql.user SET plugin = ‘mysql_native_password’ WHERE user = ‘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 и MariaDB. Убедитесь, что новый пароль, который вы выбрали, является достаточно надежным и безопасным, и храните его в надежном месте.
Больше дополнительной информации об управлении пользователями, механизмах аутентификации или способах сброса пароля БД в других версиях СУБД можно найти в официальной документации MySQL и MariaDB.
MySQL
Содержание
MySQL — свободная СУБД для малых и средних приложений. Входит в состав LAMP и XAMPP.
Версии MySQL в Ubuntu
Установка
MySQL есть в репозиториях Ubuntu. Он разбит на несколько пакетов.
Для того чтобы установить MySQL сервер выполните команду:
При установке конфигурационный скрипт запросит пароль для администратора (root) базы данных.
Для того чтобы установить консольный клиент MySQL выполните команду:
Для того чтобы установить модуль для работы с MySQL в PHP выполните команду:
Настройка
Конфигурация сервера MySQL содержится в файле /etc/mysql/my.cnf.
Доступ к серверу из сети
По умолчанию сервер MySQL принимает соединения только с локальной машины. Для того, чтобы разрешить подключаться к нему с других машин замените строку
Кодировки
В связи с этим, даже используя при работе с сервером команду
и используя при создании таблиц
невозможно добиться полной поддержки кодировки utf8:
Кодировка по-умолчанию все равно останется latin1, что неудобно и может привести к ошибкам.
Чтобы сервер сразу загружался с нужной кодировкой, необходимо отредактировать файл /etc/mysql/my.cnf:
В секцию [mysqld] добавьте следующие строки:
Так же желательно установить кодировку для клиента и mysqldump. Для этого в секциях [client] и [mysqldump] необходимо добавить строчку:
Перезагрузите сервер MySQL:
После этого список переменных будет выглядеть так:
Администрирование
Установка root пароля
Восстановление забытого пароля для root’a
Схожая проблема возникает если не задать пароль при установке MySQL, в этом случае mysql использует плагин unix-socket.
Подключитесь к MySQL-серверу командой:
Обновите пароль для root’a:
Параметр | Описание | Пример |
---|---|---|
-u | Пользователь, от лица которого будет производится дамп баз данных. | -uroot |
-p |
Отключение и включение автозагрузки сервиса
Начиная с версии Ubuntu 15.04 отключение и включение сервисов возможно одной командой, без редактирования конфигов. В примерах команд ниже слово «SERVICE» следует заменить на «mysql».
Узнать стоит ли сервис в автозагрузке:
Убрать сервис из автозагрузки в Ubuntu-16.04:
Добавить сервис в автозагрузку в Ubuntu-16.04:
MySQL Workbench
MySQL Workbench – инструмент для визуального проектирования баз данных. MySQL Workbench существует в двух вариантах:
Пароль по умолчанию для MySQL-сервера в Ubuntu 16.04
Вы можете найти следующие строки там
введите пароль от Debian.КНФ
—Обновление—
Иногда вам нужно будет перезагрузить ваш сервер MySQL.
MySQL по умолчанию имеет пользователя root’ы аутентификации плагинов как auth_socket, которая требует, чтобы система имя пользователя и имя пользователя БД должны быть одинаковыми.
Если у вас нет корневого узла, я думаю, вы не должны войти в MySQL как root?
Надеюсь, что это помогает
Вот что я сделал, чтобы решить мою проблему с root пароль:
Я также проверил следующее (вместо my_username дело ваше):
что побудило меня выбрать новый пароль root. Я надеюсь, что это помогает
обратите внимание, что в системах Ubuntu работает с MySQL 5.7 (и более поздних версий), корневого пользователя MySQL настроен для проверки подлинности с помощью плагина auth_socket по умолчанию, а не с паролем. вам придется поменять способ проверки подлинности от auth_socket в mysql_native_password
как @BeNiza сказал, Они изменили модель безопасности. Я сделал следующие действия, и это работает для MySQL 5.7.27 на Ubuntu 18.04
судо АПТ установки MySQL-сервера
Программное обеспечение базы данных MySQL установлен, но его настройка еще не завершена.
Для безопасной установки СУБД MySQL поставляется со скриптом, который будет спрашивать, хотим ли мы изменить некоторые небезопасные по умолчанию. Инициировать скрипт, введя:
вы должны нажать г введите ключ в каждой строке.
это приведет к проблемам, если вы используете слабый пароль
Вы можете просто войти в ваш MySQL как root без предоставления каких-либо паролей, добавляя sudo перед вашей командой MySQL.
слова MySQL> возраст пользователя ‘корне’@’локальный’ отождествляется с mysql_native_password по ‘ваш-пароль’;
Если поставить слабый пароль, вы увидите следующее сообщение об ошибке:
ошибка 1819 (HY000): Ваш пароль не удовлетворяет современным требованиям политики
слова MySQL> привилегии врезная;
После ввода пароля вы только установить, вы увидите приглашение MySQL.
Пароль по умолчанию mysql на сервере ubuntu 16.04
ОТВЕТЫ
Ответ 1
Ответ 2
Если у вас нет рута на хосте, я полагаю, вам не разрешено входить в mysql как root?
Ответ 3
Вы можете найти следующие строки там
введите пароль от debian.cnf
—Update—
Иногда вам нужно будет перезапустить ваш сервер MySQL.
Ответ 4
Ответ 5
Ответ 6
Надеюсь это поможет
Ответ 7
Вот что я сделал для решения моей проблемы с паролем root:
Я также запускал следующее (вместо my_username put yours):
который побудил меня выбрать новый пароль root. Я надеюсь, что это помогает
Ответ 8
Просто запустите sudo dpkg-reconfigure mysql-server-5.7
Ответ 9
Обратите внимание, что в системах Ubuntu, работающих под управлением MySQL 5.7 (и более поздних версий), корневой пользователь MySQL настроен на аутентификацию с использованием плагина auth_socket по умолчанию, а не с паролем. вам нужно будет переключить метод аутентификации с auth_socket на mysql_native_password
как сказал @BeNiza, они изменили модель безопасности. Я сделал следующие шаги, и это работает для MySQL 5.7.27 на Ubuntu 18.04
sudo apt install mysql-server
Программное обеспечение базы данных MySQL установлено, но его настройка еще не завершена.
Чтобы обезопасить установку, MySQL поставляется со скриптом, который спрашивает, хотим ли мы изменить некоторые небезопасные значения по умолчанию. Запустите сценарий, набрав:
Вы должны нажать Y и нажимать клавишу ENTER при каждом запросе.
Это приведет к проблемам, если вы используете слабый пароль
Вы можете просто войти в свой mysql как пользователь root без указания пароля, добавив sudo перед вашей командой mysql.
mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘your-password’;
Если вы установите слабый пароль, вы увидите следующую ошибку:
ОШИБКА 1819 (HY000). Ваш пароль не соответствует требованиям текущей политики
mysql> FLUSH PRIVILEGES;
После ввода пароля, который вы только что установили, вы увидите приглашение MySQL.