Як дізнатись кореневий пароль MySQL


167

Я не можу з’ясувати свій пароль MySQL root; як я можу це дізнатися? Чи є файл, де зберігається цей пароль?

Я переходжу за цим посиланням, але не маю каталогів directadmin в локальній.


Знайдений простим пошуком Google: dev.mysql.com/doc/refman/5.0/uk/resetting-permissions.html
Арран

11
пароль root за замовчуванням - зачекайте його - "root" (без лапок), або взагалі немає пароля (і чи справді ваш сервер mysql )
Нікола Богданович

так, це мій локальний сервер mysql на моєму ноутбуці
Om3ga

тож хтось просто пройшов через це запитання і скинув голосування на кожну правильну і відповідну відповідь?
lanzz

Відповіді:


142

завдяки @thusharaK я міг скинути пароль root, не знаючи старого пароля.

У ubuntu я зробив наступне:

sudo service mysql stop
sudo mysqld_safe --skip-grant-tables --skip-syslog --skip-networking

Потім запустіть mysql в новому терміналі:

mysql -u root

І запустіть такі запити, щоб змінити пароль:

UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
FLUSH PRIVILEGES;

У MySQL 5.7 поле пароля з поля таблиці mysql.user було видалено, тепер назва поля - "автентифікація_string".

Вийдіть з безпечного режиму mysql та запустіть службу mysql:

mysqladmin shutdown
sudo service mysql start

24
Довелося користуватися mysqladmin -u root -p shutdownновим паролем.
SL Barth - Відновіть Моніку

2
Приємний потік інструкцій особливо: тоді запустіть mysql в новому терміналі
Мохаммед Субхі Шейх Куроуш

8
я не можу цього зробити mysql -u root. На ній видно помилкуAccess denied
Авінаш Радж

4
@AvinashRaj: Спробуйте: sudo mysql -u root
Аллен Гінгріх

Дивовижно. Я розумію, що працювало в RHEL 7: Термінал 1: сервіс sudo mysql stop sudo mysqld_safe --skip-grant-table --skip-syslog --skip-мережевий термінал 2: mysql -u root UPDATE mysql.user SET Пароль = PASSWORD ('новий пароль') WHERE User = 'root'; ПРИГОТОВЛЕННЯ ПРИМІТКИ; Вимкнення mysqladmin -u root -p Примітка: Після вимкнення mysqladmin ви побачите безпечний режим, який виходить у Терміналі 1. Служба sudo mysql start. Це все, і це працює як шарм із новим паролем!
Користувач StackOverFlow

65

Ви не можете переглянути хешований пароль; єдине, що ви можете зробити, це скинути його!

Зупинити MySQL:

sudo service mysql stop

або

$ sudo /usr/local/mysql/support-files/mysql.server stop

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

$ sudo mysqld_safe --skip-grant-tables

(вище рядка - вся команда)

Це буде поточна команда, поки процес не буде закінчений, тому відкрийте інше вікно оболонки / терміналу, увійдіть без пароля:

$ mysql -u root

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

MySQL 5.7 і новіші:

mysql> use mysql; 
mysql> update user set authentication_string=password('password') where user='root'; 

Запустіть MySQL:

sudo mysql start

або

sudo /usr/local/mysql/support-files/mysql.server start

Ваш новий пароль - "пароль".


sudo /usr/local/mysql/support-files/mysql.server зупинити sudo: /usr/local/mysql/support-files/mysql.server: команду не знайдено
Isuru

Що робити в цьому випадку?
Ісуру

Схоже, що mysql встановлений неправильно. Видаліть його належним чином та перевстановіть.
tk_

Дуже дякую. Щось розійшлося з моїм, mysql_secure_installationі root вже не співпрацював. Що робить authentication_stringустановка?
буде

3
Щоб перезапустити, спробуйте mysqladmin -u root -p shutdownз цим новим паролемsudo service mysql start
forumulator

37

