Ubuntu mysql сброс пароля root

Обновлено: 21.11.2024

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

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

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

Предпосылки

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

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

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

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

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

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

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

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

Вы увидите такой вывод, если используете MySQL:

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

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

Для MySQL выключите сервер базы данных, выполнив:

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

Шаг 2. Перезапуск сервера базы данных без проверки разрешений

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

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

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

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

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

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

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

Вы можете убедиться, что он запущен с помощью sudo systemctl status mariadb .

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

Вы сразу увидите приглашение оболочки базы данных:

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

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

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

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

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

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

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

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

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

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

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

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

Вы сразу увидите приглашение оболочки базы данных:

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

Шаг 3. Изменение корневого пароля

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

Укажите серверу базы данных перезагрузить таблицы разрешений, введя команду FLUSH PRIVILEGES:

Теперь вы можете изменить пароль root. Используемый метод зависит от того, используете ли вы MariaDB или MySQL.

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

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

Вы увидите этот вывод, указывающий, что пароль изменен:

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

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

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

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

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

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

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

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

Шаг 4. Возврат сервера базы данных к обычным настройкам

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

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

Затем перезапустите службу с помощью systemctl :

Для MySQL удалите измененную конфигурацию systemd:

Вы увидите вывод, аналогичный следующему:

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

Наконец, перезапустите службу:

Теперь база данных перезапущена и вернулась в нормальное состояние. Убедитесь, что новый пароль работает, войдя в систему как пользователь root с паролем:

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

Заключение

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

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

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно!Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.

Вы просматриваете эту страницу, потому что не можете получить доступ к серверу mysql, установленному на вашем компьютере/сервере, когда вы пытались проверить, хорошо ли он работает? Или вы получаете сообщения об ошибках, подобные следующим? :

Чтобы решить эту проблему, быстрым и всегда работающим способом является "Сброс пароля".

Как сбросить пароль MySQL?

Следуя этой процедуре, вы отключите контроль доступа на сервере MySQL. Все подключения будут иметь root-доступ. Рекомендуется отключить сервер от сети или хотя бы отключить удаленный доступ.

  • Остановите процесс демона mysql с помощью этой команды:
  • Запустите процесс демона mysqld, используя параметр --skip-grant-tables этой команды

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

Затем остановите процесс mysqld и перезапустите его классическим способом:

  • веб-сервер apache
  • php
  • сервер mysql/клиент mysql установлен
  • поддержка php_mysql для apache

Все пакеты можно найти в Synaptic.

Другой способ: очистить

У меня также были некоторые проблемы с mysql, который просто не принимал мой пароль. Я пробовал и по-другому, но оказалось, что это сложно. Я не мог использовать mysql, поэтому он все равно был пуст. Если это также ваш случай, вы можете выбрать способ PURGE. Это удаляет все файлы, связанные с mysql. В зависимости от вашей установки пакеты могут отличаться, например, mysql-server в версии 6.10 называется mysql-server-5.0.

ИСПОЛЬЗУЙТЕ ЭТО В КАЧЕСТВЕ ПОСЛЕДНЕГО СРЕДСТВА, ВЫ ПОТЕРЯЕТЕ ВСЕ СВОИ ДАННЫЕ MYSQL

На следующем шаге убедитесь, что ваш-новый-пароль совпал с нужным паролем!

Теперь вы должны войти в систему как root. Обязательно запишите свой пароль! Спасибо Illuvator за размещение этого метода на форуме Ubuntu.

Самый простой способ

(где N.N — версия сервера MySql)

MysqlPasswordReset (последним от удаленного пользователя hauptfleisch 2014-10-24 13:37:57)

Материалы этой вики доступны по бесплатной лицензии, подробности см. в разделе Авторские права / Лицензия
Вы можете внести свой вклад в эту вики, подробности см. в Руководстве по вики

В этой статье мы сбросим корневой пароль MySQL в Ubuntu, запустив MySQL с параметром --skip-grant-tables.

