Tôi đã thấy điều này trước đây, trong đó một người dùng mysql đăng nhập qua php và một người khác thì không. Đôi khi người dùng thậm chí làm việc từ dòng lệnh nhưng không phải từ php.
Luôn là điều Emil đang làm hai. Một người dùng mysql thực sự là cặp người dùng/máy chủ. do đó, người dùng megadots @ localhost và người dùng megadots @ mycoolhost được liệt kê trong bảng mysql.user dưới dạng hai bản ghi riêng biệt.
Nếu bạn có thể đăng nhập từ dòng lệnh chạy truy vấn này.
SELECT user, host FROM mysql.user
bạn sẽ thấy danh sách đầy đủ người dùng và máy chủ lưu trữ của họ.
nếu bạn nhận ra người dùng phpMyAdmin đang hoạt động, hãy xem cột máy chủ lưu trữ có thể là máy chủ bạn muốn sử dụng.
để thiết lập lại máy chủ chạy các truy vấn này (! Hãy cẩn thận làm điều này làm việc của bạn với bảng privilages cho toàn bộ cài đặt mysql)
update mysql.user set host = 'hostname'
where user = 'username' and host = 'oldhostname';
flush privileges;
Nếu bạn thấy một kỷ lục với tên người dùng và% như dẫn chương trình mà sẽ có ưu tiên hơn mọi thứ khác, nếu có nhiều bản ghi cho người dùng và% làm máy chủ cho một trong số họ, có thể tên người dùng có% là máy chủ có mật khẩu sai và bất kể bạn đã đặt lại mật khẩu tên người dùng @ localhost bao nhiêu lần nó không hợp lệ vì nó sẽ được so sánh với tên người dùng @% khi đăng nhập.
Nguồn
2009-03-21 00:26:59
Bạn đã cấp đặc quyền như thế nào? Vấn đề trong trường hợp này không phải là mã php, nhưng vào cuối mysql. Câu lệnh kết nối là chính xác. –