Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да нулирате паролата на MySQL root

MySQL е една от най-популярните системи за управление на бази данни за уеб приложения. MySQL има парола за root или парола на ниво администратор, точно като много уеб услуги. Паролите за root позволяват на потребителите да изпълняват всякакви функции от най-високо ниво в база данни.

Докато настройвате MySQL, се препоръчва да зададете root парола за вашата база данни за проблеми, свързани със сигурността. Това обаче не означава, че не можете да използвате MySQL без root парола. От вас зависи да помислите за текущата задача и да решите дали да зададете root парола или не.

Нулиране на MySQL root парола

Има много въпроси, зададени от потребителите на MySQL относно „Как да нулирате паролата на MySQL root“. Ако сте задали root парола, но за съжаление сте я загубили, тогава този урок за статия ще ви преведе през процеса на нулиране на root парола както в Linux, така и в Windows.

Предварителни условия

  • Съществуваща база данни MySQL
  • Администраторски права на компютъра, който хоства базата данни MySQL
  • Достъп до сървър на Windows или Linux, работещ с MySQL
  • Интерфейс на командния ред или достъп до терминал
  • Текстов редактор. (Не се притеснявайте, тъй като потребителите на Windows имат инсталиран Notepad по подразбиране на компютрите си, докато потребителите на Linux имат предварително инсталиран vim).

След като имате всички споменати предпоставки, нека да продължим и да научим как да нулирате или промените паролата за root на MySQL.

Ще направим този процес на два фронта:

  1. Как да нулирам MySQL root парола в Linux
  2. Как да нулирате MySQL root парола в Windows

1. Как да нулирате паролата на MySQL root в Linux

Стъпка 1:Влезте в MySQL

Когато стартирате вашата операционна система Linux, е важно да влезете със същия потребител, който обикновено работи с MySQL. Това е от решаващо значение за избягване на грешки като създаване на файлове, собственост на root потребител, които могат да причинят щети на вашата система. Въпреки това, можете също да влезете като root потребител, след като стартирате своя MySQL сървър. За да направите това, уверете се, че сте стартирали MySQL, като използвате синтаксиса по-долу.

user=fosslinux

Стъпка 2:Намиране на .pid файла, използван от услугата MySQL

Следващата стъпка е да намерите .pid файла. В повечето Linux системи те се съхраняват на това място:

/var/lib/mysql or /var/run/mysqld/ or /usr/local/mysql/data/. 

Тъй като не всички Linux системи са еднакви, можете да изпробвате някой от посочените по-горе пътища и да видите дали можете да намерите файла. За да намерите бързо файла, можете да стесните търсенето си до файлове, започващи с mysqld (или името на вашия хост) и завършва с .pid.

Забележка: Търсенето във файла ще опрости процеса; затова ви препоръчваме да го изпробвате.

След като намерите файла, преминете към следващата стъпка

Стъпка 3:Убиване на процеса mysqld / .pid

Преди да нулираме или създадем нова root парола, първо трябва да спрем MySQL сървъра. Това може да стане, като отворите терминала и изпълните командния ред по-долу:

kill `cat /mysql-data-directory/host_name.pid`

Забележка: Заменете mysql-data-directory/host_name.pid с името на файла, което намерихме в стъпка 2. Също така е жизненоважно да посочите целия път на файла, за да избегнете грешки.

Допълнителен съвет: Винаги се уверете, че използвате клавиша за отметка за връщане вместо ключа с единични кавички. Клавишът за обратно отметка се намира над клавиша Tab на повечето компютри и преди единия numkey.

Стъпка 4:Създаване на нов файл с root парола

Сега е време да отворите любимия си текстов редактор. За нашия случай ще използваме текстовия редактор Vim. Отворете терминала с помощта на пряк път CTRL + ALT + T, след което изпълнете командата по-долу:

sudo vim mysql-init

Забележка:ако получите грешка, след като изпълните командата по-горе, изпълнете тази команда, за да продължите с другите процеси:

