Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Người dùng không thể truy cập cơ sở dữ liệu

localhost không khớp với % trong MySQL. Có vẻ như điều đó nên xảy ra, nhưng thực tế thì không. Bạn phải cấp riêng các đặc quyền cho [email protected] , cả cho USAGE đặc quyền và các đặc quyền trên mỗi cơ sở dữ liệu.

Hoặc bạn có thể kết nối dưới dạng [email protected] cái nào hiện khớp với % . Sử dụng địa chỉ IP cho localhost có vẻ như nó sẽ hoạt động giống hệt localhost, nhưng không. Bạn cần có hai dòng trong mysql.user bảng (và cả trong mysql.db trong trường hợp của bạn) để bật cả hai.

Để chứng minh sự khác biệt giữa localhost và 127.0.0.1:

Đang kết nối dưới dạng mysql -h localhost sử dụng giao diện ổ cắm UNIX và bỏ qua TCP / IP. Điều này có thể tốt hơn một chút về hiệu suất, nhưng nó có ảnh hưởng đến việc đối sánh tài trợ được mô tả ở trên.

Bạn có thể buộc kết nối TCP / IP cục bộ bằng cách kết nối dưới dạng mysql -h 127.0.0.1 . Sau đó, nó sẽ nhận các khoản tài trợ bạn đã thực hiện cho [email protected]% .

Vì vậy, để có được người dùng, mật khẩu và đặc quyền giống nhau cho cả giao diện socket và giao diện TCP / IP, bạn cần chạy tất cả trong số các câu sau:

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. mysql phân biệt chữ hoa chữ thường trong utf8_general_ci

  2. Kết nối với MySQL từ xa

  3. Xóa mệnh đề DEFINER khỏi MySQL Dumps

  4. Khóa ngoại trong MySQL?

  5. Làm thế nào để có được ngày hôm qua trong MySQL