Khi tôi thử nâng cấp từ PHP 7.3 lên PHP 7.4, tôi đã gặp lỗi này:
Phản hồi của máy chủ không mong đợi trong khi thực hiện cacheing_sha2 auth 109
Như tôi thấy, điều này chỉ ra rằng PHP 7.4 MySQLi đang cố gắng sử dụng caching_sha2_password
plugin. Bài viết này chỉ ra rằng PHP MySQLi không hỗ trợ plugin (nó cũng gợi ý hỗ trợ trong tương lai cho nó), nhưng vì PHP 7.4 là mới và dường như đang cố gắng sử dụng nó, tôi đoán nó sẽ hoạt động. Ngoài ra, thông báo lỗi là khác nhau, nếu nó không được hỗ trợ ( không xác định truy cập so với phương thức xác thực ).
Vì vậy, tôi đã thay đổi plugin xác thực MySQL của mình thành caching_sha2_password
(sử dụng cùng một mật khẩu như trước):
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '';
FLUSH PRIVILEGES;
Nhưng điều này gây ra một lỗi khác:
Truy cập bị từ chối cho người dùng 'root' @ 'localhost' (sử dụng mật khẩu: CÓ).
Chuyển về PHP 7.3 và mysql_native_password
nó hoạt động trở lại.
Tôi đã sử dụng cùng một mật khẩu cho cả hai plugin, cùng một trang web và áp dụng các thay đổi php.ini giống nhau. Tôi tuy nhiên không thay đổi bất kỳ mysqli
cấu hình. Nhật ký cho MySQL không hiển thị gì, nhật ký apache2 chỉ hiển thị thông báo lỗi 'Truy cập bị từ chối'.
Liệu php7.4-mysqli có hỗ trợ caching_sha2_password
không? ĐÚNG
Tại sao mật khẩu của tôi bị từ chối và làm cách nào để khắc phục? Xem câu hỏi tiếp theo của tôi
Ngoài ra, nếu MySQLi vẫn không hỗ trợ plugin: Làm cách nào tôi có thể sử dụng mysql_native_password
với nó?
Access Denied
và sau đó quay lại với bạn không.