sudo apt install vim

Сега добавете реда по-долу във файла:

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

Забележка: Когато въвеждате ръчно горния ред в терминала, не забравяйте да включите всички точки и запетая и единични кавички. Също така заменете „Нова парола ” фраза с новата парола, която искате да използвате. И накрая, уверете се, че използвате силна и сигурна парола или вижте тук, за да научите как да генерирате силна произволна парола в Linux.

Горната команда ще работи само на хост машината, която използвате, когато изпълнявате командата. Въпреки това, ако планирате да се свържете с друга система, се препоръчва замяната на localhost със съответното или по-скоро подходящо име на хост, за да работи командата. Ако не го направите, ще срещнете грешки.

След като добавите новия файл към вашия текстов редактор, запазете го на:

 home/mysql-init.

Стъпка 5:Рестартиране на MySQL сървъра и прилагане на новосъздадената парола

Време е да приложим промените, които направихме в нашата новосъздадена парола. Първо, ще рестартираме MySQL сървъра, като изпълним командата по-долу в терминала:

mysqld --init-file=/home/mysql-init &

Тази команда ще стартира MySQL и ще приложи паролата за текстов файл, която създадохме в предишната стъпка. В зависимост от метода, който използвате за стартиране на вашия сървър, може да се наложи да добавите други опции като –defaults-file преди командата init.

След като приложите новосъздадената парола и рестартирате MySQL сървъра, е време за почистване. Ще направим това, като влезем във вашия MySQL сървър като root потребител и проверим дали създадената от нас парола действително работи. След като потвърдите, че файлът работи добре, продължете и изтрийте файла, който създадохме в стъпка 4 по-горе.

2. Как да нулирате MySQL root паролата в Windows

Ако сте потребител на Windows и бихте искали да научите как да нулирате вашата MySQL root парола на Windows, прочетете тази статия до края.

Стъпка 1:Спиране на MySQL сървъра.

Преди да спрете MySQL сървъра, трябва да проверите дали сте влезли като администратор.

  • Натиснете клавишите Win + R на Windows, за да стартирате диалоговия прозорец Изпълнение от типа:
services.msc
  • След това щракнете върху OK.
  • Превъртете надолу през списъка с услуги и намерете услугата MySQL. Щракнете с десния бутон върху него и след това изберете опцията Stop, както е показано на изображението по-долу:

Стъпка 2:Отворете любимия си текстов редактор

За илюстративни цели ще използваме текстовия редактор по подразбиране на Notepad. Въпреки това, не се отчайвайте, ако имате различен текстов редактор, тъй като процесите са подобни.

  • Сега щракнете върху менюто "Старт" и потърсете Notepad. Кликнете върху него, за да стартирате.

Като алтернатива, използвайте този път, за да намерите Notepad:menu>Windows Accessories>Notepad.

Стъпка 3:Създаване на нов текстов файл с парола с помощта на командата за парола

Копирайте и поставете синтаксиса по-долу в текстовия редактор, за да избегнете грешки, докато пишете ръчно:

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

Както направихме за Linux, уверете се, че запазвате точката и запетаята и единичните кавички и заменете NewPassword фраза с новата парола, която възнамерявате да използвате във вашия MySQL.

Щракнете върху опцията Файл, след това Запиши като, за да запазите паролата на текстовия файл в корена на вашия твърд диск. Запазете файла като mysql-init.txt.

Следователно командата localhost може да прави промени в паролата само във вашата система. Ето защо, ако възнамерявате да промените паролата в друга система, например през мрежата, заменете локалния хост с подходящото име на хост за различната система.

Стъпка 4:Стартирайте CMD (команден ред)

  • Щракнете върху клавишите Ctrl + Shift + Esc на клавиатурата си
  • Изберете менюто „Файл“, след което Изпълнете нова задача
  • Въведете cmd.exe и поставете отметка в квадратчето Изпълнявай като администратор
  • Щракнете върху OK, за да стартирате команден ред с администраторски права.

