Odmowa dostępu dla użytkownika „root @ localhost” (przy użyciu hasła: NIE)

116

Jestem nowy w MySQL, próbuję uruchomić WordPress na moim pulpicie Windows i potrzebuje MySQL.

Instaluję wszystko, Web Platform Installerco zapewnia Microsoft. Nigdy nie ustawiłem hasła roota dla MySQL, a na ostatnim etapie instalacji WordPressa prosi o hasło serwera MySQL.

Jakie jest domyślne hasło roota (jeśli takie istnieje) i jak je zmienić?

Próbowałem:

mysql -u root password '123'

Ale pokazuje mi:

Access denied for user 'root@localhost' (using password:NO)

Potem próbuję:

mysql -u root -p

Jednak prosi o hasło, którego nie mam.


Aktualizacja : zgodnie z sugestią Bozho wykonałem następujące czynności:

  1. Zatrzymałem usługę MySQL z usług systemu Windows
  2. Otwarty CMD
  3. Zmieniono lokalizację na c: \ program files \ mysql \ bin
  4. Wykonano poniższe polecenie

    mysqld --defaults-file="C:\\program files\\mysql\\mysql server 5.1\\my.ini" --init-files=C:\\root.txt

  5. Polecenie zostało uruchomione z ostrzeżeniem o zestawie znaków, o którym wspomniałem poniżej

  6. Usługę MySQL uruchamiam z usług Windows
  7. Piszę w linii poleceń

    mysql -u root -p EnterPassword: 123 // 123 was the password

  8. W wierszu poleceń wyświetlany jest następujący błąd

    Access denied for user 'root@localhost' (using password:**YES**)

Jak to rozwiązać? Czekam na wiadomość od ciebie.

Nasser Hadjloo
źródło
1
Pierwsze polecenie jest błędne, powinno być -plub --password, ale nie password. Dlatego mysql odpowiada USING PASSWORD NO.
Konerak
3
Wydaje się, że nikt nie dał mu oczywistej odpowiedzi. Hasło dla rootidentyfikatora użytkownika jest puste po pierwszej instalacji. Więc po prostu zrób, mysql -u root -pa następnie naciśnij Enter, tj. Zostaw puste hasło. Następnie oczywiście umieść hasło na rootidentyfikatorze użytkownika.
RiggsFolly,
1
@RiggsFolly nope, nie działa! puste hasło oznacza odmowę dostępu!
J86,
Chcę dodać komentarz, ponieważ nie jestem pewien, czy zaakceptowana odpowiedź jest poprawna. U mnie wpisując mysql -u root -p i po zapytaniu o hasło, podaj właściwe (ustawione przy instalacji) zadziałało. Zamiast udowodnienia nazwy DB do -p z bazą danych, o której wiem, że istnieje, nie zadziałało.
Carmine Tambascia

Odpowiedzi:

49

Możesz zresetować hasło roota . Pamiętaj, że nie zaleca się używania roota bez hasła.

Bozho
źródło
@Bozho - postępuję zgodnie z instrukcją i tworzę plik tekstowy i wywołuję go z wymienionego polecenia, po czym mam do czynienia z 100608 [warning] --default-character-set is deprecated and will be removed in a future release. please use --character-set-server instead.------------------------ -------- i wreszcie, kiedy ponownie uruchomię usługę mysql, napotykam dokładny błąd, ale tym razem (using password:yes)co mam zrobić?
Nasser Hadjloo
@Bozo - Zauważ, że nie mogłem uruchomić twojego polecenia z mysqldt-nturuchomiłem go przez mysqldt -ntWłaściwie to pierwsze nie jest rozpoznawalne dla cmd. Czekam na wiadomość od ciebie.
Nasser Hadjloo
@Bozho - zaktualizowałem moje pytanie o błąd. Dziękuję za Twój czas.
Nasser Hadjloo
@Bozho - czy jest sposób na zaktualizowanie / dostosowanie moich błędów mysql? ** Zaktualizuj „Odmowa dostępu dla użytkownika„ root @ localhost ”(używając hasła: NIE)” na „Odmowa dostępu dla użytkownika„ moja nazwa @ localhost ”(używając hasła: NIE)” **
Hitesh
81

