Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nie można połączyć się z MySQL 4.1+ przy użyciu starego uwierzytelniania

edytuj:dotyczy to tylko sytuacji, gdy kontrolujesz serwer MySQL... jeśli nie patrzysz na Metoda haszowania hasła Mysql stara vs nowa

Najpierw sprawdź zapytaniem SQL

SHOW VARIABLES LIKE 'old_passwords'

(w kliencie wiersza poleceń MySQL, HeidiSQL lub dowolny interfejs użytkownika), czy serwer jest domyślnie ustawiony na używanie starego schematu haseł. Jeśli zwróci old_passwords,Off po prostu masz stare wpisy hasła w user stół. Serwer MySQL użyje starej procedury uwierzytelniania dla tych kont. Możesz po prostu ustawić nowe hasło do konta, a nowa procedura zostanie użyta.

Możesz sprawdzić, która procedura będzie używana, patrząc na mysql.user stół (z kontem, które ma dostęp do tego stołu)

SELECT `User`, `Host`, Length(`Password`) FROM mysql.user

To zwróci 16 dla kont ze starymi hasłami i 41 dla kont z nowymi hasłami (i 0 dla kont bez hasła, możesz też się nimi zająć).
Użyj narzędzi zarządzania użytkownikami interfejsu MySQL (jeśli takie istnieją) lub

SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword');
FLUSH Privileges;

(zastąp User i Host z wartościami uzyskanymi z poprzedniego zapytania.) Następnie ponownie sprawdź długość hasła. Powinno być 41 teraz Twój klient (np. mysqlnd) powinien być w stanie połączyć się z serwerem.

zobacz także dokumentację MySQL:* http://dev. mysql.com/doc/refman/5.0/en/stary-klient.html
* http://dev.mysql. com/doc/refman/5.0/en/password-hashing.html
* http://dev.mysql. com/doc/refman/5.0/en/set-password.html



  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:Wybierz wszystkie dane między dwiema datami

  2. MySQL utf8mb4, Błędy podczas zapisywania emotikonów

  3. Które zapytanie SQL jest lepsze, MATCH AGAINST czy LIKE?

  4. MySQL usuwa niektóre klucze obce

  5. Pymysql Cursor.fetchall() / Fetchone() Zwraca Brak