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

Jak mogę zresetować domyślne zachowanie użytkownika root w MySQL 5.7?

Problem:

auth_socket moduł wymaga ręcznej instalacji i włączenia w root użytkownika, jeśli nadpiszesz zmiany w wersji 5.7, importując swój stary MySQL 5.5 baza danych i tabela użytkowników.

Rozwiązanie:

Dla użytkowników nadal chcemy używać mysql_native_password , domyślny. Dla root , chcemy użyć auth_socket .

install plugin auth_socket soname 'auth_socket.so';
use mysql; update user set plugin='mysql_native_password';
update mysql.user set plugin = 'auth_socket' where User='root';
flush privileges;

Jeśli zrobisz to w złej kolejności (dodaj root auth_socket kolumna przed zainstalowaniem wtyczki), wtedy nie będziesz mógł załadować mysql, ponieważ wtyczka nie wykona uwierzytelnienia. Aby uruchomić i uruchomić mysql w trybie awaryjnym, użyj tego:

sudo service mysql stop
sudo mysqld_safe --skip-grant-table &
sudo mysql -u root -p -h localhost

Te poprawki zostały wprowadzone podczas importowania pełnej bazy danych i tabeli użytkowników z MySQL 5.5 do MySQL 5.7 , migracja z Ubuntu 14.04 do Ubuntu 16.04 .

Narzędzia:

Zobacz Wtyczki:show plugins \g

Pokaż auth_socket dla użytkownika root:select auth_socket from mysql.user where user='root';




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Klucz obcy Mysql według nieunikalnego klucza — jak to możliwe?

  2. łącze do bazy danych między dwoma serwerami mysql działającymi w dwóch różnych lokalizacjach

  3. Hibernate Criteria API:uzyskaj n losowych wierszy

  4. Dlaczego MySQL całkowicie przeformatowuje tekst zapytania VIEW?

  5. Konwertuj to zapytanie na elokwentne