A good[ish] website
Web development blog, loads of UI and JavaScript topics
Simple bash script to quickly create a MySQL database and a user.
This can come pretty handy if you need to make a lot of databases, while doing a server migration, or something like that.
The script takes three parameters:
Name it something like mysql-db-create.sh
, then make it executable:
$ sudo chmod 755 mysql-db-create.sh
And run it:
$ sudo ./mysql-db-create.sh my-database my-user c00lp45w0rd
Here’s the piece of bash code:
#!/bin/bash
green() {
echo -e '\e[32m'$1'\e[m';
}
readonly EXPECTED_ARGS=3
readonly E_BADARGS=65
readonly MYSQL=`which mysql`
# Construct the MySQL query
readonly Q1="CREATE DATABASE IF NOT EXISTS $1;"
readonly Q2="GRANT ALL ON *.* TO '$2'@'localhost' IDENTIFIED BY '$3';"
readonly Q3="FLUSH PRIVILEGES;"
readonly SQL="${Q1}${Q2}${Q3}"
# Do some parameter checking and bail if bad
if [ $# -ne $EXPECTED_ARGS ]
then
echo "Usage: $0 dbname dbuser dbpass"
exit $E_BADARGS
fi
# Run the actual command
$MYSQL -uroot -p -e "$SQL"
# Let the user know the database was created
green "Database $1 and user $2 created with a password you chose"
Comments would go here, but the commenting system isn’t ready yet, sorry.