En environnement professionnel, il est parfois nécessaire de déployer MySQL sur des machines virtuelles sans accès réseau. Ce guide décrit comment installer MySQL 8.0 hors ligne sur un système Linux, en contournant les téléchargements directs via wget ou Docker.
Préparation des fichiers d'installation
Téléchargez l'archive MySQL correspondant à votre architecture système depuis le site officiel. Pour cet exemple, nous utilisons la version 8.0.33 pour Linux x86_64. Transférez le fichier compressé sur le serveur cible, par exemple dans le répertoire /tmp.
# Extraction de l'archive
tar -xzvf mysql-8.0.33-linux-glibc2.17-x86_64.tar.gz -C /tmp
Déploiement et configuration initiale
Déplacez le répertoire extrait vers un emplacement standardisé et renommez-le :
mv /tmp/mysql-8.0.33-linux-glibc2.17-x86_64 /opt/mysql
Créez un dossier pour les données et modifiez le fichier de configuraton :
mkdir -p /opt/mysql/data
vim /etc/mysql/my.cnf
Contenu recommandé pour /etc/mysql/my.cnf :
[mysqld]
port=3307
basedir=/opt/mysql
datadir=/opt/mysql/data
max_connections=5000
max_connect_errors=5
character-set-server=utf8mb4
default-storage-engine=INNODB
default_authentication_plugin=caching_sha2_password
[mysql]
default-character-set=utf8mb4
[client]
port=3307
default-character-set=utf8mb4
Initialisation et premier démarrage
Initialisez le moteur de base de données avec l'utilisateur système dédié :
cd /opt/mysql
bin/mysqld --initialize --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data
Notez le mot de passe temporaire généré lors de cette étape. Ensuite, configurez les certificats SSL :
bin/mysql_ssl_rsa_setup --uid=mysql
Démarrez le service temporairement pour effectuer les configurations :
bin/mysqld_safe --user=mysql &
bin/mysql -h 127.0.0.1 -P 3307 -u root -p
Sécurisation de l'installation
Après connexion avec le mot de passe temporaire, changez-le et ajustez les privilèges :
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NouveauMotDePasse123!';
FLUSH PRIVILEGES;
USE mysql;
UPDATE user SET host='%' WHERE user='root' AND host='localhost';
FLUSH PRIVILEGES;
Configuration du service système
Pour faciliter la gestion, ajoutez les binaires au PATH système :
echo 'export PATH=/opt/mysql/bin:$PATH' >> /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh
Copiez le script de service pour une intégration avec systemd :
cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld
update-rc.d mysqld defaults
Vous pouvez désormais gérer le service via les commandes standard :
service mysqld start
service mysqld status
service mysqld stop