Nếu bạn muốn một phương thức không liên quan đến việc chạy máy khách mysql và đăng nhập vào máy chủ mysql, bạn có thể thực hiện việc này:
if ls -l /var/lib/mysql/database/table.frm 2> /dev/null > /dev/null
then
echo Table exists
else
echo Table does not exist
fi
Bạn sẽ phải thay thế đường dẫn đến thư mục dữ liệu, tên cơ sở dữ liệu và tên bảng của bạn trong dòng đầu tiên.
Hãy cẩn thận:
- Điều này sẽ không hoạt động nếu bạn đang sử dụng InnoDB và không sử dụng innodb-file-per-table. tức là kịch bản có thể nói bảng không tồn tại mặc dù nó có.
- Có thể tồn tại tệp đó vì nhiều lý do bao gồm sao chép các bảng xung quanh bằng cách sử dụng hệ thống tệp hoặc chuyển từ MyISAM sang InnoDB. tức là kịch bản có thể nói rằng bảng tồn tại ngay cả khi nó không tồn tại.
Nó không đáng tin cậy như các phương thức khác đã được trình bày vì những lý do trên nhưng nó tránh được máy khách mysql nên có thể vẫn còn giá trị.
Lưu ý rằng tất cả các phương pháp được trình bày ở đây dựa trên việc bạn nhận được quyền của riêng mình (hệ thống tệp hoặc MySQL). Nếu bạn làm cho họ sai, rất có thể bạn sẽ nhận được một âm tính giả.
.my.cnf
tệp trong thư mục chính của mình và thêm một[client]
khối chứapassword="my_password"
. Có một phần cho các tập tin tùy chọn người dùng trong hướng dẫn.