Truy tìm nguyên nhân lỗi “Error establishing a database connection” của WordPress

Website đang chạy bình thường, bỗng nhiên xuất hiện lỗi “Error establishing a database connection”, lỗi này cho thấy WordPress không kết nối được Server (Database), trong nhiều trường hợp, chỉ cần restart lại service MySQL sẽ hoạt động lại bình thường.
Có nhiều nguyên nhân dẫn đến lỗi này, hôm nay mình chia sẻ với các bạn 1 case thực tế mình vừa gặp sáng nay và cách xác định nguyên nhân chính dẫn đến lỗi để có hướng khắc phục triệt để.

Cách xác định lỗi không kết nối được với Server

Khi bị lỗi, vào kiểm tra thấy dịch vụ MySQL đã bị stop, phóng ngay lệnh “dmesg” để xem log của hệ thống, phát hiện OOM Killer (Out Of Memory Killer) đã kill process MySQL:

không kết nối được server

Trước mắt, đã xác định được nguyên nhân MySQL bị stop là do OOM Killer. Hãy nhìn kỹ vào thông báo trên, một số thông tin quan trọng cần phải để ý:

Out of memory: Kill process 27657 (mysqld): Confirm lại chính OOM đã kill mysqld khi hệ thống bị hết RAM.

Số lượng process httpd được sinh ra rất nhiều: đây chính là nguyên nhân gây hết RAM.

Process httpd được sinh ra bởi user có UID là 501, đây là thông tin cực kỳ quan trọng

Tìm user có UID 501:

không kết nối được server

$ grep 501 /etc/passwd

Khi đã xác định được user, việc tiếp theo là cần check httpd log của user trên (do số lượng process httpd của user trên vào thời điểm lỗi nhiều bất thường). Tuy nhiên, do dmesg log không ghi lại thời gian cụ thể, cần check tiếp message log

$ tail -n 200 /var/log/message

không kết nối được server

Thời gian được xác định là “05:08:08”, đây là thời điểm OOM được kích hoạt, vậy cần phải khoanh vùng các truy cập vào Website của user admin trong khoảng thời gian từ “05:08:08” trở về trước

Sau khi check log cách đó khoảng 1p30s thì phát hiện:

không kết nối được server

Vào thời điểm trên, có 1 loạt log nhìn rất bất thường, vì sao?

Các truy cập vào chung 1 URL có pattern là “/?add_to_wishlist=xxxx“

Truy cập xuất phát từ nhiều IP khác nhau nhưng lại chung 1 User-Agent

Sử dụng cùng HTTP 1.0

Các IP trên khi load URL KHÔNG load kèm theo các static resources như css, js

Nhiêu đây thông tin đã giúp tôi hình dung ra được cách thức cũng như mục tiêu của sự cố, theo bạn thì website này đang bị gì? Mục tiêu và cách thức ra sao?

Hãy cho tôi biết kết quả của bạn nhé, giờ tôi phải start lại dịch vụ cho khách hàng và điều chỉnh config để giải quyết cho họ rồi

Mọi thắc mắc và nhu cầu liên quan tới website xin liên hệ với chúng tôi qua:

Website: https://webmtp.com/

Hotline: 0931 91 23 79

Email: tung@webmtp.com

Tổng hợp thủ thuật thiết kế website – Web MTP

Mời bạn xem nhiều bài hấp dẫn khác

Phương pháp SEO tăng thứ hạng của website trên Google

Tìm hiểu phương pháp chọn từ khóa chuẩn SEO

Plugin giúp bảo mật website WordPress

Tăng trust website hiệu quả bằng 100 backlink chất lượng đến từ Google

Cách chăm sóc website hiệu quả

Cách tạo nút gọi trên website WordPress

Mời bạn đọc thêm

Phương pháp SEO tăng thứ hạng của website trên Google

Tìm hiểu phương pháp chọn từ khóa chuẩn SEO

Plugin giúp bảo mật website WordPress

Tăng trust website hiệu quả bằng 100 backlink chất lượng đến từ Google

Cách chăm sóc website hiệu quả

Cách tạo nút gọi trên website WordPress