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.


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 - 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> 

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.


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


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


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


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ź.


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 .


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';


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.


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.


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.


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.


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.

0

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

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


-3
mysqladmin -u root -p password

Wprowadź swój current password

następnie

Wprowadź swój new password


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.