diff options
author | Tom Willemse | 2014-03-10 20:32:10 +0100 |
---|---|---|
committer | Tom Willemse | 2014-03-10 20:32:10 +0100 |
commit | 2cd07d308c7a218bba0e321fa59f3d54d5c522ef (patch) | |
tree | 5bac478bb2e25e630ba1a0846d4fe07797db0f72 /copydb | |
download | db-utilities-2cd07d308c7a218bba0e321fa59f3d54d5c522ef.tar.gz db-utilities-2cd07d308c7a218bba0e321fa59f3d54d5c522ef.zip |
Initial commit
Diffstat (limited to 'copydb')
-rwxr-xr-x | copydb | 44 |
1 files changed, 44 insertions, 0 deletions
@@ -0,0 +1,44 @@ +#!/bin/zsh +## copydb --- Create a copy of a database under a new name + +## Commentary: + +# Create a copy of the database specified as the first argument as a +# new database named by the second argument. Making usage: + +# copydb <from> <to> + +# This doesn't try to check for any existing information, it just +# tries to create and copy. It is up to the user to make sure that +# that can actually be done. + +# During execution it asks for the root password of MySQL so it can +# create a new database. It will also ask for another user and its +# password to load the database with, this may still be the same user, +# but allows one to specify different users if necessary. + +## Code: + +echo -n 'Database root PW (for DB creation): ' +read -s ROOTPW +echo + +echo -n 'Database user for new DB: ' +read DBUSER + +echo -n 'Database user PW for new DB: ' +read -s DBPASSW +echo + +mysql -u root -p"$ROOTPW" -B <<EOF +CREATE DATABASE \`$2\`; +GRANT ALL ON \`$2\`.* to '$DBUSER'@'localhost'; +EOF + +mysqldump -u "$DBUSER" -p"$DBPASSW" "$1" \ + | mysql -u "$DBUSER" -p"$DBPASSW" "$2" \ +|| mysql -u root -p"$ROOTPW" -B <<EOF +DROP DATABASE \`$2\`; +EOF + +unset ROOTPW |