Installation de Mysql et configuration via un script bash
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:
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
} |