Введение

Мы все были там. Вы забыли корневой пароль MySQL или он таинственным образом изменился 🤔. К счастью, есть способ обойти это с помощью параметра --skip-grant-tables.

Прежде чем вы начнете, если у вас возникли проблемы со входом в phpMyAdmin и вы получаете сообщение об ошибке Отказано в доступе для пользователя 'root'@'localhost' , но вы уверены, что ваш пароль root верен, пожалуйста, сначала обратитесь к этой статье: Не удается войти в phpMyAdmin: mysqli_real_connect(): (HY000/1698): Доступ запрещен для пользователя 'root'@'localhost'

1. Подтвердите версию MySQL

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

Если вы используете MySQL версии 8, вы увидите что-то вроде:

Если вы используете MySQL версии 5, вы увидите что-то похожее на это:

2. Перезапустите MySQL с помощью skip-grant-table

Чтобы пропустить таблицы привилегий и сбросить пароль root, мы должны сначала остановить службу MySQL. Введите свой пароль Linux, если будет предложено.

Убедитесь, что каталог /var/run/mysqld существует и установлен правильный владелец.

Теперь запустите MySQL с параметром --skip-grant-tables. Здесь требуется &.

Вы должны увидеть что-то похожее:

Теперь нажмите ENTER, чтобы вернуться к командной строке Linux BASH.

3. Изменить корневой пароль MySQL

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

После входа в систему вы увидите приглашение mysql>.

MySQL 8 — сброс корневого пароля

Для MySQL 8 в Ubuntu выполните следующие команды.

Замените your_password_here своим собственным. (Создайте надежный пароль здесь)

Снова сбросить привилегии.

Теперь перейдите к шагу 4 ниже.

MySQL 5.7 — сброс корневого пароля

Для MySQL 5.7 в Ubuntu: запустите эту команду, чтобы изменить пароль root. Замените your_password_here на свой. (Создайте надежный пароль здесь)

Измените подключаемый модуль аутентификации на mysql_native_password .

Теперь перейдите к шагу 4 ниже.

MySQL 5.6 — сброс корневого пароля

Для MySQL 5.6 в Ubuntu запустите эту команду, чтобы изменить пароль root. Замените your_password_here на свой. (Создайте надежный пароль здесь)

Измените подключаемый модуль аутентификации на mysql_native_password .

Теперь перейдите к шагу 4 ниже.

4. Проверить новый корневой пароль

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

Если вы видите сообщение, подобное приведенному ниже, нажмите ENTER, чтобы продолжить.

Запустите MySQL еще раз.

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

Введите пароль root для MySQL. Если все верно, вы должны увидеть что-то вроде:

Сообщите мне, помогло ли это. Подпишитесь на меня в Twitter, Facebook и YouTube или 🍊 купите мне смузи.

пс. Я увеличил свой доход от AdSense на 200% с помощью ИИ 🤖. Прочтите мой обзор Ezoic, чтобы узнать, как это сделать.

114 ответов

Оставить ответ

Легенда, многие другие руководства просто не работают. Спасибо

Потрясающий простой учебник. Сэкономил мне кучу времени! Спасибо!

Спасибо.
Это руководство очень помогло

*единственный туториал, который действительно помог 🙂
СПАСИБО!

Это руководство работает для меня.
Заранее спасибо

Большое спасибо 😀
избавьте меня от новой новой установки

Большое спасибо. Вы предоставили все процедуры, как мы можем шаг за шагом изменить пароль mysql.

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

охххххх, какая радость от поиска сокровищ ಥ_ಥ

Да, чувак, весь этот процесс сработал, большое спасибо, отличная статья

шедевр! работало все. спасибо

мил gracias, en verdad me ayudó mucho

Большое спасибо!

Большое спасибо. Мне удалось сбросить пароль root.

100% ОК, благодарю вас за POST, решение проблемы великой скорби. установить мой сервер linux, не подключая платформу к базе данных.