MySQL 5.7 і вище зберігає корінь у файлі журналу MySQL.

Спробуйте:

sudo grep 'temporary password' /var/log/mysqld.log

У моєму випадку паролю тут не було; однак натомість /var/log/mysql/error.logмістив попередження про те, що кореневий пароль порожній - таким чином, врятував мій день :)
Janaka Bandara

19

одне, що спонукало мене до нової установки mySQL, і дивуюся, чому я не можу отримати пароль за замовчуванням для роботи і чому навіть методи скидання, коли не працюють. добре виявляється, що на Ubuntu 18 найновіша версія сервера mysql взагалі не використовує auth пароль для кореневого користувача за замовчуванням. Тож це означає, що не має значення, для чого ви його встановили, він не дозволить вам використовувати його. він очікує, що ви увійдете з пільгового сокета. так

mysql -u root -p

взагалі не буде працювати, навіть якщо ви використовуєте правильний пароль !!! він забороняє доступ незалежно від того, що ви вводите.

Замість цього вам потрібно використовувати

sudo mysql

що буде працювати з будь-яким паролем. то, як тільки вам потрібно, введіть

 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password you want to use';

потім вийдіть, і тепер кривава річ нарешті прийме ваш пароль


17

Ви не можете його знайти. Він зберігається в базі даних, до якої вам потрібен пароль root, і навіть якщо ви отримали доступ якось, він хеширується одностороннім хешем. Ви можете скинути його: http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html


14

Виконайте ці дії, щоб скинути пароль у системі Windows

  1. Зупиніть службу Mysql у менеджера завдань

  2. Створіть текстовий файл і вставте наведене нижче твердження

MySQL 5.7.5 і новіші версії:

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


MySQL 5.7.6 та новіших версій:

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

  1. Збережіть як mysql-init.txtі помістіть його 'C' drive.

  2. Відкрийте командний рядок і вставте наступне

C:\> mysqld --init-file=C:\\mysql-init.txt


2
Це було рятівником життя, ВЕЛИКА порада!
Ніколас Крейдберг

працював у Centos7 mysqld --init-file=/root/m.txt. Я додав вище команду SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');до /root/m.txt
Damodar Bashyal

8

Якщо менеджер пакунків не вимагає, щоб ви ввели пароль root під час встановлення, паролем root за замовчуванням є порожній рядок. Для підключення до щойно встановленого сервера введіть:

shell> mysql -u root --password=
mysql>

Щоб змінити пароль, поверніть оболонку unix і введіть:

shell> mysqladmin -u root --password= password root

Новий пароль - "root". Тепер підключіться до сервера:

shell> mysql -u root --password=
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

На жаль, пароль змінився. Використовуйте нове root:

shell> mysql -u root --password=root
...
blah, blah, blah : mysql welcome banner
...
mysql> 

Бінго! Нове зробіть щось цікаве

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

Мовриці


1
він не використовує паролі, а автентифіковані сокети за замовчуванням. тому просто зміна пароля вже недостатньо хороша.
Кіт Рамос

7

На додаток до інших відповідей, у встановленні cpanel пароль root root mysql зберігається у файлі з назвою /root/.my.cnf. (і служба cpanel повертає її назад при зміні, тому інші відповіді тут не допоможуть)


6

ви можете переглянути пароль root mysql, добре, я спробував його на mysql 5.5, тому не знаю про іншу нову версію, добре працює чи ні

nano ~/.my.cnf

4

Це працювало для мене:

На терміналі введіть наступне

$ sudo mysql -u root -p

Введіть пароль: // просто натисніть клавішу Enter

mysql>


здається, що сервер mysql вже не використовує auth пароль за замовчуванням. Ви повинні запустити mysql-клієнт як суперкористувача (sudo), щоб отримати доступ, поки ви не зміните метод входу.
Кіт Рамос

4

Пароль за замовчуванням, який працював для мене після негайної установки сервера mysql, є: mysql


