Quyền của MySQL dựa trên địa chỉ mà chúng đang kết nối cũng như người dùng. Vì vậy, [email protected] và [email protected] sẽ có hai nhóm quyền riêng biệt. Thay đổi localhost thành 127.0.0.1 như num8er đã đề cập có thể sẽ hoạt động nếu mã của bạn và cơ sở dữ liệu nằm trên cùng một máy chủ.
Nếu bạn có quyền truy cập đầu cuối vào hộp chứa php của bạn, bạn có thể thử kết nối trực tiếp loại trừ bất kỳ điều gì liên quan đến php bằng cách sử dụng sau:
mysql -h 10.4.1.163 -u root -p[pass] database -e "SHOW TABLES"
Lưu ý không có khoảng trắng giữa -p
và mật khẩu. Nếu thành công, bạn sẽ nhận được danh sách các bảng trong database
.
Để cấp quyền truy cập cho người dùng khác hoặc cho một tên máy chủ / IP khác, bạn sẽ muốn chạy một cái gì đó theo dòng sau:(mặc dù bạn thực sự nên tạo một người dùng riêng với các quyền hạn chế hơn dựa trên yêu cầu của bạn).
GRANT ALL PRIVILEGES ON `database`.* TO 'root'@'10.4.1.163';
Kiểm tra tài liệu trên MySQL's GRANT tại đây - http://dev.mysql .com / doc / refman / 5.7 / en / Grant.html
Một lưu ý nhỏ - làm ơn, vui lòng không chỉ đưa bất kỳ dữ liệu cũ nào vào một truy vấn mà không sử dụng ít nhất mysql_real_escape_string
( http://php.net/manual/en/ function.mysql-real-Escape-string.php
) trước khi thực hiện. Bạn cũng có thể xem xét PDO ( http://php. net / manual / en / book.pdo.php
) thường được ưu tiên hơn mysql_
hiện không được dùng nữa chức năng