Как узнать пароль root пользователя для базы данных MySQL в Ubuntu?
Мне достался один VPS сервер, в наследство, так скажем. Бывший владелец не выходит на связь. Как мне узнать пароль root пользователя для базы данных MySQL? Где он храниться в файловой системе Ubuntu 14.04?
Отслеживать
68k 221 221 золотой знак 79 79 серебряных знаков 221 221 бронзовый знак
задан 2 июн 2015 в 20:33
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
узнать пароль — естественно, никак (разве что бывший владелец записал его где-нибудь «для памяти»).
но можно установить свой собственный пароль. описано это в интернетах множество раз. повторю для истории:
$ sudo dpkg-reconfigure mysql-server-5.5
цифры («5.5») в вашей системе могут отличаться. в дефолтной установке работает bash-completion , поэтому, набрав всю команду вплоть до mysql-server и нажав два раза tab , вы увидите, какая именно версия пакета mysql-server установлена в вашей системе.
если с автодополнением не вышло, можно узнать версию, например, так:
$ dpkg --get-selections | grep mysql-server-
примерный вывод этой команды:
mysql-server-5.5 install mysql-server-core-5.5 install
Сброс пароля root в MySQL
Доступы к серверам и сервисам нужно тщательно хранить, никому их не передавать и не терять. Но иногда случаются ситуации, когда пароли все-таки теряются или после смены их забывают записать, восстановить такой пароль тоже нет возможности. Если вы забыли пароль от root-пользователя MySQL — не отчаивайтесь, пароль root в MySQL легко сменить.
Важно понимать, что у вас должны быть права администратора на том сервере, где установлен MySQL-сервер. Это может быть либо root-пользователь напрямую, либо доступ через sudo.
Все описанные ниже действия нужно выполнять именно на этом сервере, то есть удаленно сменить пароль от root-пользователя не удастся.
Возможности MySQL в «Облачных базах данных»
Самый простой способ для последних версий
В версиях MySQL, начиная с 5.7, можно логиниться в MySQL от root-пользователя без пароля, если системный пользователь тоже root. Это позволяет подключиться к MySQL как root-пользователь без ввода пароля, а потом изменить его. Это возможно если для пользователя root используется плагин аутентификации auth_socket.
sudo mysql
Вы подключитесь к MySQL-серверу как root-пользователь. Теперь можно сбросить пароль одной командой. Вместо 12345 укажите свой пароль:
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345';
Это самый простой способ, доступный в последних версиях MySQL при использовании плагина аутентификации auth_socket.
Сбросить пароль root в MySQL с помощью SKIP-GRANT-TABLES
В этом способе мы отключим проверку полномочий при запуске MySQL-сервера, и тогда подключиться сможет вообще любой пользователь без указания пароля. Важно, чтобы на это время сервер не был доступен по сети для внешних запросов, иначе к нему сможет подключиться любой желающий.
Для начала нужно остановить сервер:
sudo systemctl stop mysql
Теперь отредактируем service-файл, который запускает MySQL. Выполним команду:
sudo systemctl edit mysql
Откроется текстовый редактор, в котором мы можем переопределить дефолтный файл запуска. Вставим в него следующую конфигурацию:
[Service] ExecStart= ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking
Мы указываем, что сервер нужно запустить без проверки grant-таблиц, а также ограничить подключения по сети. Сохраните файл и выйдите из текстового редактора. Теперь нужно обновить конфигурацию systemd, чтобы он учитывал наш новый конфиг, а затем можно запустить сервер:
sudo systemctl daemon-reload sudo systemctl start mysql
Теперь мы можем залогиниться под учетной записью root без ввода пароля. Для этого нам даже не нужно быть root или использовать sudo:
mysql -u root
Так как мы запустили сервер без проверки полномочий, сначала нам нужно применить таблицу привилегий, чтобы мы могли записать в нее новый пароль. Вместо 12345 укажите свой пароль:
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '12345';
Выходим из MySQL и возвращаем настройки запуска по умолчанию. Для этого нам нужно удалить service-файл для systemd, перечитать конфигурацию и снова запустить сервер БД:
sudo systemctl revert mysql sudo systemctl daemon-reload sudo systemctl restart mysql
Все, мы перезапустили MySQL-сервер и теперь можем залогиниться с новым паролем.
Сбросить пароль с помощью init-file
Еще один способ — написать init-файл. Это файл, который MySQL считывает перед запуском. В нем можно указать различные команды, в том числе установить пароль любого пользователя.
Создайте простой текстовый файл, например в вашей домашней директории. Назвать его можно как угодно. Вставьте в этот файл команду для смены пароля. Вместо 12345 укажите свой настоящий пароль:
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345';
Теперь нужно остановить MySQL-сервер, чтобы при следующем запуске ему можно было указать путь к нашему init-файлу. Выполните команду:
sudo systemctl stop mysql
Теперь снова запустим сервер, при этом указав путь к созданному нами файлу:
sudo mysqld --user=mysql --init-file=/path/to/init-file &
После запуска этой команды в консоли отобразится PID этого процесса, например 7508. Значит все прошло успешно, MySQL-сервер запустился и выполнил нашу команду. Теперь нам нужно его остановить, удалить init-файл и запустить сервер обычным способом:
sudo kill -15 7508 rm /path/to/init-file sudo systemctl start mysql
Заключение
Мы рассмотрели три разных способа сброса пароля для root-пользователя. Теперь MySQL-сервер работает в стандартном режиме, а у вас есть root-доступ к базе данных.
Создание нового пользователя и настройка прав в MySQL
ALTER TABLE — изменение таблицы в SQL
Зарегистрируйтесь в панели управления
И уже через пару минут сможете арендовать сервер, развернуть базы данных или обеспечить быструю доставку контента.
Читайте также:
Инструкция
Как создать 100 серверов в облаке за минуту? Работа с OpenStack клиентом
Инструкция
Как создать веб-приложение на базе Telegram Mini Apps
Инструкция
Что делает команда chmod и как ее использовать в Linux
Как сбросить root-пароль в MySQL
Если вы забыли или потеряли пароль от сервера баз данных, его можно сбросить. Для этого вам понадобится root-доступ к серверу по SSH. Инструкция подойдет для следующих версий ПО:
- MySQL 8.0 и более ранние версии;
- Ubuntu 16.04, 18.04, 20.04.
В статье мы расскажем, как в MySQL сбросить пароль root.
В более поздних дистрибутивах к MySQL можно подключиться без ввода пароля. Такую возможность дает плагин auth_socket. Доступ без пароля зависит от того, какой пользователь ОС подключается к MySQL. По умолчанию доступ имеет только root-пользователь.
Чтобы проверить, какой у вас доступ, подключитесь к серверу и выполните команду:
mysql
Если настроен доступ без пароля, на экране вы увидите примерно следующее:

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

