Installation de MySQL 5.7 sous Slackware 14.1: dirty installation note

Vendredi 20 mai 2016

Ce billet regroupe quelques notes à propos de l’installation de MySQL 5.7.

Cette procédure a été testée et approuvée sur la distribution Slackware (14.1 64 bits). J’utilise cette distribution depuis 1993. Donc, ne pas s’attendre à l’utilisation de commandes apt-get et autres yum. On va partir des sources de MySQL, compiler et configurer l’ensemble, etc.

En préambule

Je concidère qu’aucune version de MySQL ne fonctionne sur le serveur. Bien veiller également à ce qu’aucun fichier /etc/my.cnf résiduel ne persiste. Sinon, backupez vos bases et votre /etc/my.cnf, stoppez proprement MySQL et renommer l’arborescence (par exemple /usr/local/mysql en /usr/local/mysql_old).

Pré-configuration de MySQL 5.7

Si ce n’est pas déjà fait, créez un utilisateur et un groupe mysql.

$ groupadd mysql
$ useradd -r -g mysql -s /bin/false mysql

Compilation de MySQL 5.7

Nous allons maintenant compiler MySQL. Je prévois de déployer MySQL sous /usr/local/mysql.

$ tar xvfz mysql-version.tar.gz
$ cd mysql-version
# => Unarchivage et déplacement dans le répertoire source

$ cmake . -DENABLE_DOWNLOADS=1 -DDOWNLOAD_BOOST=1 \
 -DWITH_BOOST=~/my_boost -DCURSES_LIBRARY=/usr/lib64/libncurses.so \
 -DCURSES_INCLUDE_PATH=/usr/include
$ make
# => Compilation de MySQL

À noter les paramètres passés à cmake ! Sans eux, la compilation va probablement échouer. On peut maintenant installer MySQL via la commande make install.

Avant d’aller plus loin, je le redis à nouveau, bien veiller à ce qu’aucun fichier /etc/my.cnf ne persiste…

Post-installation de MySQL

Nous allons maintenant dérouler la procédure de post-installation de MySQL. Avec la version 5.7, quelques détails changent.

$ cd /usr/local/mysql
$ chown -R mysql .
$ chgrp -R mysql .
$ bin/mysqld --initialize --user=mysql
$ bin/mysql_ssl_rsa_setup
$ chown -R root .
$ chown -R mysql data
$ bin/mysqld_safe --user=mysql &

En particulier, lors du bin/mysqld --initialize --user=mysql un mot de passe sera initialisé… Voici un exemple de sortie produite par cette commande :

2016-05-18T15:53:07.885780Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2016-05-18T15:53:07.887373Z 1 [Note] A temporary password is generated for root@localhost: 1Gf;dDsuH#Lx
root@globalis-mysql2:/usr/local/mysql# bin/mysql_ssl_rsa_setup
Generating a 2048 bit RSA private key

Pour finir, utliser la commande bin/mysql_secure_installation afin de ré-initialiser proprement le mot de passe root. On peut alors mettre en place un /etc/rc.d/rc.mysqld ou prévoir le lancement de MySQL depuis le /etc/rc.d/rc.local. Sans oublier la mise en place d’un /etc/my.cnf.

That’s all !