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

Zdalne zgłaszane połączenia mySQL nie mogą połączyć się z MySQL 4.1+ przy użyciu starego, niezabezpieczonego błędu uwierzytelniania z XAMPP

Nie jestem do końca jasny, dlaczego stało się to problemem w mojej instalacji XAMPP, ponieważ używam również PHP 5.3.x na lokalnym serwerze i nie miałem tam tych problemów. Ma to jednak związek z moim serwerem mySQL działającym w trybie szyfrowania „starym hasłem”. Nowsze wersje PHP nie zezwalają na tego rodzaju połączenia, więc musisz zaktualizować serwer mySQL, aby używał nowszego szyfrowania haseł. Oto kroki, zakładając, że masz kontrolę nad serwerem mySQL. Jeśli nie, wykracza to poza zakres mojej wiedzy.

  1. znajdź plik konfiguracyjny dla serwera mysql o nazwie my.cnf . Znalazłem swój w /etc/my.cnf . Możesz go edytować za pomocą sudo nano /etc/my.cnf

  2. Poszukaj wiersza z napisem old_passwords=1 i zmień to na old_passwords=0 . Poinformowałeś teraz serwer, że następnym razem, gdy zostanie uruchomiony i zostanie poproszony o zaszyfrowanie hasła za pomocą polecenia PASSWORD(), użyje nowego 41-znakowego szyfrowania zamiast 16-znakowego „starego” stylu szyfrowania

  3. Teraz musisz zrestartować serwer / usługę mysql. YMMV, ale w Fedorze można to łatwo zrobić za pomocą sudo service mysqld restart . Sprawdź instrukcje systemu operacyjnego dotyczące ponownego uruchomienia demona lub usługi mysql

  4. Teraz musimy właściwie edytować naszego user tabela w mysql. Więc otwórz interaktywną powłokę mysql (na serwerze możesz wpisać mysql -uYourRootUsername -pYourRootPassword )

  5. Zmień na mysql Baza danych. Jest to baza danych, która zawiera wszystkie dobre rzeczy do obsługi i uwierzytelniania serwera. Aby pracować z tą bazą danych, musisz mieć uprawnienia administratora. Jeśli otrzymasz odmowę dostępu, jesteś SOL. Przepraszam. use mysql; przełączy się na tę bazę danych

  6. Teraz chcemy zaktualizować użytkownika, który sprawiał Ci smutek. Ostatecznie prawdopodobnie będziesz chciał zaktualizować wszystkich swoich użytkowników, ale na razie skupiamy się tylko na użytkowniku, który zgłosił błąd. update user set Password=password('YOUR_PASSWORD') where User='YOUR_USERNAME';

  7. Teraz wystarczy powiedzieć mysql, aby używał nowego hasła do uwierzytelniania, gdy użytkownik próbuje się połączyć. flush privileges; .

Powinieneś być gotowy!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Różnice między INT i UUID w MySQL

  2. Usuwanie duplikatów z unikalnym indeksem

  3. MySQL — alternatywy dla zagnieżdżonych podzapytań przy ograniczaniu agregacji danych w skorelowanym podzapytaniu

  4. Przekazywanie tablicy przez AJAX z php do javascript

  5. MySQL:duży VARCHAR kontra TEXT?