- Xóa hoặc nhận xét old_passwords =1 trong my.cnf
Khởi động lại MySQL. Nếu không, MySQL sẽ tiếp tục sử dụng định dạng mật khẩu cũ, điều này có nghĩa là bạn không thể nâng cấp mật khẩu bằng cách sử dụng hàm băm PASSWORD () tích hợp.
Hàm băm mật khẩu cũ là 16 ký tự, mã băm mới là 41 ký tự.
-
Kết nối với cơ sở dữ liệu và chạy truy vấn sau:
SELECT user, Length(`Password`) FROM `mysql`.`user`;
Điều này sẽ cho bạn biết mật khẩu nào ở định dạng cũ, ví dụ:
+----------+--------------------+ | user | Length(`Password`) | +----------+--------------------+ | root | 41 | | root | 16 | | user2 | 16 | | user2 | 16 | +----------+--------------------+
Lưu ý ở đây rằng mỗi người dùng có thể có nhiều hàng (một hàng cho mỗi thông số kỹ thuật máy chủ lưu trữ khác nhau).
Để cập nhật mật khẩu cho từng người dùng, hãy chạy như sau:
UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username';
Cuối cùng, xóa đặc quyền:
FLUSH PRIVILEGES;
Nguồn: Cách khắc phục" mysqlnd không thể kết nối với MySQL 4.1+ bằng cách sử dụng xác thực cũ "trên PHP5.3