Ajout : sauvegardes automatiques des bases postgresql.
[lhc/ateliers.git] / etc / sv / mysql / local.sh
1 "$tool"/local/apt-get-install mysql-server-5.5
2 "$tool"/local/insserv-remove mysql
3
4 eval "home=~$sv"
5
6 "$tool"/local/adduser "$sv" \
7 --disabled-login \
8 --disabled-password \
9 --group \
10 --home "$home" \
11 --shell /bin/false \
12 --system
13 "$tool"/local/adduser "$sv"-data \
14 --disabled-login \
15 --disabled-password \
16 --group \
17 --home "$home"/data \
18 --no-create-home \
19 --shell /bin/false \
20 --system
21 sudo usermod --home "$home" "$sv"
22 sudo adduser "$sv" "$sv"-data
23 sudo install -d -m 755 -o "$sv" -g "$sv" \
24 "$home"
25 sudo rm -rf /etc/mysql
26 sudo install -d -m 750 -o "$sv" -g "$sv"-data \
27 /etc/mysql \
28 /etc/mysql/conf.d \
29 "$home"/etc
30 sudo ln -fns \
31 /etc/mysql \
32 "$home"/etc/mysql
33 sudo install -m 644 -o "$sv" -g "$sv" \
34 "$tool"/etc/mysql/my.cnf \
35 /etc/mysql/my.cnf
36 if sudo test ! -d "$home"/data
37 then
38 sudo install -d -m 750 -o "$sv" -g "$sv"-data \
39 "$home"/data
40 sudo -u "$sv" mysql_install_db \
41 --datadir="$home"/data \
42 --no-defaults
43 fi
44
45 sudo ln -fns \
46 ../sv/"$sv" \
47 /etc/service/"$sv"
48 "$tool"/local/runit-sv-start "$sv"
49 while ! sudo mysql -u root </dev/null
50 do sleep 1; done
51
52 sudo mysql -u root --batch --verbose <<-EOF
53 -- NOTE: supprime le login anonyme
54 DELETE FROM mysql.db WHERE User = '';
55 DELETE FROM mysql.user WHERE User = '';
56
57 -- NOTE: supprime l'accès par mot-de-passe à root
58 DELETE FROM mysql.user WHERE User = 'root' and Plugin = '';
59
60 DROP PROCEDURE IF EXISTS mysql.create_super_user;
61 DELIMITER //
62 CREATE PROCEDURE mysql.create_super_user (username VARCHAR(16), hostname VARCHAR(60))
63 BEGIN
64 IF NOT (EXISTS (SELECT User
65 FROM mysql.user
66 WHERE User = username
67 AND Host = hostname
68 LIMIT 1))
69 THEN
70 SET @QUERY = CONCAT("CREATE USER ", username, "@", hostname, " IDENTIFIED WITH auth_socket");
71 PREPARE stmt FROM @QUERY;
72 EXECUTE stmt;
73 END IF;
74 END;
75 //
76
77 CALL mysql.create_super_user('mysql', 'localhost');
78 GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'localhost';
79 UPDATE mysql.user SET Grant_priv='Y',Super_priv='Y' WHERE User='mysql';
80
81 CALL mysql.create_super_user('backup', 'localhost');
82 GRANT EVENT,LOCK TABLES,RELOAD,SELECT,SHOW VIEW ON *.* TO 'backup'@'localhost';
83
84 FLUSH PRIVILEGES;
85 EOF
86 sudo adduser backup "$sv"-data
87 sudo adduser backup "$sv"
88
89 sudo find "$tool"/local/backup \
90 -mindepth 1 -maxdepth 1 -type f -perm /+x \
91 -name 'mysql-*' \
92 -exec install -m 750 -o backup -g backup \
93 -t ~backup/bin {} +
94 sudo install -m 640 -o root -g root \
95 "$tool"/etc/cron.d/mysql-backup \
96 /etc/cron.d/mysql-backup
97 sudo install -m 640 -o root -g root \
98 "$tool"/etc/sudoers.d/mysql-backup \
99 /etc/sudoers.d/mysql-backup