如何导出数据库(mysql导出表)

平常在迁移和测试系统的时候,经常需要迁移数据库,数据量不大的时候,我们可以用mysql dump导出sql,然后再导入,但是假如里面有的表,数据量特别大,比如logs表,几百万,用mysql_dump的话,需要花费很长时间。但是logs并不需要数据。

如何导出数据库(mysql导出表) 第1张

以下脚本,可以自动导出schema和数据,还可以设置哪些表skip掉,简单实用,分享给大家。

#!/bin/ba百思特网sh
# 用户名
USER=root
# 密码
PASSWORD=123456
# host
HOST=127.0.0.1
# 数据库名
DATABASE=database

RESULT_FOLDER=dump_files
SCHEMA_FILE=schema.sql
DATA_FILE=data.sql
# 设置哪些表不导出数据,比如有的表特别大,而且没有意义,logs
EXCLUDED_TABLES=(
logs
)

IGNORED_TABLES_STRING='
for TABLE in "${EXCLUDED_TABLES[@]}"
do :
   IGNORED_TABLES_STRING =" --ignore-table=${DATABASE}.${TABLE}"
done

mkdir ${RESULT_FOLDER}

echo "start to dump schema from database ${DATABASE}"
mysqldump --host=${HOST} --user=${USER} -百思特网-password=${PASSWORD} --single-transaction --no-data --routines ${DATA百思特网BASE}