mysql_connect (): Máy chủ yêu cầu phương thức xác thực không xác định đối với máy khách [mysql_old_password] trong


8

Tôi đang cố gắng chạy PHP 5.4.1 (được biên dịch từ nguồn) nhưng khi tôi cố gắng kết nối trên mysql tôi nhận được:

Warning: mysql_connect(): The server requested authentication method unknown to the client [mysql_old_password] in

Khi sử dụng PHP 5.3 / 5.2 nó hoạt động bình thường. Bất kỳ ý tưởng về những gì gây ra vấn đề này?


Xem câu trả lời này trong một câu hỏi khác: stackoverflow.com/a/50776838/1041047
Robin Qiu

Câu trả lời:


10

Hãy thử đọc nó: liên kết

MySQL giới thiệu băm mật khẩu dài hơn trong (tôi nghĩ) phiên bản 4.1 và máy chủ của bạn có thể vẫn sử dụng chúng (kiểm tra băm mật khẩu 16 byte trong bảng người dùng mysql của bạn). Các phiên bản mới hơn sử dụng băm mật khẩu dài hơn. Máy chủ của bạn hỗ trợ cả hai, nhưng máy khách của bạn (php) dường như chỉ hỗ trợ những cái mới trong phiên bản này (và trên).

Nếu có thể, hãy sử dụng giải pháp từ liên kết trong dòng đầu tiên và đặt lại mật khẩu của bạn với hàm băm mới, nhưng hãy cẩn thận, nếu bạn đang sử dụng bất kỳ ứng dụng khách (cũ) nào khác dựa vào mật khẩu cũ, khả năng tương thích có thể bị hỏng. Ngoài ra, hãy thử tìm kiếm hỗ trợ mật khẩu cũ cho MySQL trong PHP, nhưng tôi không chắc về điều đó.



3

Tôi biết đây là một chủ đề cũ, nhưng tôi đã làm việc xung quanh vấn đề này, mà không phải nâng cấp / hạ cấp bất cứ điều gì. Về cơ bản, tôi đã nhận xét dòng old_passwords = 1 trong tệp my.cnf của tôi, khởi động lại mysql, thêm / sửa đổi người dùng mà cuối cùng đã có băm 16 byte, sau đó tôi quay lại và bỏ ghi chú dòng old_passwords = 1 và khởi động lại mysql. Nên về cơ bản:

  • bình luận old_passwords = 1
  • khởi động lại mysql
  • thêm / sửa đổi người dùng
  • uncomment old_passwords = 1
  • khởi động lại mysql

Vì vậy, bạn có nó: 1 người dùng sử dụng loại mật khẩu mới, trong khi những người dùng khác có loại mật khẩu cũ của họ. Và mọi người đều có thể đăng nhập! ;)


1

Nhiều lần điều này có thể xảy ra nếu máy chủ MYSQL của bạn đang sử dụng hàm băm mật khẩu cũ , thay đổi mật khẩu Hoặc nâng cấp máy chủ để lấy hàm băm mật khẩu mới nhất khắc phục sự cố xác thực.


1
Tôi vừa thay đổi mật khẩu người dùng db một lần nữa, giả sử MySql sẽ sử dụng hàm băm mới. Nó đã làm việc. Không có thay đổi khác được yêu cầu.
eyal_katz

0

Tôi đã có một thông báo tương tự khi cố gắng nâng cấp cài đặt mediawiki của mình. Tôi đang sử dụng Netfirms làm nhà cung cấp dịch vụ lưu trữ của mình và tôi đã giải quyết vấn đề này bằng cách đăng nhập vào bảng điều khiển, đi đến khu vực MySQL và thay đổi cơ sở dữ liệu mà mediawiki đang sử dụng. Sau đó tôi đã có thể tiến hành nâng cấp mediawiki.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.