Si desea un método que no implique ejecutar un cliente mysql e iniciar sesión en el servidor mysql, puede hacer esto:
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
Tendrá que reemplazar la ruta a su directorio de datos, el nombre de su base de datos y el nombre de su tabla en la primera línea.
Advertencias:
- Esto no funcionará si está utilizando InnoDB y no está utilizando innodb-file-per-table. es decir, el script puede decir que la tabla no existe aunque sí exista.
- Es posible que ese archivo exista por varias razones, incluida la copia de tablas usando el sistema de archivos o el cambio de MyISAM a InnoDB. es decir, el script puede decir que la tabla existe aunque no exista.
No es tan confiable como los otros métodos presentados ya por las razones anteriores, pero evita el cliente mysql, por lo que aún puede valer la pena.
Tenga en cuenta que todos los métodos presentados aquí dependen de que obtenga sus propios permisos (sistema de archivos o MySQL) correctos. Si se equivoca, lo más probable es que obtenga un falso negativo.
.my.cnf
archivo en su directorio de inicio y agregar un[client]
bloque que contengapassword="my_password"
. Eche un vistazo a la sección sobre archivos de opciones de usuario en el manual.