Mysql mac os сброс пароля root

Обновлено: 30.06.2024

Прежде всего, я знаю, что есть несколько потоков, но я попробовал так много решений, и я не могу заставить что-нибудь работать.

У меня нет опыта работы с сервером mysql и терминалом.

Я загрузил сервер mysql 5.7.19

Я открываю mysql из системного параметра, останавливаю сервер. Затем я открываю терминал и записываю

ОБНОВЛЕНИЕ: Когда я запускаю решение ниже, после открытия нового окна я получаю следующие ошибки:

спросил(а) 2020-03-19T13:32:12+03:00 1 год, 8 месяцев назад

Остановите сервер MySQL.

Перезапустите его с помощью опции -skip-grant-tables.

Откройте другой терминал для подключения к серверу MySQL с помощью клиента mysql.

Сообщите серверу перезагрузить таблицы предоставления, чтобы операторы управления учетными записями работали.

Теперь сбросьте пароль для пользователя root

MySQL 5.7.6 и более поздние версии:

MySQL 5.7.5 и ранее:

Остановите сервер и перезапустите его нормально.

ответил(а) 2020-03-19T13:45:42.938656+03:00 1 год, 8 месяцев назад

Первый шаг - остановить службу MySQL.

Затем вам нужно запустить его в безопасном режиме

во-вторых: откройте другое окно оболочки/терминала, войдите без пароля

Поскольку в MySQL 5.7 поле пароля в таблице mysql.user удаляется, теперь имя поля - "authentication_string".

Теперь снова нужно запустить сервер MySQL

ответил(а) 2020-03-19T13:32:12+03:00 1 год, 8 месяцев назад

Команда не найдена, поскольку папка установки MySQL (/usr/local/mysql/) не включена в системную переменную PATH.

Вы можете добавить в PATH ИЛИ вы можете использовать полный путь /usr/local/mysql/bin/mysqld_safe

ответил(а) 2020-03-19T13:32:12+03:00 1 год, 8 месяцев назад

Мне потребовалось некоторое время, чтобы решить эту проблему, учитывая, что большинство решений для версий ниже MySQL версии 5.7

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

Для обеспечения безопасности процесса: - Отключите галочку "Автоматически запускать MySQL-сервер при запуске" внутри системных настроек MySQL (spotlight - mysql)

    Откройте терминал и введите sudo/usr/local/mysql/support-files/mysql.server start -PS: Это для обеспечения его встроенного времени было время, когда следующие процессы ломали меня. Теперь закройте службу MySQL: sudo/usr/local/mysql/support-files/mysql.server stop Тип sudo mysqld_safe --skip-grant-tables Это будет теперь обходить безопасность для MySQL - небезопасно для операций, а не постоянное решение всегда позволять вам использовать MySQL. В настоящее время, как вы видите, это процесс. Это позволит нам выполнить следующие шаги. Оставьте эту вкладку терминала OPEN в течение оставшегося процесса!