za tego rodzaju błąd; wystarczy ustawić nowe hasło dla użytkownika root jako administrator. wykonaj następujące kroki:

[root ~]# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:NO)
  1. Zatrzymaj uruchomioną usługę / demona mysql

    [root ~]# service mysql stop   
    mysql stop/waiting
  2. Uruchom mysql bez żadnych uprawnień, używając następującej opcji; Ta opcja służy do uruchamiania i nie używania systemu uprawnień MySQL.

    [root ~]# mysqld_safe --skip-grant-tables &

W tym momencie terminal wydaje się zatrzymywać . Niech tak będzie i użyj nowego terminala w kolejnych krokach.

  1. wprowadź wiersz poleceń mysql

    [root ~]# mysql -u root
    mysql> 
  2. Napraw ustawienie uprawnień użytkownika root;

    mysql> use mysql;
    Database changed
    mysql> select * from  user;
    Empty set (0.00 sec)
    mysql> truncate table user;
    Query OK, 0 rows affected (0.00 sec)
    mysql> flush privileges;
    Query OK, 0 rows affected (0.01 sec)
    mysql> grant all privileges on *.* to root@localhost identified by 'YourNewPassword' with grant option;
    Query OK, 0 rows affected (0.01 sec)

* jeśli nie chcesz żadnego hasła lub raczej pustego hasła

    mysql> grant all privileges on *.* to root@localhost identified by '' with grant option;
    Query OK, 0 rows affected (0.01 sec)*
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

Potwierdź wyniki:

    mysql> select host, user from user;
+-----------+------+
| host      | user |
+-----------+------+
| localhost | root |
+-----------+------+
1 row in set (0.00 sec)
  1. Wyjdź z powłoki i uruchom ponownie mysql w trybie normalnym.

    mysql> quit;
    [root ~]# kill -KILL [PID of mysqld_safe]
    [root ~]# kill -KILL [PID of mysqld]
    [root ~]# service mysql start
  2. Teraz możesz pomyślnie zalogować się jako użytkownik root za pomocą ustawionego hasła

     [root ~]# mysql -u root -pYourNewPassword 
     mysql> 
user2977819
źródło
2
Naciśnij Enter po „[root ~] # mysqld_safe --skip-grant-table &” i otwórz inny terminal, aby wpisać „[root ~] # mysql -u root”
Liuda
spotkałem ten problem i zrobiłem dużo, po prostu zapomnij o ponownym uruchomieniu usług db ... wielkie dzięki!
Bruce Lee
3
W kroku 3 otrzymujęERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
MrMartin
4
@MrMartin, stwórz ten reż sudo mkdir -p /var/run/mysqldi daj mu pozwoleniesudo chown mysql:mysql /var/run/mysqld
niceday
to jest odpowiedź, która bardzo mi pomogła!
Jones G,
17

1) Możesz ustawić hasło roota, wywołując konsolę MySQL. To jest zlokalizowane w

C:\wamp\bin\mysql\mysql5.1.53\bin domyślnie.

Wejdź do katalogu i wpisz MySQL. następnie ustaw hasło w następujący sposób.

    > SET PASSWORD FOR root@localhost = PASSWORD('new-password');

2) Możesz skonfigurować aplikację phpmyadmin wampa dla użytkownika root poprzez edycję

C:\wamp\apps\phpmyadmin3.3.9\config.inc.php 

Uwaga: - jeśli używasz xampp, plik będzie znajdować się pod adresem

C:\xampp\phpMyadmin\config.inc.php

To wygląda tak:

        $cfg['Servers'][$i]['verbose'] = 'localhost';
        $cfg['Servers'][$i]['host'] = 'localhost';
        $cfg['Servers'][$i]['port'] = '';
        $cfg['Servers'][$i]['socket'] = '';
        $cfg['Servers'][$i]['connect_type'] = 'tcp';
        $cfg['Servers'][$i]['extension'] = 'mysqli';
        $cfg['Servers'][$i]['auth_type'] = 'config';
        $cfg['Servers'][$i]['user'] = 'root';
        $cfg['Servers'][$i]['password'] = 'YOURPASSWORD';
        $cfg['Servers'][$i]['AllowNoPassword'] = false;

Błąd "Access denied for user 'root @ localhost' (using password: NO)" zostanie rozwiązany, gdy ustawiony $cfg['Servers'][$i]['AllowNoPassword']na false

Jeśli prywatnie zmieniłeś hasło dla „root @ localhost”, musisz zrobić 2 rzeczy, aby rozwiązać błąd „Dostęp dla użytkownika 'root @ localhost'” został zablokowany:

  1. jeśli ['hasło'] ma puste cudzysłowy, takie jak „”, umieść swoje hasło w cudzysłowie.
  2. zmień (używając hasła: NIE) na (używając hasła: TAK)

To rozwiąże problem.

Uwaga: phpmyadmin to osobne narzędzie dostarczane z wampem. Po prostu zapewnia interfejs do MySQL. jeśli zmienisz hasło mojego roota sql, powinieneś zmienić konfiguracje phpmyadmin. Zwykle phpmyadmin jest skonfigurowany jako użytkownik root.

yellobird
źródło
nie, nie możesz ... mysql nie uruchomi się: c: \ wamp64 \ bin \ mysql \ mysql5.7.23 \ bin> mysql BŁĄD 1045 (28000): Odmowa dostępu dla użytkownika 'ODBC' @ 'localhost' (używając hasła: NIE)
Jaxx0rr
9

Otrzymałem ten sam błąd na kapitanie OS X El. MySQL w wersji 5.7.0 Po wykonaniu tych czynności udało mi się połączyć z mysql z rootem.

Zatrzymaj serwer mysql

sudo mysql.server stop

Uruchom mysql w trybie awaryjnym

sudo mysqld_safe --skip-grant-tables

Używając mysqld, zmień bazę danych na mysql i zaktualizuj szczegóły użytkownika „root”.

show databases;
use mysql;
UPDATE mysql.user 
    SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
    WHERE User = 'root' AND Host = 'localhost';
exit;

Następnie zakończ proces „mysqld_safe” i uruchom mysql normalnie. Powinieneś być w stanie zalogować się do mysql przy użyciu roota i nowego hasła. Więcej szczegółów w dokumentacji SQL

Sushantkumar M
źródło
4

Po prostu edytuj my.iniplik w ścieżce C: \ xampp \ mysql \ bin. Poprostu dodaj:

skip-grant-tables

linia między wierszami # The MySQL server [mysqld]i port=3306. Następnie zrestartuj serwer MySQL.

Wygląda jak:

Zrzut ekranu

Ryan Oscar
źródło
Kiedy to robię, pojawia się kolejny błądcommunications link failure
Ahmed Hussein
3

Upewnij się, że usługa MySQL jest uruchomiona na twoim komputerze, a następnie postępuj zgodnie z instrukcjami MySQL dotyczącymi początkowej konfiguracji roota (wyszukaj `` windows '', a nastąpi przejście do kroków konfiguracji roota):

http://dev.mysql.com/doc/refman/5.1/en/default-privileges.html

sholsapp
źródło
To rozwiązanie nie zadziała, ponieważ nie mam hasła, którego potrzebuje w drugim kroku.
Nasser Hadjloo
Właśnie na to patrzyłem, kiedy wysłałem link, czy na pewno to nie działa? Nie widzę żadnego odniesienia do starego hasła. W systemie Windows zrób to: shell> mysql -u root mysql> USTAW HASŁO DLA 'root' @ 'localhost' = HASŁO ('newpwd'); mysql> USTAW HASŁO DLA 'root'@'127.0.0.1' = PASSWORD ('newpwd'); mysql> USTAW HASŁO DLA 'root' @ '%' = PASSWORD ('newpwd');
sholsapp
1
Jak powiedziałem wcześniej, pisząc mysql -u rootnapotykam problem i nie mogę zalogować się do mysql, aby uruchomić drugą linię. więc jak używać tego polecenia?
Nasser Hadjloo
3

Użyj mysql -u root -p Zapyta o hasło, wprowadź hasło i wprowadź.

Vikash Kumar
źródło
To zadziałało po tym, jak otrzymałem odmowę dostępu dla użytkowników.
Shawn W
2

Innym rozwiązaniem, jeśli ktoś otrzyma błąd Podane hasło do konta użytkownika „root” jest nieprawidłowe lub nie udało się połączyć z serwerem bazy danych również z odpowiednim hasłem, jest następujące

