In Zukunft werde ich hier in unregelmäßigen Abständen nützliche Shell-Scripte veröffentlichen, die uns bei PS-Webhosting einige Arbeit abnehmen. Sie sind unter Debian Linux lauffähig.

Heute: Anlegen einer mySQL-Datenbank mit Zufallspasswort.

Verwendung:

turbozoidberg:~/utils# ./newdb
Usage: ./newdb dbname [password]

Inhalt der Datei:

 
#!/bin/sh
 
MYSQLADMIN_USER="root"
MYSQLADMIN_PASSWORD="mySQL_root_Passwort"
MYSQLADMIN_HOST="mySQL_Hostname (z.B. localhost)"
 
MYSQLDATABASE="$1"
MYSQLUSER="$1"
MYSQLPASSWORD="$2"
# IP-Nummer(n) der Server, die auf die Datenbank zugreifen dürfen:
MYSQLHOST="123.123.123.%"
 
if [ -z "$MYSQLPASSWORD" ]
then
  MYSQLPASSWORD="`pwgen 8 1`"
fi
 
if [ $# -lt 1 -o $# -gt 2 ]
then
  echo "Usage: $0 dbname [password]"
  exit
fi
 
mysql -u$MYSQLADMIN_USER -p$MYSQLADMIN_PASSWORD -h$MYSQLADMIN_HOST mysql << EOF
CREATE DATABASE \`$MYSQLDATABASE\`;
GRANT USAGE ON *.* TO \`$MYSQLUSER\`@\`$MYSQLHOST\` IDENTIFIED BY "$MYSQLPASSWORD" WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,LOCK TABLES,CREATE TEMPORARY TABLES ON \`$MYSQLDATABASE\`.* TO \`$MYSQLUSER\`@\`$MYSQLHOST\`;
EOF
 
echo "MySQL:"
echo "Datenbankname: $MYSQLDATABASE"
echo "Benutzername : $MYSQLUSER"
echo "Passwort     : $MYSQLPASSWORD"

Die Datei einfach zum Beispiel als "newdb" abspeichern und auf der Shell mit

./newdb Datenbankname <Passwort>

aufrufen. Ohne Passwort wird ein zufälliges Passwort mit pwgen generiert.

Viel Spaß!