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

115

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

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

  • 0
    Если вам не нужны данные, вы можете «сбросить» пароль, удалив mysql полностью: stackoverflow.com/questions/10853004/… затем установите его снова (он запросит у вас «новый» пароль root) FWIW: )
  • 0
    Знаете ли вы пароль root для MySQL?
Показать ещё 1 комментарий
Теги:
phpmyadmin

25 ответов

139
Лучший ответ

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

  1. Остановить сервер MySQL: sudo/etc/init.d/mysql stop
  2. Запустите конфигурацию mysqld: sudo mysqld --skip-grant-tables &
  3. Войти в MySQL как root: mysql -u root mysql
  4. Замените 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. Установить/Изменить/Сбросить пароль пользователя MySQL на Ubuntu Linux
  2. Как восстановить пароль root
  • 13
    Конечно, после этого вам нужно будет завершить временный серверный процесс без пароля, который вы запустили на шаге 2. Возможно, используйте sudo killall -9 mysqld ? а затем sudo service mysql start перезапускать нормального демона ...
  • 7
    Метод в этом ответе необходим только для сброса корневого пароля MySQL, который вы не знаете [источник ]. Если вы это знаете, инструкция SET PASSWORD MySQL для вас.
Показать ещё 10 комментариев
79

Официальный и простой способ сбросить пароль 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-centric.

См. Дополнительную информацию:

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

  • 3
    Работает даже тогда, когда вы потеряли оригинальный пароль MySQL root - приятно.
  • 4
    Работает с Ver 14.14 Distrib 5.5.38, for debian-linux-gnu
Показать ещё 4 комментария
63

Я поделился пошаговым окончательным решением с reset паролем 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;
  • 3
    Это на самом деле работает для меня, а не принятый ответ, попробуйте!
  • 0
    В самом деле. Также это ближе к официальной документации . Если вы столкнулись с этим: «ОШИБКА 1524 (HY000): плагин« auth_socket »не загружен», посмотрите на stackoverflow.com/questions/37879448/…
Показать ещё 3 комментария
57

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

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

    [mysqld]
    
    skip-grant-tables
  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

  • 5
    Наконец, это сработало для меня! Я использую MySQL 5.7.18 в Ubuntu 16.04. Я попробовал dpkg-переконфигурировать, ответ Анвеша, ответ Кристиана Марка и даже инструкции на странице справки MySQL.
  • 8
    Мне пришлось запустить UPDATE mysql.user SET authentication_string = PASSWORD ('newpwd') WHERE User = 'root'; вместо строки 5.
Показать ещё 4 комментария
33

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

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

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

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

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

или

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

    SET PASSWORD = PASSWORD ('newpassword');

22

Что сработало для меня (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='%';
EXIT;

Отключите MySQL.

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

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

sudo service mysql start
  • 0
    Другие способы не работали для меня, но этот (спасибо!), Или вы также можете перейти сюда rricketts.com/reset-root-password-mysql-5-7-ubuntu-16-04-lts
  • 7
    Очень полезно ! В моем конкретном случае (Ubuntu 18.04 LTS) мне пришлось заменить хост "%" на "localhost"
Показать ещё 1 комментарий
12

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

sudo dpkg-reconfigure mysql-server-5.5

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

  • 1
    Это гораздо лучший способ сделать это. Я не смог запустить предыдущие команды из-за ошибки mysql ...
  • 0
    sudo dpkg-перенастроить mysql-server-5.7 в Ubuntu 16.04
Показать ещё 2 комментария
9

Это работает как шарм, который я сделал для 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' AND Host='%';
EXIT;

Отключите MySQL.

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

Сначала запустите службу MySQL.

sudo service mysql start
8
  1. Остановить MySQL sudo service mysql stop

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

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

  4. Запустите MySQL вручную, без проверок разрешений или сетевого взаимодействия. sudo mysqld_safe - -S kip-grant-tables - -S kip-networking &

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

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

UPDATE mysql.user SET authentication_string = PASSWORD ('YOURNEWPASSWORD'), plugin = 'mysql_native_password' WHERE User = '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='%' . Спасибо!
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:

Изображение 3929

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

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

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-SERVER <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 была единственным, что действительно решило проблему
  • 1
    Это тот, который работал в Ubuntu 18.04 MySQL установки. MYSQL-SERVER >= 5.7 если быть точным.
4

Это решение относится к предыдущей версии 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 .
3

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

mysql - username -p

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

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

Затем сбросьте привилегии с помощью:

> flush privileges;

Тогда вы все закончите.

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 PASSWORD() в системе, где вы хотите изменить пароль, это может привести к тому, что пароль появится в лог файле MySQL в текстовом формате [источник]. Сохраняя их, их резервные копии и т.д. Так же безопасно, как и пароль для меня, как кошмар, поэтому я предпочитаю делать это следующим образом:

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

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

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

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

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

1

Тебе это не нужно. Просто войдите:

mysql -u root -p

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

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

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

sudo dpkg-reconfigure mysql-server-5.6
  • 0
    Я пытался, но это не работает .. Я получаю эту ошибку ниже ... не могли бы вы помочь? Эта установка MySQL уже обновлена до 5.7.21, используйте --force, если вам все еще нужно запустить mysql_upgrade
1

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

UPDATE mysql.user SET Password = PASSWORD ('newpwd') WHERE Пользователь = 'root';

после этого просьба использовать флеш   ПРИВИЛЕГИИ FLUSH;

1

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

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

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

0

Поскольку документация 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-network предотвращать удаленные подключения.

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

shell> mysql

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

mysql> FLUSH PRIVILEGES;

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

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

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

0

Вы можете попробовать выполнить следующие шаги для сброса пароля 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

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. убить текущий mysqld pid
  2. запустить mysqld с помощью sudo/usr/sbin/mysqld &
  3. run/usr/bin/mysql_secure_installation

    Вывод из mysql_secure_installation

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Все сделано!

0

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

0

при изменении/сбросе пароля MySQL следующие команды, перечисленные выше, не помогли. Я обнаружил, что переход в терминал и использование этих команд бессмысленно. вместо этого используйте команду sudo stop all. DELETE SYSTEM 32 для окон, если это помогает.

  • 1
    Вопрос по поводу ОС ubuntu не Windows. Что вы имеете в виду под DELETE SYSTEM 32 для Windows ?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню