Как сбросить или изменить пароль root MySQL?


180

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

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


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

Вы знаете пароль пользователя root MySQL?
Франк Дернонкур

2
в mysql-server-5.7 эти методы не работают. используйте sudo без пароля, как указано в askubuntu.com/a/848504
Pragalathan M

Ответы:


225

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

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

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

    sudo mkdir -v /var/run/mysqld && sudo chown mysql /var/run/mysqld
  3. Бегать: sudo service mysql start
  4. Войдите в MySQL как root: mysql -u root mysql
  5. Замените YOURNEWPASSWORDна новый пароль:

    UPDATE
      mysql.user
    SET
      Password = PASSWORD('YOURNEWPASSWORD')
    WHERE
      User = 'root';
    FLUSH PRIVILEGES;
    exit;

Примечание: в некоторых версиях, если passwordстолбец не существует, вы можете попробовать:
UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';

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

Ссылки:

  1. Установить / изменить / сбросить пароль root для MySQL в Ubuntu Linux
  2. Как сбросить пароль root

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

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

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

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

9
шаг 3 не работал для меня с Ubuntu 18.04. Я только что вошел в систему, используя sudo mysql
itsols

122

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

  1. sudo vim /etc/mysql/my.cnf
  2. Добавьте следующие строки в конце:

    [ТуздЫ]
    
    пропуск грантовый столов
  3. sudo service mysql restart

  4. mysql -u root

  5. use mysql

  6. select * from mysql.user where user = 'root';- Посмотрите сверху, чтобы определить, называется ли столбец пароля паролем или authentication_string

  7. UPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and host = 'localhost'; - Используйте правильный столбец пароля сверху

  8. FLUSH PRIVILEGES;

  9. exit

  10. sudo vim /etc/mysql/my.cnf

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

  12. sudo service mysql restart

Для справки: https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html


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

9
Мне пришлось запустить UPDATE mysql.user SET authentication_string = ПАРОЛЬ ('newpwd') ГДЕ Пользователь = 'root'; вместо строки 5.
mbuc91,

2
Единственное решение, которое сработало для меня. У меня Ubuntu 17.04 и mysql 5.7
Мохамед

1
Грустно, это не работает для меня MySQL 5.7.22 Ubuntu 18.04
Марио

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

101

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

Если вы на 16.04, 14.04, 12.04:

sudo dpkg-reconfigure mysql-server-5.5

Если вы на 10.04:

sudo dpkg-reconfigure mysql-server-5.1

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

dpkg --get-selections | grep mysql-server

Обновлены заметки для mysql-server-5.7

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

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

UPDATE mysql.user SET authentication_string=PASSWORD('my-new-password') WHERE USER='root';
FLUSH PRIVILEGES;

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

sudo mysql_secure_installation

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

Если вы НЕ знаете пароль root, обратитесь к этой Ubuntu-ориентированной записи процесса .

Смотрите для получения дополнительной информации:

https://help.ubuntu.com/16.04/serverguide/mysql.html https://help.ubuntu.com/14.04/serverguide/mysql.html


3
Работает, даже если вы потеряли оригинальный пароль MySQL root - приятно.
Tanius

4
Работает сVer 14.14 Distrib 5.5.38, for debian-linux-gnu
justinpage

Работал с MySQL v 5.0, а также ...sudo dpkg-reconfigure mysql-server-5.0
DSHI

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

Ubuntu:sudo dpkg-reconfigure mysql-server-5.7; sudo mysql_secure_installation
kenorb

77

Что сработало для меня (Ubuntu 16.04, mysql 5.7):

Стоп MySQL

sudo service mysql stop

Сделать сервисный каталог MySQL.

sudo mkdir /var/run/mysqld

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

sudo chown mysql: /var/run/mysqld

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

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

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

mysql -uroot mysql

Затем:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
EXIT;

Отключи MySQL.

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

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

sudo service mysql start

Другие способы не работали для меня, но этот (спасибо!), Или вы также можете перейти сюда rricketts.com/reset-root-password-mysql-5-7-ubuntu-16-04-lts
Dung

10
Очень полезно ! В моем конкретном случае (Ubuntu 18.04 LTS) мне пришлось заменить хост "%" на "localhost"
FredericK

Это не сработало в Ubuntu 18.04. Но это работало с этим небольшим изменением, описанным здесь. Stackoverflow.com/a/53385753/1591143
Александар Попович

76

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

Ссылка взята из блога (dbrnd.com)

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

sudo stop mysql

Шаг 2: убить всех работающих mysqld.

sudo killall -9 mysqld

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

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

Шаг 4: Запустите клиент MySQL

mysql -u root

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

FLUSH PRIVILEGES;

Шаг 6: Вы можете обновить пароль root для mysql.

UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';

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

Шаг 7: Пожалуйста, выполните эту команду.

FLUSH PRIVILEGES;

На самом деле. Также это ближе к официальной документации . Если вы столкнулись с этим: «ОШИБКА 1524 (HY000): плагин« auth_socket »не загружен», посмотрите на stackoverflow.com/questions/37879448/…
Wtower

Мне также пришлось изменить mysql.user.plugin с «auth_socket» на «mysql_native_password» для моего пользователя root с хостом «localhost».
Брэндон

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

1
Аутентифицированная _строка помогла
Faiyaz Md Abdul

42

Я столкнулся с проблемами с Ubuntu 18.04 и MySQL 5.7, это решение

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

sudo service mysql restart

MYSQL-SERVER> = 5.7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET authentication_string=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;

MYSQL-СЕРВЕР <5.7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET password=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;

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

1
Это тот, который работал в Ubuntu 18.04 MySQL установки. MYSQL-SERVER >= 5.7версия будет точной.
Сатиш Манохар

34

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

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

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

    mysql -uroot -poldpassword
  2. Запустите эту команду:

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

или

  1. Запустите эту команду, которая устанавливает пароль для текущего пользователя (в данном случае «root»):

    SET PASSWORD = PASSWORD («новый пароль»);


26

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

sudo mysql

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

SELECT user,authentication_string,plugin,host FROM mysql.user;

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

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

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

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

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

FLUSH PRIVILEGES;

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

SELECT user,authentication_string,plugin,host FROM mysql.user;

и теперь вывод:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

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

exit;

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


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

это прекрасно работает в Ubuntu 18.04. Спасибо.
Махфуз

12

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

sudo dpkg-reconfigure mysql-server-5.5

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


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

sudo dpkg-reconfigure mysql-server-5.7 в Ubuntu 16.04
Ник Барретт

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

Если он говорит mysql-server is broken or not fully installed, можно использовать sudo apt purge mysql*иsudo apt install mysql-server
Павел

12