Стъпка 5:Рестартиране на MySQL сървър и прилагане на новия конфигурационен файл

  • Използвайки командния ред, отидете до директорията MySQL:
cd C:\Program Files\MySQL\MySQL Server 8.0\bin
  • След това въведете следната команда:
mysqld --init-file=C:\\mysql-init.txt

Забележка: Трябва да вземете предвид, че има две обратни наклонени черти преди mysql-init бърза. Освен това, ако сте използвали име, различно от това, което използвахме за илюстрация в стъпка 2 по-горе, тогава трябва да използвате това име веднага след двете обратни наклонени черти без интервал.

След като това приключи, вече можете да влезете във вашия MySQL като root потребител, като използвате новосъздадената парола.

Уверете се, че сте проверили отново, за да се уверите, че новата парола работи безупречно. След потвърждение продължете и премахнете файла mysql-init.txt, който съхранихме в нашата C:\ директория.

Общи инструкции за нулиране на MySQL root парола

Предходните раздели предоставят задълбочени инструкции за нулиране на MySQL root пароли за Linux и Windows. Като алтернатива, когато използвате която и да е платформа, можете да използвате MySQL клиента, за да нулирате паролата. Важно е обаче да се отбележи, че този метод е по-малко сигурен в сравнение с предходните методи.

За да използвате MySQL клиента, следвайте стъпките, подчертани по-долу:

1. Първата стъпка е да спрете MySQL сървъра. След като спрете, рестартирайте го с опцията по-долу:

--skip-grant-tables

Тази опция ще позволи на всеки да се свърже без парола, но ще има всички привилегии и деактивира изявления за управление на акаунта като ALTER USER и ЗАДАДЕТЕ ПАРОЛА

Тази опция се счита за несигурна, тъй като ако сървърът стартира с –skip-grant-tables опция, пропускане на мрежа се активира чрез деактивиране на отдалечени връзки.

2. Сега се свържете с MySQL сървъра, като изпълните командата по-долу:

mysql

Забележка: не се изисква парола при рестартиране на MySQL сървъра с MySQL клиент, тъй като сървърът стартира с –skip-grant-tables .

3. Сега, в MySQL клиента, изпълнете командата по-долу, за да кажете на сървъра да презареди таблиците за предоставяне. Това ще позволи на извлеченията за управление на акаунта, които са били спрени по-рано, да работят отново:

mysql> FLUSH PRIVILEGES;

След като изпълните командата, изпълнете командата ALTER USER, за да промените паролата. Сменете MyNewPass , с новата парола, която възнамерявате да използвате.

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

Забележка: За да промените root паролата за друга система, уверете се, че сте променили локалния хост с името на хоста на системата.

Сега можете да се свържете с вашия MySQL сървър като root потребител, използвайки паролата, която създадохме. След това спрете и рестартирайте сървъра нормално без –skip-grant-tables опции и без да активирате променливата skip-networking.

Това е всичко, което успешно възстановихте вашата MySQL root парола.

Заключение

Ако преди това сте присвоили root парола на MySQL, но сте я забравили, можете да я нулирате, като зададете нова парола на вашия MySQL, както е показано в тази статия.

Забележка: MySQL не изисква root парола за свързване. Недостатъкът на това да не зададете root парола на вашия MySQL е, че е несигурен и може да загубите ценностите си. Ето защо, ако никога не сте задавали root парола на вашия MySQL, силно препоръчваме да следвате стъпките, споменати по-горе, за да създадете такава и да защитите вашите данни и информация.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL CONVERT_TZ()

  2. Подготвено изявление, `WHERE .. IN(..)` заявка и сортиране — с MySQL

  3. Не мога да намеря my.cnf на моя компютър с Windows

  4. Добавянето на 'LIMIT 1' към MySQL заявките прави ли ги по-бързи, когато знаете, че ще има само 1 резултат?

  5. Мога ли сляпо да заменя всички mysql_ функции с mysqli_?