X-Git-Url: https://git.cyclocoop.org/?p=lhc%2Fateliers.git;a=blobdiff_plain;f=etc%2Fsv%2Fmysql%2Fconfigure.sh;h=96b40eabbbb3d8e11555f8298f87bb0a97d53940;hp=29a8c9dba940da9245a28a9ac366a52786d62a35;hb=22f04b9fac14adc3d3fc98273ba126c3a51792c3;hpb=4fcbb66b8713e00edf084ffbc2366dd24cd530e1 diff --git a/etc/sv/mysql/configure.sh b/etc/sv/mysql/configure.sh index 29a8c9d..96b40ea 100644 --- a/etc/sv/mysql/configure.sh +++ b/etc/sv/mysql/configure.sh @@ -67,6 +67,7 @@ do sleep 1; done # DELETE FROM mysql.user WHERE user = 'root' AND host NOT IN ('localhost', '127.0.0.1', '::1'); sudo mysql -u root --batch --verbose <<-EOF DELETE FROM mysql.user WHERE user = 'root' and plugin = ''; + DROP PROCEDURE IF EXISTS mysql.create_user_mysql; DELIMITER // CREATE PROCEDURE mysql.create_user_mysql () @@ -85,20 +86,40 @@ sudo mysql -u root --batch --verbose <<-EOF UPDATE mysql.user SET grant_priv='Y',super_priv='Y' WHERE user='mysql'; DELETE FROM mysql.db WHERE user = ''; DELETE FROM mysql.user WHERE user = ''; + DROP PROCEDURE IF EXISTS mysql.create_user; CREATE PROCEDURE mysql.create_user (username VARCHAR(16), hostname VARCHAR(60)) - BEGIN - IF NOT (EXISTS (SELECT User - FROM mysql.user - WHERE User = username - AND Host = hostname - LIMIT 1)) - THEN - SET @QUERY = CONCAT("CREATE USER ", username, "@", hostname, " IDENTIFIED WITH auth_socket"); - PREPARE stmt FROM @QUERY; - EXECUTE stmt; - END IF; - END; + BEGIN + IF NOT (EXISTS (SELECT User + FROM mysql.user + WHERE User = username + AND Host = hostname + LIMIT 1)) + THEN + SET @QUERY = CONCAT("CREATE USER ", username, "@", hostname, " IDENTIFIED WITH auth_socket"); + PREPARE stmt FROM @QUERY; + EXECUTE stmt; + END IF; + END; + // + + DROP PROCEDURE IF EXISTS mysql.create_database; + 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; // + FLUSH PRIVILEGES; EOF