Это работает как шарм, я сделал это для Ubuntu 16.04. Полный кредит по ссылке ниже, как я получил оттуда. [ https://coderwall.com/p/j9btlg/reset-the-mysql-5-7-root-password-in-ubuntu-16-04-lts][1]

Стоп MySQL

sudo service mysql stop

Сделать сервисный каталог MySQL. sudo mkdir / var / run / mysqld

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

sudo chown mysql: /var/run/mysqld

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

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

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

mysql -uroot mysql

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

UPDATE mysql.user SET 
authentication_string=PASSWORD('YOURNEWPASSWORD'), 
plugin='mysql_native_password' WHERE User='root';
EXIT;

Отключи MySQL.

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

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

sudo service mysql start

11
  1. Остановите MySQL sudo сервис MySQL остановить

  2. Сделать сервисный каталог MySQL. sudo mkdir / var / run / mysqld

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

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

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

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

ОБНОВЛЕНИЕ mysql.user УСТАНОВИТЬ authentication_string = ПАРОЛЬ ('YOURNEWPASSWORD'), плагин = 'mysql_native_password' ГДЕ пользователь = 'root' AND Host = '%'; ВЫХОД;

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

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


1
Привет, этот ответ работает для меня, но я должен был использовать другую команду: UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';без AND Host='%'. Спасибо!
Дэвид Коррал

10

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

sudo mysql -u root

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

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

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


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

Я получил эту ошибку: «Ваш пароль не соответствует требованиям текущей политики». Я смог исправить это здесь: stackoverflow.com/a/43094873/9073437 . После установки модифицированной политики паролей все заработало нормально.
Grandtour

10

Это решение для меня. Я работаю в Ubuntu 18.04: https://stackoverflow.com/a/46076838/2400373

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

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost'; 

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

7

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

Шаг 1

sudo systemctl stop mysql

Шаг 2

sudo systemctl edit mysql

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

[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid --skip-grant-tables --skip-networking

Шаг 3

sudo systemctl daemon-reload
sudo systemctl start mysql

Шаг 4

sudo mysql -u root

Шаг 5

FLUSH PRIVILEGES;

Шаг 6

UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHEREuser = 'root';

Шаг 7

UPDATE mysql.user SET plugin ='mysql_native_password' WHERE user = 'root';

Шаг 8

sudo systemctl revert mysql

и наконец

sudo systemctl restart mysql

Теперь наслаждайтесь


Я думаю, что вы пропустили контент на шаге 2. Он не завершен.
Лукас Мендес Мота Да Фонсека

6

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

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo rm -rf /var/lib/mysql
sudo apt-get install -y mysql-server mysql-client 

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

введите описание изображения здесь


2
Хотелось бы, чтобы я начал здесь, вместо того, чтобы тратить час, пытаясь восстановить пароль.
Эрик Сизранд,

3

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

mysql - username -p

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

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

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

> flush privileges;

Тогда вы все сделали.


2

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

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

     mysql -u someuser -p < <(echo "SELECT PASSWORD('mypass');")

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

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

    mysql -u root -p < <(echo "SET PASSWORD FOR root@localhost = 'myhash';")
  3. Необязательно, давайте немного параноик: на вашем локальном компьютере очистите экран вашего терминала с помощью clearи очистите прокрутку виртуального терминала, чтобы скрыть пароль открытого текста, появляющийся в приведенной выше команде.


2

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

MySQL 5.7.6 и позже

sudo su
service mysql stop
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
\q;
exit
mysql -u root -p MyNewPass

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

sudo su
service mysql stop
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
\q;
exit
mysql -u root -p MyNewPass

2

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

mysql -u root -p

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

mysql> set password=password('the_new_password');
mysql> flush privileges;

1
Это самый простой способ! У меня это работает с mysql 5.7.21-0ubuntu0.17.10.1
Серхио Белевский

2

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

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

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

Пожалуйста, обратитесь к этой ссылке для получения дополнительной информации: dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html


1

Вместо сброса пароля на локальном компьютере есть обходной путь, если вы настроили phpmyadminподключение без указания пароля или имени пользователя. Проверьте это, запустив mysqlи apacheт. Д. Я xamppустановил на свой локальный компьютер. Таким образом, запуск xampp запустит все необходимые сервисы. Теперь собираюсь http://localhost/phpmyadminпоказать мне все базы данных. Это подтверждает, что вы сохранили имя пользователя и пароль в файле конфигурации phpmyadmin, который можно найти в месте phpmyadminустановки. Если вы xamppустановили эту phpmyadminпапку, ее можно найти в корневой папке xamppустановки. Поиск слова passwordв config.inc.phpфайле. Там вы найдете password и username.


1

Вы можете легко изменить пароль mysql, если он развернут на xampp через предоставленный графический интерфейс phpadmin.

phpMyAdmin -> User Accounts -> Edit Privileges (Select the intended user) -> Change Password (Tab)

1

для mysql 5.6 эта команда работает, и вы можете установить пароль с помощью мастера:

sudo dpkg-reconfigure mysql-server-5.6

Я пытался, но это не работает .. Я получаю эту ошибку ниже ... не могли бы вы помочь? Эта установка MySQL уже обновлена ​​до 5.7.21, используйте --force, если вам все еще нужно запустить mysql_upgrade
Vijaysinh Parmar

1

Вы можете попробовать эти шаги для сброса пароля root mysql 5.7:

Стоп Mysql Сервис 1-й

sudo /etc/init.d/mysql stop 

Войдите в систему как root без пароля sudo mysqld_safe --skip-grant-tablesи

После входа в MySQL терминал вам необходимо выполнить команды больше:

use mysql;




UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';


flush privileges;


sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

После перезапуска сервера MySQL Если вы все еще сталкиваетесь с ошибкой, вы должны посетить: Сброс MySQL 5.7 пароль root Ubuntu 16.04


1

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

UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';

после этого, пожалуйста, используйте flush:

FLUSH PRIVILEGES;

1

Установка пароля MySQL

  1. остановить службу базы данных MySQL

sudo /etc/init.d/mysql stop

  1. создать новый каталог mysqld

sudo mkdir / var / run / mysqld /

  1. дать доступ пользователю mysql

sudo chown mysql / var / run / mysqld /

  1. запустить MySQL в безопасном режиме ...

sudo mysqld_safe --skip-grant-tables &

  1. вход на сервер базы данных без пароля

sudo mysql -u root

  1. использовать базу данных MySQL по умолчанию

использовать mysql;

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

update user set authentication_string=PASSWORD("New_Passwore_Here") where = User 'корень';

  1. Сохраните изменения

    сбрасывать привилегии; выход;

  2. остановите MySQL safe_mode и запустите службу MySQL по умолчанию

sudo /etc/init.d/mysql stop

sudo /etc/init.d/mysql start

  1. войдите в базу данных MySQL, используя новый пароль root

sudo mysql -u root -p

*** Источник: https://websiteforstudents.com/resetting-mysql-root-password-on-ubuntu-16-04-17-10-and-18-04-lts/


1

Если вы знаете пароль пользователя root, войдите в MySQL с этими учетными данными. Затем выполните следующий запрос, чтобы обновить пароль.

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

0

при изменении / сбросе пароля MySQL следующие команды, перечисленные выше, не помогли. Я обнаружил, что входить в терминал и использовать эти команды бессмысленно. вместо этого используйте команду sudo stop all. УДАЛИТЬ СИСТЕМУ 32 для Windows, если это помогает.


1
Вопрос об ubuntuОС, а не о Windows. Что вы подразумеваете под DELETE SYSTEM 32 для Windows ?
EhsanT

0

Для сброса или изменения пароля введите sudo dpkg-reconfigure mysql-server-X.X(XX - это версия MySQL, которую вы установили, т. Е. 5.6, 5.7), а затем вы увидите экран, на котором необходимо установить новый пароль, а затем на следующем шаге подтвердите пароль и просто подождите немного. Вот и все.


0

Мне пришлось пройти этот маршрут на Ubuntu 16.04.1 LTS. Это что-то вроде сочетания некоторых других ответов выше, но ни один из них не помог. Я потратил час или больше, пробуя все другие предложения с веб-сайта MySql ко всему на SO, но в конце концов он начал работать с:

Примечание: хотя он показывал «Введите пароль для пользователя root», у меня не было исходного пароля, поэтому я просто ввел тот же пароль использоваться в качестве нового пароля.

Примечание: не было /var/log/mysqld.log только /var/log/mysql/error.log

Также обратите внимание, что это не сработало для меня:
sudo dpkg-reconfigure mysql-server-5.7

И не сделал:
sudo dpkg-reconfigure --force mysql-server-5.5

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

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

Затем:

  1. убить текущий pid mysqld
  2. запустите mysqld с помощью sudo / usr / sbin / mysqld &
  3. запустите / usr / bin / mysql_secure_installation

    Вывод из mysql_secure_installation

    root @ myServer: ~ # / usr / bin / mysql_secure_installation

    Обеспечение безопасности развертывания сервера MySQL.

    Введите пароль для пользователя root:

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

    Нажмите y | Y для Да, любую другую клавишу для Нет: нет Используя существующий пароль для пользователя root. Изменить пароль для root? ((Нажмите y | Y для Да, любую другую клавишу для Нет): y

    Новый пароль:

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

    Удалить анонимных пользователей? (Нажмите y | Y для Да, любую другую клавишу для Нет): y Успешно.

    Обычно пользователю root разрешается подключаться только с «localhost». Это гарантирует, что кто-то не сможет угадать пароль root из сети.

    Запретить root-вход удаленно? (Нажмите y | Y для Да, любую другую клавишу для Нет): y Успешно.

    По умолчанию MySQL поставляется с базой данных «test», доступ к которой может получить каждый. Это также предназначено только для тестирования и должно быть удалено перед переходом в производственную среду.

    Удалить тестовую базу данных и доступ к ней? (Нажмите y | Y для Да, любую другую клавишу для Нет): y

    • Удаление тестовой базы данных ... Успех.

    • Удаление привилегий на тестовой базе данных ... Успех.

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

    Перезагрузить таблицы привилегий сейчас? (Нажмите y | Y для Да, любую другую клавишу для Нет): y Успешно.

    Все сделано!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.