Xử Lý lỗi syntax error: INSERT INTO counter

  • Thursday 05/09/2024

Trong quá trình chuyển dữ liệu từ host cũ sang host mới hoặc chuyển đổi máy chủ server, đôi lúc bạn sẽ gặp lỗi syntax error: INSERT INTO counter khi truy cập vào website của mình, với thông báo syntax error có nghĩa là lỗi cú pháp.

Trên thực tế thì đây không phải là lỗi. Nói đúng hơn là phiên bản mysql/mariadb giữa 2 máy chủ khác nhau. Một máy chủ sử dụng phiên bản quá cao và một máy chủ sử dụng phiên bản quá thấp.

Hướng dẫn xử lyý lỗi syntax error: INSERT INTO counter

Ảnh đính kèm bên dưới là một ví dụ thực tế mà mình gặp. Và để xử lý lỗi này mình có cách như sau

lỗi syntax error: INSERT INTO counter

                                                                  lỗi syntax error: INSERT INTO counter

Cách 1: Hạ cấp phiên bản MySQL/MariaDB để sửa lỗi syntax error: INSERT INTO counter

Bạn có thể cài lại phiên bản MySQL/MariaDB cho máy chủ mới cùng phiên bản mới máy chủ cũ, để lỗi không xảy ra. Tuy nhiên cách này bạn chỉ có thể sử dụng khi bạn quản lý máy chủ đó như sử dụng VPS riêng. Và cách này chỉ nên dùng khi máy chủ VPS của bạn chưa có dữ liệu và bạn chỉ mới vừa triển khai. Vì việc cài lại sẽ mất nhiều thời gian do phải sao lưu toàn bộ cơ sở dữ liệu hiện có rồi mới cài lại, sau khi cài xong thì phải import lại dữ liệu.

Nếu cách 1 gặp nhiều bất cập và bạn không thể làm hãy thử dùng cách 2 nhé.

Cách 2: Chỉnh sửa cấu hình my.cnf để sửa lỗi syntax error: INSERT INTO counter

Bạn hãy SSH vào máy chủ sau đó mở file my.cnf và thêm vào 2 dòng sau

vi /etc/my.cnf
  • Thêm vào 2 dòng bên dưới.
sql_mode = "" 
innodb_strict_mode = 0
  • Khởi động lại dịch vụ mysql/mariadb
service mysqld restart
#Hoặc
systemctl restart mysqld

Cách 3: Thay đổi sql mode trong phpMyAdmin để sửa lỗi syntax error: INSERT INTO counter

Nếu cách 1 và cách 2 bạn chưa thể thao tác được vì phải làm ở giao diện dòng lệnh, thì ở Cách 3 này sẽ hướng dẫn bạn thao tác trên phpMyAdmin.

Đầu tiên bạn hãy truy cập vào phpMyAdmin bằng quyền root hoặc admin. (Không sử dụng quyền user)

Sau đó bạn tìm đến dòng sql mode, thực hiện Sửa (Edit) và xoá hết các giá trị hiện có như ảnh đính kèm

sql_mode là gì?

sql_mode là một biến hệ thống trong MySQL và MariaDB, nó quy định cách thức hoạt động của các truy vấn SQL trên hệ thống cơ sở dữ liệu. Khi được thiết lập, sql_mode sẽ định nghĩa các giới hạn và quy tắc cụ thể cho các truy vấn SQL, bao gồm các quy tắc về định dạng của dữ liệu, xử lý các lỗi và cảnh báo trong trường hợp các truy vấn không đáp ứng các yêu cầu này.

Tiếp theo bạn tìm dòng innodb strict mode sau đó chuyển ON => OFF

innodb strict mode là gì?

innodb strict mode là một tùy chọn trong MySQL và MariaDB được thiết lập để đảm bảo tính nhất quán và an toàn cho các giao dịch trên cơ sở dữ liệu InnoDB. Khi được kích hoạt, innodb strict mode sẽ đảm bảo rằng các giao dịch InnoDB tuân thủ các quy tắc nghiêm ngặt, ví dụ như không cho phép chèn giá trị NULL vào các cột có ràng buộc NOT NULL, hoặc không cho phép chèn các giá trị không hợp lệ vào các cột có ràng buộc kiểu dữ liệu. Nó giúp ngăn chặn các lỗi dữ liệu và bảo vệ tính toàn vẹn của cơ sở dữ liệu.

Bây giờ bạn hãy truy cập lại vào website để xem kết quả nhé. Chúc bạn thực hiện thành công.

Bạn có thể tham khảo thêm bài viết Cách cài đặt SQL Server Management Studio tại đây

P.A Việt Nam cung cấp đa dạng các Plan Hosting đáp ứng yêu cầu của khách hàng
Hosting Phổ Thông
Hosting Chất Lượng Cao

Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-khuyen-mai/

Rate this post