Изменить пароль пользователя Ubuntu MySQL

Обновлено: 30.06.2024

В этой статье мы сбросим корневой пароль 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 — это популярная система управления базами данных для веб-приложений. Как и многие веб-службы, MySQL имеет пароль уровня администратора или root. Пароль root позволяет пользователю выполнять все функции верхнего уровня в базе данных.

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

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

Как сбросить или изменить корневой пароль MySQL в Linux или Windows.

  • Существующая база данных MySQL
  • Доступ к серверу Linux или Windows, на котором работает MySQL
  • Права администратора на компьютере, на котором размещена база данных MySQL
  • Текстовый редактор. Блокнот включен по умолчанию в Windows. Vim по умолчанию установлен в Linux.
  • Доступ к интерфейсу командной строки (или терминалу)

Как изменить корневой пароль пользователя MySQL в Linux

Шаг 1. Войдите в систему как пользователь MySQL

При загрузке установки Linux убедитесь, что вы вошли в систему как тот же пользователь, который обычно запускает MySQL. Хотя вы можете войти в систему как root, после запуска сервера MySQL убедитесь, что вы запускаете его с параметром --user=mysql.

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

Шаг 2. Найдите файл .pid для службы MySQL

Следующий шаг — найти файл .pid для службы MySQL.

Большинство систем хранят их в пути /var/lib/mysql/, /var/run/mysqld/ или /usr/local/mysql/data/. Имя файла обычно начинается с mysqld (или имени хоста вашей системы) и заканчивается расширением .pid.

Шаг 3. Завершите процесс mysqld

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

Замените mysql-data-directory/host_name.pid именем файла, найденным на предыдущем шаге. Обязательно укажите полный путь к файлу. Кроме того, обязательно используйте клавишу обратной галочки (обычно над клавишей табуляции), а не одинарную кавычку в начале команды.

Шаг 4. Создайте файл паролей

<р>1. Откройте ваш любимый текстовый редактор. В этом примере мы используем vim:

<р>2. Затем добавьте в файл следующую строку:

создать файл паролей для mysql

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

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

<р>3. Сохраните файл в home/me/mysql-init.

Шаг 5. Перезапустите сервер MySQL и примените новый пароль

Чтобы применить изменения к паролю, перезапустите сервер MySQL, выполнив в терминале следующую команду:

Это запустит MySQL и применит изменение пароля в текстовом файле. В зависимости от того, как вы запускаете свой сервер, вам может потребоваться добавить другие параметры (например, --defaults-file перед командой init.)

Шаг 6. Очистка

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

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

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

<р>1. Для начала проверьте, вошли ли вы в систему как администратор.

<р>2. Нажмите Win+R (удерживайте клавишу Windows/Super и нажмите «r».) Когда появится окно «Выполнить», введите:

<р>3. Нажмите "ОК".

 службы поиска окон с помощью run

<р>4. Прокрутите список служб, чтобы найти службу MySQL. Щелкните эту запись правой кнопкой мыши, а затем левой кнопкой мыши "Стоп".

Шаг 2. Запустите текстовый редактор

Нажмите на меню и найдите Блокнот.

Кроме того, вы можете использовать путь: меню > Стандартные Windows > Блокнот.

Шаг 3. Создайте новый текстовый файл с помощью команды пароля

<р>1. Введите следующую строку в текстовый редактор:

Не забудьте сохранить кавычки и точку с запятой. Замените NewPassword паролем по вашему выбору.

создать файл с паролем окна команд

<р>2. Используйте меню «Файл» > «Сохранить как», чтобы сохранить файл в корневой каталог жесткого диска (C:). Выберите имя файла, например mysql-init.txt.

Следовательно, команда localhost изменяет пароль в вашей локальной системе. Если вы меняете пароль в системе по сети, замените имя хоста на localhost.

Шаг 4. Откройте командную строку

<р>1. Нажмите Ctrl+Shift+Esc.

<р>2. Затем нажмите меню «Файл» > «Запустить новую задачу».

<р>3. Введите cmd.exe и установите флажок для запуска от имени администратора.

<р>4. Нажмите "ОК".

Шаг 5. Перезапустите сервер MySQL с новым файлом конфигурации

<р>1. Перейдите в каталог MySQL с помощью командной строки:

<р>2. Затем введите следующее:

Обратите внимание, что после приглашения C: есть две косые черты.
Кроме того, если вы выбрали другое имя файла на шаге 2, используйте это имя после двойной косой черты.

Шаг 6. Очистка

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

Перепроверьте, чтобы убедиться, что это работает. Если у вас есть уникальные параметры конфигурации (например, запуск MySQL с параметром --defaults-file), сделайте это.

После запуска MySQL и подтверждения изменения пароля удалите файл C:\mysql-init.txt.

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

Как изменить корневой пароль и имя пользователя 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).

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

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

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

IconsPage/warning.jpg

Следуя этой процедуре, вы отключите контроль доступа на сервере 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.

IconsPage/warning.jpg

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

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

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

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

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

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

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

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