• W rejestrze systemu Windows usuń klucz reg mysql_pwd z katalogu HKCU \ Software \ Microsoft \ WebPlatformInstaller

• Odinstaluj starszą wersję łącznika MySQL .NET

• Pobierz i zainstaluj najnowszy łącznik MySql .NET .

Silverstorm
źródło
Sprawdzanie hasła i nazwy bazy danych zadziałało dla mnie .. +1
Abhinav Dobhal
2

W przypadku MySQL 5.7. Oto poniższe kroki:

Całkowicie zatrzymaj serwer MySQL. Można to zrobić, otwierając okno Usługi w systemie Windows XP i Windows Server 2003, w którym można zatrzymać usługę MySQL.

Otwórz wiersz poleceń MS-DOS za pomocą "cmd" w oknie Uruchom. Wewnątrz przejdź do folderu bin MySQL, takiego jak C: \ MySQL \ bin, używając polecenia cd.

Wykonaj następujące polecenie w wierszu polecenia: mysqld.exe -u root --skip-grant-table

Pozostaw bieżący wiersz poleceń MS-DOS bez zmian i otwórz nowe okno wiersza poleceń MS-DOS.

Przejdź do folderu bin MySQL, takiego jak C: \ MySQL \ bin, używając polecenia cd.

Wpisz mysql i naciśnij enter.

Powinieneś teraz mieć działający wiersz poleceń MySQL. Wpisz use mysql; aby przejść do bazy danych „mysql”.

Wykonaj następujące polecenie, aby zaktualizować hasło:

zaktualizuj zestaw użytkownika authentication_string = hasło ('1111'), gdzie user = 'root';

Katie
źródło
1

W swoim kodzie zastąp „root” nazwą użytkownika serwera i hasłem swoim hasłem serwera. Na przykład, jeśli masz DB i swoje pliki php na serwerze http://www.example.com, to oczywiście musiałbyś wejść na tę witrynę serwera używając swojej nazwy użytkownika i hasła.

Pir Fahim Shah
źródło
1

Jeśli używasz XAMPP, po prostu przejdź do, C:\xampp\phpMyAdmina następnie otwórz linię config.inc.phpwyszukiwania $cfg['Servers'][$i]['password'] = ''i wpisz tam swoje hasło.

Ajay Rawat
źródło
1

Dla niektórych informacji pojawia się błąd po zmianie hasła:

Odmowa dostępu dla użytkownika „root” @ „localhost” (przy użyciu hasła: NIE)

Odmowa dostępu dla użytkownika „root” @ „localhost” (używając hasła: TAK)

W obu przypadkach wystąpił błąd.

Ale chodzi o to, że potem spróbowałem

mysql -uroot -ppassword zamiast

mysql -u root -p password -> ze spacjami między -uroot i -ppassword, więc może jeśli ktoś będzie miał kłopoty, może spróbować w ten sposób.

profiile_samir
źródło
0

Czasami dzieje się to po prostu z powodu instalacji Wampa lub zmiany opcji hasła użytkownika root. Można użyć uprawnień -> root (użytkownik), a następnie ustawić opcję hasła na NIE, aby uruchamiać rzeczy bez hasła LUB ustawić hasło i używać go w aplikacji.

Sayyad
źródło
0
  1. Zmień hasło z config.inc.phpobecnego wC:\xampp\phpMyAdmin .
  2. Rodzaj mysql -u root -p wiersz polecenia.
  3. Zostaniesz poproszony o podanie hasła. Wprowadź hasło, które zaktualizowałeś w config.inc.php.
user12682744
źródło
0

jeśli zmieniłeś port na niestandardowy, musisz go określić:

$ connection = mysqli_connect ('localhost: 3308', 'root', '', 'loginapp');

Mitch
źródło
-3
mysqladmin -u root -p password

Wprowadź swój current password

następnie

Wprowadź swój new password

djrconcepts
źródło
1
Chodzi o to, że OP nie zna aktualnego hasła, ponieważ nigdy nie zostało ustawione .
Nateowami
Znałem swoje hasło, ale miałem problem z logowaniem za pomocą hasła tymczasowego. ta odpowiedź zadziałała dla mnie
Bernard