Correction : {host,local,remote}/ : duplicity + MySQL.
[lhc/ateliers.git] / local / mysql-database-create
index adc6ecd..18a5985 100755 (executable)
@@ -1,6 +1,27 @@
-#!/bin/sh -eux
+#!/bin/sh -eu
+tool=$(readlink -e "${0%/*}/..")
+. "$tool"/local/lib.sh
+
 db="$1"
 user="${2:-$1}"
-sudo -u mysql mysql --batch --verbose <<-EOF
+sudo -u mysql mysql -u mysql --batch --verbose <<-EOF
+       DROP PROCEDURE IF EXISTS mysql.create_database;
+       DELIMITER //
+       CREATE PROCEDURE mysql.create_database (dbname VARCHAR(16), username VARCHAR(16), hostname VARCHAR(60))
+        BEGIN
+               IF NOT (EXISTS (SELECT SCHEMA_NAME
+                       FROM INFORMATION_SCHEMA.SCHEMATA
+                       WHERE SCHEMA_NAME = dbname
+                       LIMIT 1))
+               THEN
+                       SET @QUERY = CONCAT("CREATE DATABASE ", dbname, " CHARACTER SET utf8 COLLATE utf8_general_ci");
+                       PREPARE stmt FROM @QUERY;
+                       EXECUTE stmt;
+                END IF;
+               SET @QUERY = CONCAT("GRANT ALL PRIVILEGES ON ", dbname, ".* TO ", username, "@", hostname);
+               PREPARE stmt FROM @QUERY;
+               EXECUTE stmt;
+        END;
+        //
        CALL mysql.create_database('$db', '$user', 'localhost');
        EOF