Mysql
使用 mysqldump 時跳過視圖
我想創建一個命令行腳本,它只備份我數據庫中的表。有沒有辦法做到這一點?
我考慮過只指定表使用
SELECT table_name FROM information_schema.TABLES WHERE table_schema = 'flight_serve_png' AND table_type = 'base table'
但希望有一個更簡單的解決方案。
從沒有視圖的給定數據庫中轉儲表
MYSQL_AUTH="-hlocalhost -u... -p..." DB=mydb SQL="SET group_concat_max_len = 10485760;" SQL="${SQL} SELECT GROUP_CONCAT(table_name SEPARATOR ' ')" SQL="${SQL} FROM information_schema.tables" SQL="${SQL} WHERE table_schema='${DB}' AND engine IS NOT NULL;" TBLIST=$(mysql ${MYSQL_AUTH} -ANe"${SQL}") mysqldump ${MYSQL_AUTH} --single-transaction ${DB} ${TBLIST} > ${DB}_tables.sql
僅從給定數據庫轉儲視圖
MYSQL_AUTH="-hlocalhost -u... -p..." DB=mydb SQL="SET group_concat_max_len = 10485760;" SQL="${SQL} SELECT GROUP_CONCAT(table_name SEPARATOR ' ')" SQL="${SQL} FROM information_schema.tables" SQL="${SQL} WHERE table_schema='${DB}' AND engine IS NULL;" TBLIST=$(mysql ${MYSQL_AUTH} -ANe"${SQL}") mysqldump ${MYSQL_AUTH} --single-transaction ${DB} ${TBLIST} > ${DB}_views.sql