"$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
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
# 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
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