Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Quyền truy cập bị từ chối đối với người dùng 'www-data' @ 'localhost - làm thế nào để đối phó với điều đó?

www-data là người dùng Debian chạy apache và php. Nếu bạn cố gắng truy vấn khi không có kết nối hợp lệ, php / mysql sẽ cố gắng tạo kết nối bằng cách sử dụng <unix-user>@localhost không có mật khẩu. Đây là nơi [email protected] (using password:NO) đến từ.

Lý do rất có thể khiến điều này bắt đầu xảy ra ngay bây giờ (mặc dù nó đã chạy tốt trong 2 năm trước đó) là tải db của bạn đã tăng đến mức một số kết nối không thể thành công (có thể do max_connections, hoặc max_user_connections; mặc dù điều này cũng có thể là do các giới hạn khác như bộ nhớ, luồng, v.v.). Khi điều này xảy ra, cuộc gọi của bạn tới mysql_connect sẽ phát ra thông báo lỗi và trả về FALSE . Nếu bạn không phát hiện ra lỗi này, thì lệnh gọi mysql tiếp theo của bạn (có thể là mysql_query hoặc mysql_select_db) sẽ cố gắng kết nối với [email protected] - do đó gây ra sự cố mà bạn đang gặp phải.

Tôi khuyên bạn nên bật báo cáo lỗi và hiển thị lỗi (theo đề xuất của @DarkMantis):

ini_set('error_reporting', E_ALL|E_STRICT);
ini_set('display_errors', 1);

Ngoài ra, hãy đảm bảo rằng cuộc gọi đến mysql_connect của bạn là không đứng trước @ ký tên; và đảm bảo kiểm tra giá trị trả về. Nó sẽ trông giống như thế này:

$cxn = mysql_connect('localhost','yourusername','yourpassword');
if( $cxn === FALSE ) {  die('mysql connection error: '.mysql_error()); }


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết xuất cơ sở dữ liệu mysql vào bản sao lưu bản rõ (CSV) từ dòng lệnh

  2. PDO-MySQL:Giá trị Boolean được chuyển đổi thành 1 hoặc chuỗi trống trên liên kết câu lệnh đã chuẩn bị

  3. Table không hỗ trợ tối ưu hóa, thay vào đó, thực hiện tạo lại + phân tích nghĩa là gì?

  4. Cách tự động tải MySQL khi khởi động trên OS X Yosemite / El Capitan

  5. phát hiện lỗi mysql mà không thực thi nó