Большое спасибо за этот пост!

Большое спасибо, братан, я только что потратил 3 дня на это, но не нашел правильного ответа, спасибо, ЛЮБОВЬ ИЗ ИНДИИ

Отлично, братан, ты спас меня. ЛЮБОВЬ ИЗ УГАНДЫ

Милая милость, de manera sumamente profesional me saco de un gran apuro.

Ты спас меня, братан 🙂

Отлично..
Наконец-то я попал на эту страницу и смог войти в консоль phpmyadmin.

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

Спасибо. Единственное решение, которое сработало для меня.

Отлично!
Вы спасли мне жизнь

Большое спасибо! это помогло <3

Эта строка sudo mkdir /var/run/mysqld сэкономила мне часы. Красивая статья.

Очень хороший учебник, простой и сработал с первого раза. Проблема в том, что с каждой версией mysql меняются правила и ни одно из старых правил не работает. Это может быть очень неприятно. Даже набор шагов, перечисленных на самом сайте MySQL, не работает. Как смешно.

Большое спасибо! это работает

Отличная статья!! Спасибо.

У меня возникла проблема с перезапуском Mysql с --skip-grant-tables. Я получил следующее сообщение об ошибке:
> Не удается подключиться к локальному серверу MySQL через сокет ‘/var/mysql/mysql.sock’ (38)

Проверив журнал ошибок, я обнаружил, что Mysql не может быть запущен, поскольку неизвестная переменная «log-syslog=1»:
> [ОШИБКА] [MY-000067] [Сервер] неизвестная переменная ‘log-syslog=1’.

Чтобы решить эту проблему, отредактируйте файл /etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf и прокомментируйте вторую строку:

Большое спасибо. Я потратил часы на чтение ответов, но, наконец, ваш блог помог мне.

Вы спасли мою степень

большое спасибо.

Спасибо, сработало!!

Действительно эффективный документ.

Лучший ответ, который я когда-либо получал на вопрос «Как сбросить пароль MySQL».
Большое спасибо.

geary@NUC:/var/run/mysql$ sudo mysql –user=root mysql
ОШИБКА 2002 (HY000): невозможно подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld .sock' (2)

Чтобы решить эту проблему, отредактируйте файл /etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf и прокомментируйте вторую строку:

Большое спасибо.

Спасибо, проблема решена менее чем за 5 минут

Наконец-то все готово.
Я пробовал это в течение часа с других веб-сайтов, но безуспешно, но эта страница решила мою проблему.
по состоянию на 29 января 2021 г. с версией

Отлично! Ты большой парень.

Это единственный документ, правильно объясняющий процесс. Спасибо

Вы спасли мой день!

Вы не поверите, но я провел 3 часа в Google, чтобы найти ваше решение! Большое спасибо за то, что позволили мне, наконец, заснуть сейчас!

Я потратил на это целый день, и ваш пост был единственным, который действительно работал. Спасибо.

Большое спасибо.

Спасибо за эту статью. Это была единственная статья, которая действительно работала и позволяла мне установить пароль root для mysql после того, как я потерял исходный пароль.

Спасибо, все работает.

Хорошо объяснил. Избавь меня от проблем..

Мне тоже помогло! множество благодарностей

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

спасибо, я не смог найти команды mysql 8

большое спасибо — документация не распространяется на V8 — потратил несколько дней на борьбу с этим — ценю четкие и правильные инструкции — ура.

Спасибо. Отлично.

Наконец-то после того, как вы выполнили шаги с 3 других сайтов, ваш наконец-то заработал! Спасибо!

Большое спасибо, очень полезный пост

ты классный, спасибо

Большое спасибо.

Эта статья очень полезна, спасибо!

Большое спасибо. Отлично работает для меня!

Спасибо, это помогло!

Отлично! сработало отлично

большое спасибо

Это сработало безупречно, спасибо, очень полезно и легко понять!

Спасибо за очень полезную информацию. Это работает.

мне ха servido muy bien !

БОЛЬШОЕ СПАСИБО

Лучшее объяснение!

Большое спасибо!
Вы только что спасли мне жизнь!

А как насчет MySQL 8? Кажется, PASSWORD() больше не поддерживается. mysql> обновить пользовательский набор authentication_string=PASSWORD('my_password'), где user='root'; выдает синтаксическую ошибку рядом с ('my_password') …

Спасибо, что сообщили мне.

В эту статью добавлены инструкции по сбросу пароля root для MySQL 8.

Отлично.
Прямо на инструкции….
Большое спасибо!

спасибо, спасибо, боже мой

Большое спасибо за блокировку с 8 часов

спасибо, ты спас мне жизнь, ты действительно знаешь, что делаешь, спасибо, большое спасибо

mysql> update user set plugin=”mysql_native_password”, где User='root';
Запрос выполнен успешно, затронуто 0 строк (0,00 с)
Сопоставлено строк: 0 Изменено: 0 Предупреждений: 0

mysql> сброс привилегий;
Запрос выполнен успешно, затронуто 0 строк (0,00 с)

Спасибо, это было действительно полезно

Большое спасибо, приятель.

На шаге 2 я получаю

2019-12-29T22:46:28.239042Z mysqld_safe Запись в системный журнал.
2019-12-29T22:46:28.242008Z mysqld_safe Запись в '/var/log/mysql/error.log'.
2019-12-29T22:46:28.258774Z mysqld_safe Запуск демона mysqld с базами данных из /var/lib/mysql
2019-12-29T22:46:32.136840Z mysqld_safe mysqld из файла pid /var/run/mysqld /mysqld.pid закончился

Затем при запуске
sudo mysql --user=root mysql
ОШИБКА 2002 (HY000): невозможно подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock'. (2)

спасибо, это помогло мне, mysql 5.7.27-0ubuntu.18.04.1 на Ubuntu

Вы лучшие, спасибо 🙂

Нашел вас через Google с фильтром «менее месяца», иначе там много дерьма, лол

Большое спасибо — после просмотра нескольких решений это самый краткий и полезный ответ; это решило все последующие проблемы после того, как я забыл корневой пароль mysql.

Я просматриваю все веб-страницы, но ни одна из них не может мне помочь, но ваши страницы мне очень помогают …….
спасибо .

mysql> обновить пользовательский набор plugin="mysql_native_password", где User='root';

ОШИБКА 1524 (HY000): Плагин mysql_native_password не загружен

Ошибка в том, что mysql не распознает плагин с «мой пароль»?!

Как изменить корневой пароль и имя пользователя MySQL на сервере Ubuntu? Нужно ли останавливать службу mysql перед внесением каких-либо изменений?

У меня также настроен phpmyadmin, будет ли phpmyadmin автоматически обновляться?

Если вам не нужны данные, вы можете «сбросить» пароль, полностью удалив mysql: stackoverflow.com/questions/10853004/…, а затем снова установив его (будет предложено ввести «новый» пароль root ) Пока :)

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

35 ответов 35

Установить/изменить/сбросить корневой пароль MySQL в Ubuntu Linux. Введите следующие строки в свой терминал.

  1. Остановите сервер MySQL: sudo /etc/init.d/mysql stop
  2. Запустите настройку mysqld: sudo mysqld --skip-grant-tables &

В некоторых случаях необходимо сначала создать /var/run/mysqld:

  1. Войдите в MySQL как пользователь root: mysql -u root mysql
  2. Замените YOURNEWPASSWORD новым паролем:

Если столбца пароля MySQL не существует, вы можете попробовать:
ОБНОВИТЬ пользователя SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';

Примечание. Этот метод не считается самым безопасным способом сброса пароля, однако он работает.

Для MySQL >= 8.0

