Ajout : vm_remote : rule_gpg .
[lhc/ateliers.git] / etc / sv / mysql / configure.sh
index 4dcef57..96b40ea 100644 (file)
@@ -20,11 +20,11 @@ rule adduser mysql-data \
  --system
 sudo usermod --home "$home" mysql
 sudo adduser mysql mysql-data
-sudo install -d -m 751 -o mysql -g mysql \
+sudo install -d -m 755 -o mysql -g mysql \
  "$home" \
  "$home"/bin
 sudo rm -rf /etc/mysql
-sudo install -d -m 750 -o mysql -g mysql \
+sudo install -d -m 750 -o mysql -g mysql-data \
  /etc/mysql \
  /etc/mysql/conf.d \
  "$home"/etc
@@ -43,14 +43,14 @@ if sudo test ! -d "$home"/data
         --no-defaults
  fi
 
-sudo find "$tool"/etc/postgresql/bin/ -type f -perm /+x -exec \
+sudo find "$tool"/etc/mysql/bin/ -type f -perm /+x -exec \
        install -m 755 -o root -g root \
-        -t /home/postgresql/bin/ {} +
+        -t /home/mysql/bin/ {} +
 
 sudo ln -fns \
         ../sv/"$sv" \
  /etc/service/"$sv"
-rule runit_sv_start "$sv"
+rule _runit_sv_start "$sv"
 while ! sudo -u mysql mysql -u mysql </dev/null
 do sleep 1; done
 
@@ -67,9 +67,10 @@ 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 ()
+       CREATE PROCEDURE mysql.create_user_mysql ()
                        BEGIN
                                IF NOT (EXISTS (SELECT User
                                        FROM mysql.user
@@ -85,5 +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;
+        //
+       
+       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