X-Git-Url: https://git.cyclocoop.org/?p=lhc%2Fateliers.git;a=blobdiff_plain;f=local%2Fmysql-database-create;h=18a598598bff902d3128dd4f26e7d28329e34afa;hp=adc6ecdb42a88aa6720ad704edfa83050bc8896e;hb=82a43a9c95892ecfa8bad1a72b490ad0bf60cd3b;hpb=0d705d8e2a919ee40866307aa3e18b1a5c4e7583 diff --git a/local/mysql-database-create b/local/mysql-database-create index adc6ecd..18a5985 100755 --- a/local/mysql-database-create +++ b/local/mysql-database-create @@ -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