Tôi không thực sự rõ ràng về lý do tại sao điều này lại trở thành vấn đề khi cài đặt XAMPP của tôi, vì tôi cũng đang chạy PHP 5.3.x trên hộp cục bộ của máy chủ và không gặp phải những vấn đề đó ở đó. Tuy nhiên, nó liên quan đến máy chủ mySQL của tôi đang chạy ở chế độ mã hóa "mật khẩu cũ". Các phiên bản PHP mới hơn sẽ không cho phép các loại kết nối đó, vì vậy bạn cần cập nhật máy chủ mySQL của mình để sử dụng mã hóa mật khẩu mới hơn. Dưới đây là các bước, giả sử bạn có quyền kiểm soát máy chủ mySQL. Nếu bạn không, điều đó nằm ngoài phạm vi hiểu biết của tôi.
-
định vị tệp cấu hình cho máy chủ mysql có tên
my.cnf
. Tôi đã tìm thấy của tôi tại/etc/my.cnf
. Bạn có thể chỉnh sửa nó bằngsudo nano /etc/my.cnf
-
Tìm dòng có nội dung
old_passwords=1
và thay đổi thànhold_passwords=0
. Bây giờ bạn đã nói với máy chủ rằng trong lần chạy tiếp theo và nó được yêu cầu mã hóa mật khẩu bằng lệnh PASSWORD (), nó sử dụng mã hóa 41 ký tự mới thay vì mã hóa kiểu 'cũ' 16 ký tự -
Bây giờ bạn phải khởi động lại máy chủ / dịch vụ mysql của mình. YMMV, nhưng trên Fedora, điều đó được thực hiện dễ dàng với
sudo service mysqld restart
. Kiểm tra hướng dẫn về hệ điều hành của bạn để khởi động lại daemon hoặc dịch vụ mysql -
Bây giờ chúng ta phải thực sự chỉnh sửa
user
của mình bảng trong mysql. Vì vậy, hãy mở một trình bao tương tác cho mysql (trên máy chủ, bạn có thể nhậpmysql -uYourRootUsername -pYourRootPassword
) -
Thay đổi thành
mysql
cơ sở dữ liệu. Đây là cơ sở dữ liệu chứa tất cả những thứ tốt cho hoạt động và xác thực của máy chủ. Bạn phải có quyền truy cập root để làm việc với cơ sở dữ liệu này. Nếu bạn nhận được 'quyền truy cập bị từ chối', bạn là SOL. Xin lỗi.use mysql;
sẽ chuyển sang cơ sở dữ liệu đó -
Bây giờ chúng tôi muốn cập nhật người dùng đang khiến bạn đau buồn. Cuối cùng có thể bạn sẽ muốn cập nhật tất cả người dùng của mình, nhưng hiện tại, chúng tôi chỉ tập trung vào người dùng đã gây ra lỗi.
update user set Password=password('YOUR_PASSWORD') where User='YOUR_USERNAME';
-
Bây giờ bạn chỉ cần yêu cầu mysql sử dụng mật khẩu mới để xác thực khi người dùng đó cố gắng kết nối.
flush privileges;
.
Bạn nên đi!