💥 Lỗi ERROR at line 1153: Unknown command ‘\’ khi restore MySQL/MariaDB

🧩 Tình huống gặp lỗi

Gần đây, mình gặp một lỗi khá kỳ lạ trong quá trình khôi phục dữ liệu MySQL từ file dump với dòng lệnh:

mysql -u user -p database_name < database.sql

Quá trình import chạy một đoạn rồi bị dừng lại và xuất hiện lỗi sau:

ERROR at line 1153: Unknown command '\'.

Dòng 1153 trong file dump (database.sql) có vẻ bất thường. Mình kiểm tra dòng đó bằng lệnh:

awk '{ if (NR==1153) print $0 }' database.sql > line1153.sql

Và phát hiện rằng dòng này có kích thước hơn 1MB, tức là một dòng quá dài, không bình thường trong cú pháp SQL.

🔍 Phân tích nguyên nhân

Sau khi tìm hiểu và thử nhiều hướng, mình phát hiện rằng:

  • File dump (database.sql) được tạo ra bằng mysqldump của mariadb-client-core-10.6.
  • Khi sử dụng mysql để restore, lệnh đọc file dump bị lỗi do cú pháp không tương thích hoặc xử lý escape character (\) không đúng cách.

Cụ thể, dòng lỗi như Unknown command '\' thường xảy ra khi:

  • Dòng SQL bị ngắt, thiếu dấu kết thúc ; hoặc dấu ' không được escape đúng cách.
  • Công cụ restore (mysql) không hiểu hoặc không tương thích với định dạng của dòng được dump ra.

✅ Cách khắc phục lỗi

Sau nhiều lần thử nghiệm, giải pháp hoạt động tốt nhất với mình là chuyển từ MariaDB client sang MySQL client gốc. Dưới đây là các bước chi tiết:

🛠️ Hướng dẫn khắc phục lỗi Unknown command '\'

Bước 1: Gỡ bỏ MariaDB client (nếu đang dùng)

sudo apt remove --purge mariadb-client-core-10.6

Bạn cũng nên kiểm tra xem còn các gói liên quan đến MariaDB không:

dpkg -l | grep mariadb

Nếu còn, tiếp tục gỡ bỏ:

sudo apt remove --purge mariadb-client mariadb-common

Bước 2: Cài đặt MySQL client

Cài đặt client của MySQL bản 8.0:

sudo apt update
sudo apt install mysql-client-core-8.0

Bước 3: Kiểm tra phiên bản và dọn dẹp

Kiểm tra phiên bản đã cài:

mysql --version

Nếu gặp lỗi hoặc xung đột, bạn có thể dọn dẹp lại hệ thống:

sudo apt autoremove
sudo apt clean

Sau đó thử cài lại MySQL client nếu cần.

🎉 Kết luận

Lỗi Unknown command '\' khi restore file dump MySQL thường do sự không tương thích giữa định dạng dump và công cụ client xử lý. Trong trường hợp của mình, nguyên nhân đến từ việc sử dụng mariadb-client-core-10.6 để dump và restore. Sau khi chuyển sang dùng mysql-client-core-8.0, quá trình import diễn ra mượt mà và không còn lỗi.

Hy vọng bài viết này sẽ giúp ích cho bạn trong quá trình làm việc với MySQL/MariaDB! Nếu có câu hỏi hoặc góp ý, hãy để lại bình luận bên dưới nhé!

Bài viết gần đây

spot_img

Related Stories

Leave A Reply

Please enter your comment!
Please enter your name here

Đăng ký nhận thông tin bài viết qua email