Skip to content

Instantly share code, notes, and snippets.

@memoryleak
Created April 14, 2014 07:37
Show Gist options
  • Save memoryleak/10624685 to your computer and use it in GitHub Desktop.
Save memoryleak/10624685 to your computer and use it in GitHub Desktop.
MySQL import & export
#!/bin/bash
ACTION=$1
DATABASE_NAME=$2
SQL_FILE=$3
if [[ "$ACTION" == "import" ]]; then
if [[ -f "$SQL_FILE" ]]; then
# Drop existing database
echo -n "Dropping ${DATABASE_NAME}..."
OUTPUT=$(mysql -e "DROP DATABASE ${DATABASE_NAME}" 2>&1)
if [[ $? == 0 ]]; then
echo "done"
else
echo "failed"
echo $OUTPUT
fi
# Create new database
echo -n "Creating ${DATABASE_NAME}..."
OUTPUT=$(mysql -e "CREATE DATABASE ${DATABASE_NAME} CHARACTER SET utf8 COLLATE utf8_general_ci;" 2>&1)
if [[ $? == 0 ]]; then
echo "done"
else
echo "failed"
echo $OUTPUT
exit -1
fi
# Create new database
echo -n "Importing ${DATABASE_NAME}..."
OUTPUT=$(mysql -D $DATABASE_NAME < $SQL_FILE 2>&1)
if [[ $? == 0 ]]; then
echo "done"
else
echo "failed"
echo $OUTPUT
exit -1
fi
exit 0
fi
fi
if [[ "$ACTION" == "export" ]]; then
# Export database
echo -n "Exporting ${DATABASE_NAME}..."
OUTPUT=$(mysqldump --result-file $SQL_FILE --no-autocommit --single-transaction --opt -Q $DATABASE_NAME 2>&1)
if [[ $? == 0 ]]; then
echo "done"
else
echo "failed"
echo $OUTPUT
exit -1
fi
exit 0
fi
echo
echo "Usage: `basename $0` (import|export) dbname sqlfile"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment