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

Użytkownik nie ma dostępu do bazy danych

localhost nie pasuje do % w MySQL. Wydaje się, że powinno, ale w rzeczywistości tak nie jest. Musisz osobno przyznać uprawnienia [email protected] , zarówno dla USAGE przywilej i dla przywilejów w każdej bazie danych.

Możesz też połączyć się jako [email protected] co robi dopasuj % . Używanie adresu IP dla hosta lokalnego wydaje się działać identycznie z hostem lokalnym, ale tak nie jest. Musisz mieć dwie linie w mysql.user tabeli (a także w mysql.db tabeli w twoim przypadku), aby włączyć oba.

Aby zademonstrować różnicę między hostem lokalnym a 127.0.0.1:

Łączenie jako mysql -h localhost używa interfejsu gniazda UNIX i omija protokół TCP/IP. Może to być nieco lepsze dla wydajności, ale ma to wpływ na opisane powyżej dopasowanie grantów.

Możesz wymusić lokalne połączenie TCP/IP, łącząc się jako mysql -h 127.0.0.1 . Następnie odbierze dotacje, które przyznałeś na [email protected]% .

Tak więc, aby uzyskać tego samego użytkownika, hasło i uprawnienia zarówno dla interfejsu gniazda, jak i interfejsu TCP/IP, musisz uruchomić wszystkie następujących stwierdzeń:

GRANT USAGE ON *.* TO 'myuser'@'%' IDENTIFIED BY PASSWORD '*7733323232...'
GRANT USAGE ON *.* TO 'myuser'@'localhost' IDENTIFIED BY PASSWORD '*7733323232...'
GRANT ALL PRIVILEGES ON `db1`.* TO 'myuser'@'%'
GRANT ALL PRIVILEGES ON `db1`.* TO 'myuser'@'localhost'
GRANT ALL PRIVILEGES ON `db2`.* TO 'myuser'@'%'
GRANT ALL PRIVILEGES ON `db2`.* TO 'myuser'@'localhost'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. NodeJS MySQL:mierz czas wykonania zapytania

  2. Formularz w PDO do aktualizacji danych

  3. Jak wydrukować tabelę bazy danych MySQL w PHP za pomocą PDO

  4. Dopasowywanie całych słów ze znakami kropki w MySQL

  5. korzystanie z GROUP BY w mysql 8