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

Làm thế nào để vô hiệu hóa thông tin đăng nhập gốc MySQL khi không có mật khẩu được cung cấp?

Người dùng gặp phải hành vi này trong các phiên bản MySQL / MariaDB mới hơn (ví dụ:Debian Stretch, v.v.) nên biết rằng trong bảng mysql.user, có cột được gọi là 'plugin'. Nếu plugin 'unix_socket' được bật, thì root sẽ có thể đăng nhập qua dòng lệnh mà không yêu cầu mật khẩu. Các cơ chế đăng nhập khác sẽ bị vô hiệu hóa.

Để kiểm tra xem có đúng như vậy không:

SELECT host, user, password, plugin FROM mysql.user;

sẽ trả về một cái gì đó giống như thế này (với unix_socket được bật):

+-----------+------+--------------------------+-------------+
| host      | user | password                 | plugin      |
+-----------+------+--------------------------+-------------+
| localhost | root | <redacted_password_hash> | unix_socket |
+-----------+------+--------------------------+-------------+

Để vô hiệu hóa điều đó và yêu cầu root sử dụng mật khẩu:

UPDATE mysql.user SET plugin = '' WHERE user = 'root' AND host = 'localhost';
FLUSH PRIVILEGES;

Lưu ý: Như đã lưu ý bởi @marioivangf (trong một nhận xét) trong các phiên bản MySQL mới hơn (ví dụ:5.7.x), bạn có thể cần đặt plugin thành 'mysql_native_password' (thay vì để trống).

Sau đó khởi động lại:

service mysql restart

Sự cố đã được khắc phục!:

[email protected] ~# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Nguồn: https://stackoverflow.com/a/44301734/3363571 Xin chân thành cảm ơn @SakuraKinomoto (hãy bình chọn câu trả lời của anh ấy nếu bạn thấy điều này hữu ích).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel 5.4 trên PHP 7.0:Ngoại lệ PDO - Không thể tìm thấy trình điều khiển (MySQL)

  2. Loại bỏ các bản sao chỉ bằng cách sử dụng một truy vấn MySQL?

  3. Xóa bằng Tham gia trong MySQL

  4. Làm thế nào để truy cập cơ sở dữ liệu mysql trực tuyến trong Android?

  5. Chuyển đổi giây thành ngày, giờ, phút, giây (MySQL)