Если вам нужен метод, который не включает запуск клиента mysql и вход на сервер mysql, вы можете сделать это:
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
Вам придется заменить путь к вашему каталогу данных, имя вашей базы данных и имя вашей таблицы в первой строке.
Предостережения:
- Это не будет работать, если вы используете InnoDB и не используете innodb-file-per-table. то есть сценарий может сказать, что таблица не существует, даже если она существует.
- Этот файл может существовать по разным причинам, включая копирование таблиц с использованием файловой системы или переключение с MyISAM на InnoDB. т.е. сценарий может сказать, что таблица существует, хотя ее нет.
Это не так надежно, как другие методы, представленные уже по причинам, указанным выше, но он избегает клиента MySQL, поэтому он все еще может быть полезным.
Обратите внимание, что все методы, представленные здесь, зависят от правильного получения ваших собственных прав доступа (файловой системы или MySQL). Если вы ошибетесь, вы, скорее всего, получите ложный минус.
.my.cnf
файл в вашем домашнем каталоге и добавить[client]
блок, содержащийpassword="my_password"
. Посмотрите раздел о пользовательских файлах опций в руководстве.