Bonjour,
Voici ma fonction pour l'installation automatique de mysql depuis un script bash, je bloque plus précisément sur les commandes de configuration de Mysql.
La partie installation s'effectue avec succès.
Mon script plante à partir de mysql --user="root" --password="$PASSWORD_ROOT_MYSQL"
J'aimerais connaître les commandes à utilisé sous bash pour arriver à mes fins.
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 ## Installation et configuration de mysql function mysql { if [[ "$STATUS" -lt "12" ]] ; then #est plus petit que 12 ## Installation de mysql PKG_OK=$(dpkg-query -W --showformat='${Status}\n' mysql-server-5.5|grep "install ok installed") if [[ "" == "$PKG_OK" ]] ; then echo -e " - ${green}Installation de mysql${NC}" echo "mysql-server-5.5 mysql-server/root_password password $PASSWORD_ROOT_MYSQL" | debconf-set-selections echo "mysql-server-5.5 mysql-server/root_password_again password $PASSWORD_ROOT_MYSQL" | debconf-set-selections apt-get -y install mysql-server-5.5 php5-mysql echo -e " - ${green}Changement du mot de passe root de mysql${NC}" else echo -e " - ${yellow}Mysql est déjà installé${NC}" fi ## Configuration de mysql # On commence par se connecté à mysql echo -e " - ${green}Connection à Mysql${NC}" mysql --user="root" --password="$PASSWORD_ROOT_MYSQL" # Suppression de la connexion root à distance echo -e " - ${green}Suppression de la connexion root à distance${NC}" mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');" # Suppression des utilisateur anonyme du localhost echo -e " - ${green}Suppression des utilisateur anonyme du localhost${NC}" mysql -e "DROP USER ''@'localhost'" # Suppression des utilisateur ananyme de votre nom d'hote mysql -e "DROP USER ''@'$(hostname)'" echo -e " - ${green}Suppression des utilisateur ananyme${NC}" # Suppression de la base de donnée de test mysql -e "DROP DATABASE test" echo -e " - ${green}Suppression de la base de donnée de test${NC}" # Jeu de caractères par défaut mysql -u root --password=$PASSWORD_ROOT_MYSQL --default-character-set=utf8 echo -e " - ${green}Jeu de caractères par défaut: UTF8${NC}" # Prise en compte des changements mysql -e "FLUSH PRIVILEGES" echo -e " - ${green}Configuration du fichier: ${NC}/etc/mysql/my.cnf" # Sauvegarde avant modif cp /etc/mysql/my.cnf /etc/mysql/my.cnf.bak_"$myDate" sed -i -e 's/port.*/port = '$PORT_MYSQL'/' /etc/mysql/my.cnf sed -i -e 's/query_cache_limit.*/query_cache_limit = 2M/' /etc/mysql/my.cnf sed -i -e 's/query_cache_size.*/query_cache_size = 32M/' /etc/mysql/my.cnf sed -i -e 's/#slow_query_log_file.*/slow_query_log_file = \/var\/log\/mysql\/mysql-slow.log/' /etc/mysql/my.cnf sed -i -e 's/#slow_query_log = 1/slow_query_log = 1/' /etc/mysql/my.cnf sed -i -e 's/#long_query_time.*/long_query_time = 2/' /etc/mysql/my.cnf sed -i -e 's/\[client\]/\[client\]\ndefault-character-set = utf8mb4/' /etc/mysql/my.cnf sed -i -e 's/\[mysql\]/\[mysql\]\ndefault-character-set = utf8mb4/' /etc/mysql/my.cnf sed -i -e 's/\[mysqld\]/\[mysqld\]\ncharacter-set-client-handshake = FALSE\ncharacter-set-server = utf8mb4\ncollation-server = utf8mb4_unicode_ci/' /etc/mysql/my.cnf # Recharger les nouveaux parametres echo -e " - ${green}Prise en compte de la nouvelle configuration${NC}" /etc/init.d/mysql restart exit sed -i -e 's/STATUS=.*/STATUS="12"/g' $basepath/conf/$profile/config else echo -e " - ${yellow}L'installation de mysql est effectuée${NC}" fi }
Partager