Теперь Cmd + N (новое окно терминала) и в новом терминале: - sudo/usr/local/mysql/support-files/mysql.server start - update user set authentication_string=password('jj) where user='root' Это в старой версии было бы как update user set password=PASSWORD("jj") where user='root; - FLUSH PRIVILEGES; // Это важно (обновляет диск вместо кеша), чтобы обеспечить следующий раз, когда вы закроете mysql и вернетесь, он остается доступным по мере установки. - \q или quit

Закройте все это - все терминалы, перезагрузите компьютер и убедитесь, что все в порядке (конечно, это влечет за собой перезапуск - открытый терминал - mysql -u root -p (введите) - ответьте на пароль, который вы mysql -u root -p по шагам выше). В моем ответе: jj был установленным паролем

Cool-Stuff для общих знаний о довольно новых (это как-то сразу сработало для меня, сказав, что пароль не является полем или чем-то вроде этого, при переходе в этот новый терминал при update user set authentication_string=password('jj) where user='root' , поэтому, если бы у вас было то же самое, перейдите к нему в следующих шагах - в> mysql, где вы находитесь..): - use mysql; - show tables; - describe user; а затем продолжить как шаги выше с точки update user set authentication_string=password('jj) where user='root'

Вы забыли свой пароль root для MySQL? Не волнуйтесь, это случается со всеми нами.

В этой статье мы покажем вам, как сбросить пароль root MySQL из командной строки.

Определите версию сервера

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

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

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

Или выведите такой вывод для MariaDB:

Обязательно запишите, какую версию MySQL или MariaDB вы используете.

Как сбросить корневой пароль MySQL или MariaDB

Выполните следующие действия, чтобы сбросить пароль root для MySQL / MariaDB:

1. Остановите службу MySQL / MariaDB.

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

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

Запустите сервер базы данных без загрузки таблиц предоставления:

Амперсанд & в конце приведенной выше команды заставит программу работать в фоновом режиме , так что вы можете продолжать использовать оболочку.

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

3. Войдите в оболочку MySQL.

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

4. Установите новый пароль root.

Выполните следующие команды, если вы используете MySQL 5.7.6 и новее или MariaDB 10.1.20 и новее:

Если инструкция ALTER USER вас не работает, попробуйте напрямую изменить пользовательскую таблицу:

Выполните следующие команды, если у вас MySQL 5.7.5 и ранее или MariaDB 10.1.20 и ранее:

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

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

Теперь, когда пароль root установлен, остановите сервер базы данных и запустите его как обычно:

Вам будет предложено ввести новый пароль root.

Запустите сервер базы данных обычным образом:

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

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

6. Подтвердите пароль.

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

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

Выводы

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

Инструкции в этом руководстве должны работать с любым современным дистрибутивом Linux, таким как Ubuntu 18.04, Debian 10 и CentOS 8.

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

Данное руководство поможет сбросить пароль пользователя root в MySQL и MariaDB.

Требования

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

  • Доступ к серверу, на который установлена СУБД.
  • Пользователь с поддержкой sudo.

1: Определение версии MySQL и MariaDB

Большинство современных дистрибутивов Linux поставляются с MySQL или MariaDB (аналог MySQL,полностью совместимый с этой БД). Способ восстановления пароля во многом зависит от версии СУБД.

Чтобы узнать версию программы, введите:

На экране появится такой вывод:

Запишите название и версию СУБД: эти данные пригодятся в дальнейшем.

2: Остановка сервера БД

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

3: Перезапуск базы данных без проверки привилегий

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

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

Чтобы запустить БД без таблиц привилегий, введите:

sudo mysqld_safe --skip-grant-tables --skip-networking &

Амперсанд (&) в конце команды переведёт её в фоновый режим, и вы сможете продолжить работу с терминалом.

Подключитесь к БД как root. Пароль не будет запрошен:

Вы получите доступ к командной оболочке базы данных:

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

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

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

Теперь можно изменить пароль root.

В MySQL 5.7.6+ и MariaDB 10.1.20+ используйте команду:

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

В MySQL 5.7.5, MariaDB 10.1.20 и более ранних версиях СУБД введите:

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

Примечание: Вместо new_password укажите новый пароль пользователя root.

После этого нужно перезапустить таблицы привилегий.

После обновления пароля на экране должен появиться такой вывод:

Query OK, 0 rows affected (0.00 sec)

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

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

Остановите сервер баз данных, запущенный вручную в разделе 3. Эта команда находит (ID процесса) MySQL или MariaDB и отправляет SIGTERM, чтобы выйти после выполнения операции очистки.

Теперь можно перезапустить сервис:

Убедитесь, что новый пароль работает:

Команда должна запросить пароль пользователя root.

Заключение

Теперь вы знаете, как восстановить доступ суперпользователя к серверу MySQL и MariaDB.

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

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

В статье я буду использовать Ubuntu и MariaDB, но эта инструкция подойдёт и для других дистрибутивов. В командах с systemctl для Mariadb следует использовать mariadb, а для MySQL - mysql или mysqld.

1. Сброс пароля с помощью init-file

При запуске сервиса MySQL можно указать файл, из которого будут выполнены команды sql сразу после запуска. Адрес этого файла указывается опцией --init-file. Но сначала давайте создадим файл, который будет изменять файл нашего пользователя:


Затем остановите сервис, если он запущен:

sudo systemctl stop mysql

sudo systemctl stop mariadb

Теперь осталось выполнить наш файл:

sudo mysqld --user=mysql --init-file=/home/sergiy/init-file.txt --console


Подождите минуту, чтобы всё успело сработать как нужно, а затем остановите этот процесс. В консоли команда сообщит started as proccess и PID процесса, этот PID нам и нужен, чтобы его остановить. Например:

sudo kill -TERM 5356


Далее запустите mysql обычным способом и попробуйте войти со своим новым паролем:

sudo systemctl start mariadb

Сброс пароля с помощью skip-grant-tables

Кроме того, есть и другой способ сбросить пароль MySQL. Мы можем запустить сервис с параметром --skip-grant-tables. В этом режиме программа пропускает загрузку данных о пользователях и тогда вы можете авторизоваться без ввода пароля. Аналогично, сначала нужно остановить сервис:

sudo systemctl stop mariadb

Затем запустите mysql вручную с помощью такой команды:

sudo mysqld --user=mysql --skip-grant-tables


Войдите в консоль управления mysql:


Так как мы загрузились без таблиц привелегий пользователей, то эти таблицы необходимо подгрузить сейчас:


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


Затем закройте консоль клиента mysql:

Завершите запущенный вручную сервис, таким же образом как в предыдущем пункте:

sudo kill -TERM 5356

И запустите mysql в нормальном режиме:

sudo systemctl start mariadb

Дальше вы можете авторизоваться от имени суперпользователя по этому паролю:

sudo mysql -u root -p

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

Выводы

В этой статье мы рассмотрели, как выполняется сброс пароля MySQL Ubuntu. Разработчики постоянно что-то меняют в коде сервиса, поэтому в последних версиях команды ALTER USER или SET PASSWORD могут не работать. Поэтому мы используем универсальную команду UPDATE. Надеюсь, эта информация была для вас полезной.

Нет похожих записей


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

Оцените статью:

Об авторе

8 комментариев

Losst, здравствуйте. Извиняюсь за некорректно написанную просьбу (и не в теме), но облазив всю сеть ухитрился проморгать пошаговую настройку убунту на слабом ноутбуке (пользуюсь Тошибой 2005 года выпуска, на Пент4 (дискретный видео), 1,7 гига с 2г озу), хотя в характеристиках пользования линукс указывается развёртывание оси на более меньшей оперативе. Если Вас не затруднит посвятить раздел собственно настройки системы на минимальных характеристиках: сама ось, браузер и минимум программ - офис, плейер, и там по мелочи, без программ требующих особых соответствий ядра и видеокарты..
С уважением.

Поставьте Debian последней версии. Если что-то будет не так с уставкой на Ваш компьютер, то будет видны все проблемы. Debian - это основа UBUNTU. UBUNTU - это производная от Debian. Debian всегда стабилен в отличие от UBUNTU, поверьте .

Андрей, день добрый. Дебиан легче чем Лубунту или нужно искать определённую сборку?

Не понимаю понятия легче или тяжелее. Что это значит - не понимаю!
Многие говорят, что окружение KDE - тяжёлое, о GNOME - лёгкое. Не пойму чем это утверждение обосновано? Пробовал оба окружения. Процессор тратит столько же энергии в обоих окружениях. Нагревается также одинаково. Время загрузки ОС зависит от настройки. Здесь мне вообще не понятно это утверждение. Бред какой-то!

Не было ни одного компьютера, на который я бы не поставил Дебиан.
Всё зависит от Вашего хотения. Может у Вас Дебиан сразу поставиться нормально. А, может придётся установить дополнительно пакеты с программами.

--skip-grant-tables прекрасно работает из конфигурационного файла.
вот не надо делать базе kill

А, вот как правильно уставить пароль в Krbf для KDE, чтобы потом проблем не было с доступом - это с удовольствием посмотрел!

Или, как убрать шипение микрофона в Linux при использовании PulseAudio, это когда звук пишешь. То же, хотелось бы узнать правильную информацию!

После установки MySQL 5.7.26 под управлением Ubuntu 18.04, пришло резкое понимание того, что залогиниться в mysql из-под текущего пользователя с учетной записью root не получится, никаких манипуляций с пользователями и правами провернуть не получиться. Потому что только root и только unix socket и никаких паролей.
Для успешного входа и манипуляций с mysql потребуется выполнить sudo mysql -u root или предварительно авторизоваться в системе как root и выполнить mysql -u root.
Честно говоря не вижу смысла менять способ авторизации mysql-пользователя root с сокета на пароль, создавать и вводить его, а потом этот самый пароль ещё и сбрасывать. Существующие настройки довольно безопасны: авторизация root (mysql) возможна только с localhost, прикрыть системный root по SSH (если SSH используется) тоже не проблема.
Лучше настроить дополнительных mysql-пользователей, например для использования phpmyadmin создать пользователя с таким же именем — phpmyadmin — и правами, что и у root, и авторизацией по паролю. После этого можно авторизоваться от имени любого пользователя сиcтемы, зная пароль phpmyadmin, но лучше создать каждому пользователю системы своего пользователя mysql с необходимыми правами, а еще лучше не создавать =).

В базе mysql пароли хранятся в зашифрованном виде, оператор UPDATE просто заменяет данный в таблице, то есть командой update нужно вставлять зашифрованные пароли.

Читайте также: