mysql如何导出数据库脚本

发布时间: 2023-11-21 12:33 阅读: 文章来源:1MUMB3881PS

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

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

#!/bin/bash# 用户名USER=root# 密码PASSWORD=123456# hostHOST=127.0.0.1# 数据库名DATABASE=databaseRESULT_FOLDER=dump_filesSCHEMA_FILE=schema.sqlDATA_FILE=data.sql# 设置哪些表不导出数据,比如有的表特别大,而且没有意义,logsEXCLUDED_TABLES=(logs)IGNORED_TABLES_STRING=‘‘for TABLE in "${EXCLUDED_TABLES[@]}"do :IGNORED_TABLES_STRING+=" --ignore-table=${DATABASE}.${TABLE}"donemkdir ${RESULT_FOLDER}echo "start to dump schema from database ${DATABASE}"mysqldump --host=${HOST} --user=${USER} --password=${PASSWORD} --single-transaction --no-data --routines ${DATABASE} > ./${RESULT_FOLDER}/${SCHEMA_FILE}echo "start to dump data from database ${DATABASE}"mysqldump --host=${HOST} --user=${USER} --password=${PASSWORD} ${DATABASE} --no-create-info --skip-triggers ${IGNORED_TABLES_STRING} >> ./${RESULT_FOLDER}/${DATA_FILE}

•••展开全文