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    
}