Hướng đẫn xử lý lỗi Error Establishing a Database Connection

0
95

Lỗi khi mysql bị quá tải hay bị ngừng hoạt động thường do các lỗi sau:

  1. do quá tải Ram, Ram bị thiếu nên mysql bị dừng => cần xử lý tăng ram bằng cách:

a. nâng cấp VPS mua thêm Ram

b.Nếu không muốn nâng cấp VPS thì tạo Swap Ram ảo để hỗ trợ khi quá tải Ram. và cách để tạo Swap thì làm theo hướng dẫn bài này: https://hocvps.com/swap/

Hướng dẫn tạo Swap

Áp dụng được cả trên CentOS và Ubuntu.

1. Kiểm tra swap

Trước khi tiến hành tạo file swap cần kiểm tra xem hiện tại hệ thống đã kích hoạt swap hay chưa bằng cách chạy:

Nếu không có thông tin gì hoặc trả về như hình dưới chứng tỏ server chưa có swap và bạn có thể tạo.

Swap chua duoc tao

2. Kiểm tra dung lượng trống

Sử dụng lệnh df -h để kiểm tra dung lượng trống. Còn 13GB, vẫn thoải mái để tạo swap:

Kiem tra dung luong trong

3. Tạo swap

– Chạy lệnh dd. Ở đây mình tạo 1GB swap (count=1024k) cho VPS 768MB RAM

Lệnh trên sẽ tạo swap có dung lượng 1Gb. Bạn có thể thay count=1024k bằng count=2048k… để tạo swap dung lượng 2Gb. Dung lượng Swap tối đa chỉ nên gấp đôi RAM vật lý.

Tao swap

– Tạo phân vùng swap

Tao phan vung Swap

– Kích hoạt swap

Đoạn này có thể gặp thông báo warning insecure permissions 0644, không sao cả bạn cứ bỏ qua. Chúng ta sẽ chỉnh lại ở bước sau.

– Kiểm tra lại tình trạng swap bạn sẽ thấy như sau:

Kiem tra lai Swap

– Thiết lập swap tự động được kích hoạt mỗi khi reboot

– Bảo mật file swap bằng cách chmod

Lệnh bật lại dịch vụ MySQL

Trên VPS Centos

Centos 6 (MariaDB cũng dùng chung lệnh) :

Hoặc:

Centos 7: 

MySQL:

MariaDB:

 Trên VPS Ubuntu

Hoặc

Tùy trường hợp cụ thể trên server của bạn là mysql hay mysqld mà bạn chọn lệnh.

Tạo Crontab tự động khởi động (bật ) lại MySQL

Khi service MySQL bị stop trên VPS do quá tải hoặc thiếu RAM, ta sẽ dùng lệnh trên để bật lại. Ngoài ra, bạn có thể tạo một crontab tự động check MySQL nếu dịch vụ này đang bị stop thì tự động bật lại.

Trước tiên cần tạo một file đặt tên là auto-start-mysql chẳng hạn, ta đặt file này trong folder root hoặc folder tùy ý bạn chọn. Sau đó chmod file này bằng lệnh:

Để thêm  vào VPS crontab tự động chạy auto-start-mysql 5 phút 1 lần  ta dùng lệnh:

 

Nội dung của  file auto-start-mysql  như sau:

Trên VPS Centos

Centos 6:

Nếu VPS của bạn dùng mysqld thay vì mysql thì thay bằng

Centos 7:

MySQL:

MariaDB:

 Trên VPS Ubuntu

MySQL:

MariaDB: