使用 linux 脚本按库按表导出数据
时间: 2023-05-24 20:05:44 浏览: 116
以下是一个简单的脚本,可以用来按库按表导出数据:
```bash
#!/bin/bash
# 修改下面的变量为相应的值
MYSQL_HOST='localhost'
MYSQL_PORT='3306'
MYSQL_USER='root'
MYSQL_PASSWORD='your_password'
OUTPUT_DIR='/data/backups'
# 导出指定库的表
function export_database() {
database=$1
tables=$(mysql -h "${MYSQL_HOST}" -P "${MYSQL_PORT}" -u "${MYSQL_USER}" -p"${MYSQL_PASSWORD}" -N -e "SHOW TABLES FROM ${database}")
for table in ${tables}; do
output_file="${OUTPUT_DIR}/${database}/${table}.sql"
echo "Exporting ${database}.${table} to ${output_file} ..."
mysqldump -h "${MYSQL_HOST}" -P "${MYSQL_PORT}" -u "${MYSQL_USER}" -p"${MYSQL_PASSWORD}" "${database}" "${table}" > "${output_file}"
done
}
# 导出所有库的表
function export_all_databases() {
databases=$(mysql -h "${MYSQL_HOST}" -P "${MYSQL_PORT}" -u "${MYSQL_USER}" -p"${MYSQL_PASSWORD}" -N -e "SHOW DATABASES")
for database in ${databases}; do
if [[ "${database}" != "information_schema" && "${database}" != "mysql" ]]; then
mkdir -p "${OUTPUT_DIR}/${database}"
export_database "${database}"
fi
done
}
export_all_databases
```
脚本中使用的 `mysqldump` 命令用于导出数据,`mysql` 命令用于获取数据库和表的列表。脚本会将每个表的数据导出到 `${OUTPUT_DIR}/${database}/${table}.sql` 文件中。如果 `${OUTPUT_DIR}/${database}` 目录不存在,脚本会自动创建。您可以根据需要调整输出目录和其他变量的值。