Cách khắc phục 8 lỗi MySQL phổ biến nhất.


Cách khắc phục 8 lỗi MySQL phổ biến nhất.

MySQL không khởi động được, bị crash database, mất kết nối…là điều thường gặp trong MySQL. Bài viết chỉ ra các nguyên nhân gây lỗi MySQL và cách khắc phục.

Khắc phục Lỗi ERROR 2006 (HY000): MySQL server has gone away

Nguyên nhân:

  • Nguyên nhân thứ nhất là do Server đã hết thời gian chờ và đóng kết nối.
  • Hoặc là dung lượng của cơ sở dữ liệu database quá lớn, vượt mức quy định cấu hình trong MySQL.

Cách khắc phục 8 lỗi MySQL phổ biến nhất trong thực tế 2

Xử lý:

  • Trường hợp nguyên dân do lỗi server timed out – hết thời gian chờ thì bạn cần kiểm tra biến mysql wait_timeout trong tệp cấu hình my.cnf xem xem đủ lớn chưa, nếu chưa hãy tăng thời gian chờ lên.

wait_timeout=300

interactive_timeout=300

  • Trường hợp nguyên nhân do lỗi dung lượng packet vượt quá dung lượng thì người dùng có thể tăng giới hạn kích thước packet của biến max_allowed_packet trong tệp my.cnf lên mức tối đa trong khoảng cho phép

Lý do và xử lý lỗi InnoDB: Error: log file ./ib_logfile0 is of different size

Nguyên nhân

Lỗi InnoDB: Error: log file ./ib_logfile0 is of different size thường xảy ra khi thực hiện converted một database sử dụng InnoDB. Khi mà bạn restart MySQL thì báo “fail”. Khi này, bạn kiểm tra lại log MySQL ghi nhận lỗi

Xử lý:

  • Người dùng cần khôi phục tất cả các thay đổi cấu hình trong file “my.cnf” sau đó khởi động lại MySQL.
  • Đến bước thực hiện câu lệnh #SET GLOBAL innodb_fast_shutdown=0; sau khi bạn truy cập vào MySQL:
  • Bạn dừng MySQL với lệnh #service mysql stop
  • Tiếp theo đó, bạn thay đổi cấu hình tập tin với kích thước file log, trong file my.cfn , sau đó thêm dòng chỉnh sửa kích thước file log nếu có:innodb_log_file_size = 256M
  • Cuối cùng xóa các file log cũ và tiến hành start lại dịch vụ MySQL với câu lệnh: #service mysql start

Lỗi “mysqld dead but subsys locked” của MySQL

Nguyên nhân:

Đây là trường hợp MySQL bị lỗi không thể restart lại thiết bị khi thực hiện câu lệnh:

#service mysqld restart

-> xuất ra kết quả: mysqld dead but subsys locked

Cách khắc phục 8 lỗi MySQL phổ biến nhất trong thực tế 3

Xử lý:

  • Bạn sao chép file đang bị khoá vào thư mục /root: cp /var/lock/subsys/mysql /root/mysqld
  • Sau đó xoá tiến trình mysql đang bị khoá này đi, rồi thực hiện câu lệnh như sau: rm -f /var/lock/subsys/mysqld
  • Thực hiện tắt các dịch vụ liên quan sau đó restart lại:

#service httpd stop

#service mysql restart

#service httpd restart

  • Tiếp đó, các bạn tiến hành truy cập lại mysql và kiểm tra, các câu lệnh trên được sử dụng trên hệ thống CentOS 6.x trở lên mới được nhé.

Xử lý lỗi Unable to connect to database: Too many connections

Nguyên nhân:

Khi xuất hiện lỗi Unable to connect to database: Too many connections thì có nghĩa là bạn không thể truy cập vào cơ sở dữ liệu với lý do là số lần truy cập đã quá giới hạn của server.

Xử lý:

  • Đầu tiên, bạn cần phải truy cập vào VPS, tiến hành mở file my.cnf: vi /etc/my.cnf
  • Tiếp theo, bạn thêm dòng sau vào: max_connections = 300; (giá trị không nên lớn quá, vì còn tuỳ thuộc nhiều vào hệ thống trên dịch vụ hoạc bạn có thể tăng thêm giá trị nếu cần thiết: max_user_connections = 20;
  • Người dùng vui lòng tiến hành restart lại dịch vụ mysql: service mysql restart

Khắc phục Lỗi Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock

Nguyên nhân

Lỗi Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock là do không thể kết nối đến MySQL server thông qua socket nằm tại đường dẫn trên.

Xử lý:

  • Đầu tiên, bạn cần phải xác định được tập tin mysql.sock bằng cách sử dụng câu lệnh find / -name mysql.sock để tìm kiếm file mysql.sock:
  • Tiếp theo, bạn tiến hành chỉnh sửa thông số lại trong file my.cnf: vi /etc/my.cnf
  • Thêm vào dòng: socket=/var/lib/mysql/mysql.sock
  • Người dùng tiến hành phân quyền thư mục và kiểm tra trạng thái Mysql:

chmod -R 777 /var/lib/mysql/

mysqladmin -u root -p status

Lỗi mySQL error: Got error 28 from table handler – Cách xử lý

Nguyên nhân

Khi không gian còn lại trên đĩa cứng đã hết, khiến cho MySQL không thực thi được thì hiện lỗi mySQL error: Got error 28 from table handler

Xử lý:

  • Các bạn vui lòng stop MySQL với lệnh #service mysql stop
  • Tiếp theo, các bạn tiến hành thực hiện kiểm tra file hệ thống và các thư mục tạm để giải phóng bớt dung lượng trống qua:

#df -h

#cd /tmp

#df -h /tmp

  • Người dùng xoá bớt dung lượng trong thư mục tạm để có thể giải phóng bớt dung lượng không cần thiết bằng cú pháp:

#cd /tmp

#rm -rf *

Khắc phục lỗi MySQL is running but PID file could not be found

Nguyên nhân:

Lỗi MySQL is running but PID file could not be found thường xảy ra trong trường hợp restart lại MySQL của mình

Cách khắc phục 8 lỗi MySQL phổ biến nhất trong thực tế 4

Xử lý:

  • Trước tiên, bạn tạo thư mục trên và tạo file mysql.pid bằng cú pháp: #mkdir /var/run/mysql
  • Tiếp bạn di chuyển vào thu mục trên và tạo file mysql.pid bằng lệnh:

#cd /var/run/mysql

#touch mysqld.pid

  • Sau đó, Cấp quyền MySQL cho file trên cho user MySQL với cú pháp: #chown mysql:mysql mysql.pid
  • Khởi động lại dịch vụ MySQL với lệnh #service mysql restart là được

Sửa lỗi Error: MySQL shutdown unexpectedly

Nguyên nhân

Tắt Mysql xampp không đúng cách gây ra lỗi   MySQL shutdown unexpectedly

Xử lý:

  • Người dùng vào thư mục C:\xampp\mysql đổi tên data thành data-old hoặc 1 tên nào khác

Cách khắc phục 8 lỗi MySQL phổ biến nhất trong thực tế 5

  • Bạn vui lòng thư mục backup ra 1 thư mục mới, và chuyển thành data

Cách khắc phục 8 lỗi MySQL phổ biến nhất trong thực tế 6

  • Sau đó vui lòng sao chép tất cả các thư mục sql cũ và file ibdata từ data-old qua thư mục data và mở lại sql hoạt động bình thường nhé

Share this post