Конечно, после этого вам нужно будет завершить временный серверный процесс без пароля, который вы запустили на шаге 2. может быть, использовать sudo killall -9 mysqld ?а затем sudo service mysql начинает перезапускать обычный демон.

Метод в этом ответе необходим только для сброса корневого пароля MySQL, который вы не знаете [источник]. Если вы его знаете, инструкция SET PASSWORD MySQL для вас.

я дошел до 3-го шага и получаю сообщение Не могу подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock' (2) при входе через root

в некоторых случаях вам также необходимо запустить mkdir /var/run/mysqld и chown mysql: /var/run/mysqld между шагами 1 и 2

Единственный метод, который сработал для меня, описан здесь (у меня Ubuntu 14.04). Для ясности, вот шаги, которые я выполнил:

Добавьте следующие строки в конце:

перезагрузка службы sudo mysql

sudo vim /etc/mysql/my.cnf

Удалите строки, добавленные на шаге 2, если хотите сохранить стандарты безопасности.

перезагрузка службы sudo mysql

Наконец-то мне это помогло! Я использую MySQL 5.7.18 на Ubuntu 16.04. Я попробовал dpkg-reconfigure, ответ Анвеша, ответ Кристиана Марка и даже инструкции на странице справки MySQL.

Все работало, как и ожидалось. Но при попытке войти в систему пишет «Введите пароль: ОШИБКА 1698 (28000): доступ запрещен для пользователя «root» @ «localhost»

Официальный и простой способ сбросить пароль root на сервере Ubuntu.

Если вы находитесь 16.04, 14.04, 12.04:

Если вы используете версию 10.04:

Если вы не уверены, какая версия mysql-сервера установлена, вы можете попробовать:

Обновлены примечания для mysql-server-5.7

Обратите внимание, что если вы используете mysql-server-5.7, вы не можете использовать более простой метод dpkg-reconfigure, показанный выше.

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

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

Вам будет задан ряд вопросов о защите вашей установки (настоятельно рекомендуется), в том числе о том, хотите ли вы предоставить новый пароль root.

Подробнее см.:

sudo dpkg-reconfigure mysql-server-5.7 не работает в Ubuntu 18.04 для сброса пароля root. Любая другая альтернатива?

Что помогло мне (Ubuntu 16.04, mysql 5.7):

Создать служебный каталог MySQL.

Предоставьте пользователю MySQL разрешение на запись в служебный каталог.

Запустите MySQL вручную, без проверки разрешений или подключения к сети.

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

Запустите службу MySQL в обычном режиме.

Я делюсь пошаговым окончательным решением для сброса пароля MySQL в Linux Ubuntu.

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

Шаг 2. Удалите все работающие mysqld.

Шаг 3. Запуск mysqld в безопасном режиме.

Шаг 4. Запустите клиент mysql

Шаг 5. После успешного входа в систему выполните эту команду, чтобы изменить любой пароль.

Шаг 6. Вы можете обновить корневой пароль mysql.

Примечание. В MySQL 5.7 столбец Password называется authentication_string .

Шаг 7. Выполните эту команду.

Мне пришлось использовать "sudo /etc/init.d/mysql stop", чтобы остановить службу, и "ОБНОВИТЬ mysql.user SET authentication_string=PASSWORD('newpwd') WHERE User='root';" обновить пароль

Сначала запустите эту команду:

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

теперь вы уже можете видеть что-то подобное:

в приведенной выше таблице вы можете увидеть статус всех ваших учетных записей пользователей mysql и установить ли вы пароль для учетной записи root, прежде чем вы увидите mysql_native_password в столбце плагинов вместо auth_socket. В общем, для изменения пароля root вы должны выполнить:

Обязательно измените пароль на надежный пароль по вашему выбору. Затем, чтобы перезагрузить сервер, чтобы новые изменения вступили в силу, запустите это;

Итак, еще раз проверьте методы аутентификации, используемые вашим mysql, с помощью этой команды:

и теперь результат:

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

Вот и все. Просто перезапустите mysql с помощью sudo service mysql restart . Теперь вы можете легко войти в mysql под учетной записью root, используя свой пароль.

Я думаю, что это от DigitalOcean, которое было единственным решением, которое сработало для меня в Ubuntu 18.04, работающем на Virtual Box

У меня возникли проблемы с Ubuntu 18.04 и mysql 5.7, вот решение

Попробуйте перезапустить mysql-сервер перед выполнением команд

Спасибо, я также использую здесь Ubuntu 18.04, и версия MYSQL-SERVER >= 5.7 была единственной вещью, которая фактически решила проблему

Это то, что работало при установке Ubuntu 18.04 mysql. MYSQL-SERVER >= 5.7, если быть точным.

UPDATE user SET password=PASSWORD('YOUR_PASSWORD') WHERE User='root'; ОШИБКА 1064 (42000): ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '('YOUR_PASSWORD') WHERE User='root'' в строке 1

Измените корневой пароль MySQL.

Этот метод показывает пароль в истории командной строки, эти команды следует запускать от имени пользователя root.

Войти через инструмент командной строки mysql:

Выполните эту команду:

Выполните эту команду, которая устанавливает пароль для текущего пользователя (в данном случае root):

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

sudo dpkg-reconfigure mysql-server-5.5

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

Это гораздо лучший способ сделать это. Мне не удалось запустить предыдущие команды из-за ошибки mysql.

Я запустил sudo dpkg-reconfigure mysql-server-5.7 в Ubuntu 16.04, мне не предложили ввести новый пароль.

Если он говорит, что mysql-server не работает или установлен не полностью, можно использовать sudo apt purge mysql* и sudo apt install mysql-server

@user2206324 Если у меня есть данные в базах данных, могу ли я использовать эту команду sudo dpkg-reconfigure mysql-server-5.5? он просто перенастроит root или данные будут потеряны?

Остановить службу MySQL sudo mysql stop

Создать служебный каталог MySQL. sudo mkdir /var/run/mysqld

Предоставьте пользователю MySQL разрешение на запись в служебный каталог. sudo chown mysql: /var/run/mysqld

Запустите MySQL вручную, без проверки разрешений или работы в сети. sudo mysqld_safe --skip-grant-tables --skip-networking &

5.Войти без пароля. mysql -uroot mysql

6.Обновите пароль для пользователя root.

Отключите MySQL. sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

Запустите службу MySQL в обычном режиме. запуск службы sudo mysql

Создать служебный каталог MySQL. sudo mkdir /var/run/mysqld

Предоставьте пользователю MySQL разрешение на запись в служебный каталог.

Запустите MySQL вручную, без проверки разрешений или подключения к сети.

Войти без пароля.

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

Запустите службу MySQL в обычном режиме.

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

Тогда можно выполнить следующую команду.

Подробности доступны здесь .

Я не смог войти в систему как sudo mysql -u root, но смог сделать это как sudo mysql и запустить команду ALTER USER.

ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ 'root'@'localhost', ИДЕНТИФИЦИРОВАННОГО С помощью mysql_native_password BY 'password'; ОШИБКА 1290 (HY000): сервер MySQL работает с параметром --skip-grant-tables, поэтому он не может выполнить этот оператор

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

консоль выдала предупреждение:

вылечить с помощью этой команды:

MySQL версии 5.7.X

Это сработало для меня. но на первом шаге mysql stop у меня не работает, я должен использовать mysqladmin shutdown, а шаги 2 и 3 мне не нужны, потому что файл существует.

Но важно это изменение на последнем шаге:

Боже! Большое спасибо! Это единственный способ, который работал в моем случае. Забудьте об этом дурацком безопасном сценарии установки, так как он держал мою только что установленную версию 5.7 широко открытой для пользователей, даже не запрашивая пароль. если Linux/Ubuntu предназначена для пользователей, заботящихся о безопасности, почему так сложно защитить такое важное приложение, как сервер MySQL?

Для Ubuntu 18.04 и дистрибутива mysql версии 14.14 5.7.22 выполните следующий шаг, чтобы сбросить пароль mysql.

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

Повторяя комментарий rogerdpack: если вы не знаете пароль администратора MySQL и вас не интересуют данные/настройки MySQL, вы можете переустановить его и сбросить пароль администратора следующим образом:

Во время установки вы можете выбрать пароль root:

Хотел бы я начать отсюда, а не тратить час на то, чтобы биться головой, пытаясь сбросить пароль.

Если вы знаете свой текущий пароль, вам не нужно останавливать сервер mysql. Откройте терминал Ubuntu. Войдите в mysql, используя:

Затем введите свой пароль. Это приведет вас в консоль mysql. В консоли введите:

Затем сбросьте привилегии, используя:

Тогда все готово.

ОШИБКА 1290 (HY000): сервер MySQL работает с параметром --skip-grant-tables, поэтому он не может выполнить эту инструкцию

Все это вам не нужно. Просто войдите:

Затем измените пароль текущего пользователя в приглашении mysql>:

Большинство ответов на эту тему устарели; два основных изменения произошли в MySQL до написания этого ответа:

1- поле "Пароль" в пользовательской таблице заменено столбцом "authentication_string".

2- функция шифрования «Пароль»: ПАРОЛЬ («некоторый текст») устарела.

Когда вы используете MySQL PASSWORD() в системе, где вы хотите изменить пароль, это может привести к тому, что пароль появится в журнале MySQL в виде открытого текста [источник]. Хранение их, их резервных копий и т. д. в такой же безопасности, как и пароль, звучит для меня как кошмар, поэтому я предпочитаю делать это следующим образом:

На своем локальном компьютере запустите это с вашим паролем:

Обратите внимание на пробел впереди, чтобы он не появился в истории bash (для других дистрибутивов, кроме Ubuntu, это может работать иначе — источник).

На своем сервере выполните следующую команду, чтобы изменить его пароль root MySQL (замените myhash на хэш вашего пароля, напечатанный первой командой):

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

Чтобы обновить «корневой» пароль пользователя Mysql, вы должны иметь в виду, что для этого вам потребуются права суперпользователя. Если у вас есть права суперпользователя, попробуйте выполнить следующие команды:

MySQL 5.7.6 и выше

MySQL 5.7.5 и более ранние версии

Как сказано в документации mysql по функции password():

Эта функция была удалена в MySQL 8.0.11.

Это делает недействительными почти все существующие ответы для mysql v8.0.11 и новее.

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

В предыдущих разделах приведены инструкции по сбросу пароля специально для Windows, Unix и Unix-подобных систем. Кроме того, на любой платформе вы можете сбросить пароль с помощью клиента mysql (но этот подход менее безопасен):

При необходимости остановите сервер MySQL, а затем перезапустите его с помощью команды --skip-grant-tables. вариант. Это позволяет любому подключаться без пароля и со всеми привилегиями, а также отключает операторы управления учетными записями, такие как ALTER USER и SET PASSWORD. Поскольку это небезопасно, если сервер запускается с параметром --skip-grant-tables, он автоматически включает --skip-networking для предотвращения удаленных подключений.

Подключитесь к серверу MySQL с помощью клиента mysql. ; пароль не требуется, поскольку сервер был запущен с параметром --skip-grant-tables:

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

Затем измените пароль учетной записи 'root'@'localhost'. Замените пароль паролем, который вы хотите использовать. Чтобы изменить пароль для учетной записи root с другой частью имени хоста, измените инструкции для использования этого имени хоста.

Теперь вы сможете подключиться к серверу MySQL как root, используя новый пароль. Остановите сервер и перезапустите его в обычном режиме (без параметров --skip-grant-tables и --skip-networking).

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