Доступ для пользователя root без использования пароля запрещён
Если доступ без пароля не настроен, а пароль утерян, воспользуйтесь нашей инструкцией.
Как сбросить root-пароль MySQL
Чтобы выполнить сброс пароля MySQL, подключитесь к вашему серверу по SSH и следуйте инструкции:
Откройте файл параметров MySQL командой:
nano /etc/mysql/my.cnf
Добавьте в конец файла три параметра:
[mysqld] skip-grant-tables skip-networking

MySQL reset root password Если директива [mysqld] уже прописана в файле, добавьте только skip-grant-tables и skip-networking:
- skip-grant-tables — параметр, который пропускает проверку прав. Это позволит подключиться к MySQL без пароля любому пользователю.
- skip-networking — параметр, который запретит удалённые подключения к серверу БД на время сброса пароля.
Чтобы сохранить изменения, нажмите CTRL+S. Затем закройте редактор сочетанием клавиш CTRL+X.
Чтобы запустить MySQL с нужными параметрами, перезапустите сервер БД командой:
systemctl restart mysql.service
MySQL — как сбросить пароль root
Если вы забыли пароль root для базы данных MySQL или хотите его поменять в целях безопасности, нужно выполнить сброс пароля. В статье расскажем, как это сделать с помощью командной строки Windows.
1.Остановите сервер MySQL
- Проверьте, вошли ли вы в систему как администратор.
- Нажмите Win + R. Когда откроется окно «Выполнить», введите: services.msc
- Нажмите ОК.
- В списке служб найдите MySQL. Кликните правой кнопкой мыши по ней, после чего левой кликните Stop.
2. Измените пароль в текстовом редакторе
- В меню найдите «Блокнот», либо используйте путь: Меню > Стандартные Windows > Блокнот.
- Создайте новый текстовый документ с помощью команды пароля
- В текстовом редакторе введите строку: ALTER USER ‘root’@’localhost’, IDENTIFIED BY ‘NewPassword’;
- Проверьте, на месте ли кавычки и точка с запятой. Замените NewPassword своим новым паролем. «Файл» > «Сохранить как», чтобы сохранить файл в корень жесткого диска (C:\). Придумайте осмысленное имя файлу.
Команда localhost изменит пароль в вашей локальной системе. Если вы пытаетесь изменить пароль по сети, замените текущее имя хоста на localhost.
3. Запустите cmd
- Откройте командную строку и нажмите Ctrl+Shift+Esc.
- В меню выберите «Файл» > «Запустить новую задачу».
- Введите cmd.exe и установите флажок для запуска от имени администратора.
- Нажмите ОК.
Бесплатный тестовый доступ к облаку на 30 днейПолучить
4. Перезапустите сервер MySQL с обновлённым файлом конфигурации.
Чтобы перейти в каталог MySQL используйте командную строку:
cd «C:\Program Files\MySQL\MySQL Server 8.0\bin»
Вместо ИМЯ_ФАЙЛА вы вводите своё название, которое использовали в пункте 2.
5. Теперь можете зайти на свой сервер MySQL как root, введя новый пароль.
- Повторите вход с новым паролем, чтобы убедиться, что всё работает. Если у вас есть уникальные параметры конфигурации (например, запуск MySQL с параметром -defaults-file ), делайте всё, что нужно.
- После запуска MySQL и подтверждения смены пароля удалите файл C:\ИМЯ_ФАЙЛА.txt .
Вот и всё, вы благополучно сбросили пароль root для базы данных MySQL.