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

Đăng nhập vào tài khoản MySQL bằng unix_socket

Để kết nối với máy chủ MySQL từ xa, trực tiếp hoặc thông qua đường hầm SSH, bạn không thể sử dụng unix_socket plugin xác thực yêu cầu quyền truy cập cục bộ vào tệp ổ cắm unix trên hệ điều hành Máy chủ DB.

unix_socket plugin được triển khai bằng cách sử dụng một loại tệp đặc biệt (unix socket), đây là một dạng giao tiếp giữa các quá trình (IPC) trong hệ thống * nix. Nó cho phép ứng dụng khách mysql CLI của bạn nói chuyện với DB và nó yêu cầu quyền truy cập cục bộ vào tệp socket (tức là:/tmp/mysql.sock ). Khi bạn kết nối với ổ cắm, unix_socket plugin (phía máy chủ) sẽ lấy uid của người dùng được kết nối với socket (tức là:người dùng của bạn) và sẽ tự động xác thực bạn mà không cần mật khẩu.

Các giải pháp khả thi:

Nếu bạn kết nối với Máy B bằng người dùng không phải root, bạn cần tạo người dùng DB có cùng tên với tên tài khoản người dùng hệ điều hành không phải root của bạn.

GRANT ALL PRIVILEGES ON *.* TO 'youruser'@'localhost' IDENTIFIED VIA unix_socket;

Giờ đây, bạn có thể kết nối với mysql bằng tài khoản người dùng của mình và ứng dụng khách mysql CLI bằng cách chỉ cần chạy:

youruser:~$ mysql

Nếu bạn muốn kết nối với DB với người dùng gốc, thì bạn cần quyền truy cập vào tài khoản gốc hoặc chính sách sudo được liên kết với người dùng của bạn để chạy ứng dụng khách mysql.

youruser:~$ sudo mysql

Rõ ràng là bạn có thể kích hoạt quyền truy cập mạng được xác thực thường xuyên vào tài khoản gốc DB của mình. Điều này có thể dẫn đến các vấn đề bảo mật, vì vậy tốt hơn nên giới hạn nó ở localhost:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'xxx' WITH GRANT OPTION;

Bây giờ bạn có thể đăng nhập từ bất kỳ tài khoản hệ điều hành cục bộ nào nếu bạn có thể xác thực thông tin đăng nhập của mình:

youruser:~$ mysql -u root -p



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. gửi một email với các bản ghi tìm nạp mysql

  2. Sắp xếp chuỗi truy vấn không gian địa lý:tìm n điểm gần nhất với một vị trí

  3. Nhận kết quả bằng cách so sánh hai bảng với một cột giống hệt nhau

  4. Làm cách nào để đặt AUTO_INCREMENT trong Laravel với Eloquent?

  5. Cách đồng bộ cơ sở dữ liệu MySQL giữa hai cơ sở dữ liệu từ xa (không có kỹ thuật sao chép cơ sở dữ liệu MySQL)