2
можливо, він не відповів на запитання, але багато людей, що приїжджають сюди, можуть вважати, що це вирішує їхню проблему.
Охад Коен

3

Процедура змінюється залежно від версії MySql. Дотримуйтесь процедури, як описано у вашій версії:

  • ПОДАЧИ - Прочитайте перед сторінкою інструкцій для вашої версії MySql *

  • На кроці 5: Замість запуску CMD створіть ярлик на робочому столі, викликаючи CDM.exe. Потім клацніть правою кнопкою миші на ярлику і виберіть "Виконати як адміністратор".

  • На кроці 6: Пропустіть першу запропоновану версію команди та виконайте другу, таку з параметром --defaults-file

  • Після виконання команди, якщо все в порядку, вікно CMD залишається відкритим, і команда кроку 6 продовжує виконувати. Просто закрийте вікно (натисніть «x»), а потім примушуйте закрити MySQl з диспетчера завдань.

  • Видаліть файл за допомогою команд SQL і запустіть знову MySQL. Тепер пароль потрібно змінити.

5,0 http://dev.mysql.com/doc/refman/5.0/uk/resetting-permissions.html

5.1 http://dev.mysql.com/doc/refman/5.1/uk/resetting-permissions.html

... просто змінити версію за посиланням (5.5, 5.6, 5.7)


3

У вашому файлі "ім'я хоста" .err всередині папки даних, на якій працює MySQL, спробуйте шукати рядок, що починається з:

"Створюється тимчасовий пароль для roor @ localhost"

ви можете використовувати

less /mysql/data/dir/hostname.err 

потім команда slash, за якою слід рядок, який потрібно шукати

/"A temporary password"

Потім натисніть n, щоб перейти до наступного результату.



0

Система:

  • CentOS Linux 7
  • mysql Ver 14.14 Розподілити 5.7.25

Порядок:

  1. Відкрийте два сеанси оболонки, увійшовши до одного як root-користувач Linux, а інший як не-root користувач з доступом до mysqlкоманди.

  2. Під час кореневого сеансу зупиніть звичайного mysqld-слухача та запустіть слухача, який обходить аутентифікацію пароля ( зверніть увагу: це великий ризик безпеки, оскільки кожен, хто має доступ до mysql команди, може отримати доступ до ваших баз даних без пароля. Ви можете закрити активні сеанси оболонки. та / або відключити доступ до оболонки перед цим):

    # systemctl stop mysqld
    # /usr/sbin/mysqld --skip-grant-tables -u mysql &

  3. У ході сеансу, що не має коренів, увійдіть до mysql та встановіть пароль root mysql:

    $ mysql
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

    mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
    Query OK, 0 rows affected, 1 warning (0.01 sec)

    mysql> quit;

  4. У вашому кореневому сеансі введіть безоплатний екземпляр mysqld і відновіть нормальний сервіс mysqld для обслуговування:

    # kill %1
    # systemctl start mysqld

  5. У своєму сеансі, що не має права кореспонденції, протестуйте новий кореневий пароль, який ви налаштували вище:

    $ mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    ...
    mysql>


-2

Я вирішив це по-іншому, для когось це може бути простіше.

Я зробив це так, бо спробував запустити в безпечному режимі, але не можу з'єднатися з помилкою: ПОМИЛКА 2002 (HY000): Не вдається підключитися до локального сервера MySQL через сокет '/var/run/mysqld/mysqld.sock' (2)

Що я зробив, це підключитись як root:

$ sudo mysql -u root

Тоді я створив нового супер користувача:

mysql> grant all privileges on *.* to 'myuser'@'%' identified by 'mypassword' with grant option;
mysql> quit

Потім увійдіть як мійсер

$ mysql -u myuser -p -h localhost

Спроба змінити пароль не дала мені помилок, але нічого не зробила для мене, тому я кинув і заново створив root користувача

mysql> drop user 'root'@'localhost;
mysql> mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'mypassword' with grant option;

Користувач root тепер працює з новим паролем


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.