Pour installer manuellement MySQL sur une instance Compute Engine que vous avez créée, procédez comme suit.
Pour obtenir une présentation des différentes options de configuration de MySQL sur Compute Engine, consultez la page MySQL sur Compute Engine. Pour savoir quelles offres Compute Engine sont adaptées à MySQL, consultez la page Configurer MySQL sur Compute Engine.
Avant de commencer
- Utilisez la console Google Cloud pour activer l'API Compute Engine.
- Installer la Google Cloud CLI
Configurez votre espace de travail de façon à pouvoir alléger la syntaxe des commandes. Remplacez PROJECT_ID, REGION et ZONE par les valeurs correspondant à votre projet dans les commandes suivantes. Pour obtenir la liste complète des zones, reportez-vous à la section Régions et zones disponibles.
gcloud config set project PROJECT_ID gcloud config set compute/region REGION gcloud config set compute/zone ZONE
Créer une instance Compute Engine et établir une connexion SSH
Créez une instance Compute Engine pour MySQL, puis établissez une connexion SSH avec cette nouvelle instance. Le système d'exploitation par défaut est Debian version 10. Si vous préférez utiliser un autre système d'exploitation pour ce tutoriel, vous pouvez choisir l'une des options décrites sur la page Images publiques de la documentation de Compute Engine.
Console
Créer l'instance Compute Engine
Pour créer l'instance Compute Engine dans Google Cloud console, procédez comme suit:
Dans la console Google Cloud , accédez à la page Instances de VM Compute Engine.
Sélectionnez le projet que vous venez de créer et cliquez sur Continuer.
Cliquez sur Créer une instance (ou sur Nouvelle instance si vous disposez déjà d'instances). Nommez l'instance mysql-test.
Sélectionnez votre niveau de performances et la taille de votre disque.
Pour spécifier un système d'exploitation autre que la valeur par défaut, dans la section Disque de démarrage, cliquez sur Modifier afin de configurer les propriétés du disque de démarrage. Dans l'onglet Images publiques, sélectionnez un système d'exploitation, puis cliquez sur Enregistrer.
Pour respecter les bonnes pratiques de sécurité, créez votre instance sans adresse IP externe.
Développez la section Options avancées, puis Mise en réseau. Sous Interfaces réseau, développez l'interface default, puis, dans le menu Adresse IPv4 externe, sélectionnez Aucune.
Cliquez sur Créer.
Configurer la traduction d'adresse réseau
Pour configurer et gérer la traduction d'adresse réseau avec Cloud NAT, procédez comme suit:
Dans la console Google Cloud , accédez à la page Cloud NAT.
Cliquez sur Commencer ou sur Créer une passerelle Cloud NAT.
Dans le champ Nom de la passerelle, saisissez
nat-simple-configuration
.Pour sélectionner Cloud Router, dans la section Sélectionner le routeur cloud, procédez comme suit:
- Pour Réseau, sélectionnez default.
- Dans Région, sélectionnez la région que vous avez spécifiée pour votre VM.
Dans la section Cloud Router, sélectionnez Créer un routeur.
Dans la boîte de dialogue Créer un routeur qui s'affiche, donnez un nom au routeur (par exemple,
nat-router-simple-configuration
), puis cliquez sur Créer.
Cliquez sur Configurations avancées.
Dans la section Journalisation, sélectionnez Traduction et erreurs. Ce paramètre configure Cloud NAT pour qu'il envoie tous les journaux à Cloud Logging.
Cliquez sur Créer.
Établir une connexion SSH avec la VM
Pour établir une connexion SSH, procédez comme suit:
Sur la page Instances de VM, localisez votre nouvelle instance de VM dans la liste.
Dans la colonne Connecter de cette VM, cliquez sur SSH. Le terminal SSH s'ouvre dans une fenêtre de navigateur.
gcloud
Pour créer une instance Compute Engine, utilisez la commande
gcloud compute instances create
. Pour spécifier le système d'exploitation, ajoutez le paramètre--image-family
suivi de la famille d'images ou du paramètre--image
suivi du nom de l'image pour une version d'image spécifique. Par exemple, pour utiliser l'image la plus récente de la famille Debian 10, ajoutez--image-family debian-10
. Lorsque vous utilisez des images publiques, le projet de l'image doit être fourni à l'aide du paramètre--image-project
.gcloud compute instances create \ --image-family debian-10 \ --image-project debian-cloud \ --no-address \ mysql-test
Créer un routeur cloud
gcloud compute routers create nat-router-simple-configuration \ --network=default
Configurez et gérez la traduction d'adresse réseau avec Cloud NAT.
gcloud compute routers nats create nat-simple-configuration \ --router=nat-router-simple-configuration \ --auto-allocate-nat-external-ips \ --nat-all-subnet-ip-ranges \ --enable-logging
Connectez-vous à l'instance via
ssh
.gcloud compute ssh \ --tunnel-through-iap \ mysql-test
La connexion SSH est établie à l'aide du transfert TCP géré par Identity-Aware Proxy (IAP).
Installer MySQL
La procédure décrite ci-dessous permet d'installer MySQL sur votre instance Compute Engine.
Debian 10+
Ces instructions permettent d'installer MySQL 8 ou 5.7.
Les versions 10 et ultérieures de Debian contiennent MariaDB plutôt que MySQL dans le système de gestion de packages. MariaDB conserve la compatibilité avec le protocole MySQL, mais possède un ensemble de fonctionnalités en constante évolution. Pour en savoir plus, consultez la section MariaDB/MySQL.
Pour installer MySQL, téléchargez le package de version et installez-le manuellement à l'aide de la commande dpkg
.
Installez la dépendance
wget
.sudo apt-get install -y wget
Téléchargez le package de version de MySQL Community Server.
export DEB_FILE=mysql-apt-config_0.8.20-1_all.deb cd /tmp curl -L --output ${DEB_FILE} \ https://dev.mysql.com/get/${DEB_FILE}
Vérifiez l'intégrité du fichier de package de version.
cat > ${DEB_FILE}.md5 << EOL 799bb0aefb93d30564fa47fc5d089aeb ${DEB_FILE} EOL md5sum --check ${DEB_FILE}.md5
L'authenticité et l'intégrité du fichier sont validées si le résultat suivant s'affiche:
mysql-apt-config_0.8.20-1_all.deb: OK
Après avoir vérifié le fichier, ajoutez le package MySQL au dépôt de packages local.
sudo dpkg -i ${DEB_FILE}
Vous êtes invité à confirmer les options d'installation, y compris la version de MySQL.
Lorsque l'option supérieure du menu Serveur et cluster MySQL est sélectionnée, appuyez sur la touche Retour puis utilisez les touches fléchées pour choisir une version de serveur.
Ce guide suppose que vous optez pour MySQL 8.0 ou 5.7. Après avoir sélectionné la version, appuyez sur la touche Retour de votre clavier.
Lorsque vous êtes satisfait des options sélectionnées dans le menu de configuration, utilisez les touches fléchées pour sélectionner
Ok
dans le menu et appuyez sur la touche Retour de votre clavier.Mettez à jour le cache du package.
sudo apt-get update
Si vous recevez une erreur GPG semblable à celle-ci : Les signatures suivantes n'ont pas pu être validées, car la clé publique n'est pas disponible : NO_PUBKEY 467B942D3A79BD29, importez la ou les clés GPG manquantes à l'aide d'une commande reprenant ce modèle :
sudo apt-key adv \ --keyserver keyserver.ubuntu.com \ --recv-keys 467B942D3A79BD29
Dans le message d'erreur pris en exemple ci-dessus, la clé publique manquante est
467B942D3A79BD29
; indiquez cette valeur dans l'option--recv-keys
.Répétez la commande pour mettre à jour le cache du package.
Installez MySQL. Le processus d'installation démarre automatiquement le service MySQL.
sudo apt-get -y install mysql-community-server
Vous êtes invité à fournir des détails comme le mot de passe racine pour l'installation.
Debian 9
Ces instructions permettent d'installer MySQL 8 ou 5.7.
Par défaut, certaines versions de Debian, telles que Debian 9, installent MariaDB en tant que serveur MySQL par défaut. MariaDB est conçu pour être compatible avec MySQL et peut être appelé à l'aide des mêmes commandes. Pour plus de détails sur les différences entre MariaDB et MySQL standard, consultez la page Passer de MySQL à MariaDB dans Debian 9.
Pour installer MySQL, procédez comme suit :
Téléchargez le package de version de MySQL Community Server.
export DEB_FILE=mysql-apt-config_0.8.17-1_all.deb cd /tmp curl -L --output ${DEB_FILE} \ https://dev.mysql.com/get/${DEB_FILE}
Vérifiez l'intégrité du fichier de package de version.
cat > ${DEB_FILE}.md5 << EOL 9e393c991311ead61dcc8313aab8e230 ${DEB_FILE} EOL md5sum --check ${DEB_FILE}.md5
L'authenticité et l'intégrité du fichier sont validées si le résultat suivant s'affiche.
mysql-apt-config_0.8.17-1_all.deb: OK
Après avoir vérifié le fichier, ajoutez le package MySQL au dépôt de packages local.
sudo dpkg -i ${DEB_FILE}
Vous êtes invité à confirmer les options d'installation, y compris la version de MySQL.
Lorsque l'option supérieure du menu Serveur et cluster MySQL est sélectionnée, appuyez sur la touche Retour puis utilisez les touches fléchées pour choisir une version de serveur.
Ce guide suppose que vous optez pour MySQL 8.0 ou 5.7. Après avoir sélectionné la version, appuyez sur la touche Retour de votre clavier.
Lorsque vous êtes satisfait des options sélectionnées dans le menu de configuration, utilisez les touches fléchées pour sélectionner
Ok
dans le menu et appuyez sur la touche Retour de votre clavier.Mettez à jour le cache du package.
sudo apt-get update
Si vous recevez une erreur GPG semblable à celle-ci : Les signatures suivantes n'ont pas pu être validées, car la clé publique n'est pas disponible : NO_PUBKEY 467B942D3A79BD29, importez la ou les clés GPG manquantes à l'aide d'une commande reprenant ce modèle :
sudo apt-key adv \ --keyserver keyserver.ubuntu.com \ --recv-keys 467B942D3A79BD29
Dans le message d'erreur pris en exemple ci-dessus, la clé publique manquante est
467B942D3A79BD29
; indiquez cette valeur dans l'option--recv-keys
.Répétez la commande pour mettre à jour le cache du package.
Installez MySQL. Le processus d'installation démarre automatiquement le service MySQL.
sudo apt-get -y install mysql-community-server
Ubuntu
Pour Ubuntu 1804 et versions antérieures, ces instructions installent MySQL 5.7.
Pour Ubuntu 2004 et versions ultérieures, suivez ces instructions pour installer MySQL 8.
Mettez à jour le gestionnaire de packages
apt-get
.sudo apt-get update
Installez MySQL. Le processus d'installation démarre automatiquement le service MySQL.
sudo apt-get -y install mysql-server
Par défaut, dans les distributions Ubuntu, mysql authentifie l'utilisateur
root
avec le plug-inauth_socket
. Exécutez la requête suivante pour vérifier cette configuration par défaut :echo "SELECT user, authentication_string, plugin, host FROM mysql.user WHERE user='root' ;" \ | sudo mysql -t -u root
Le résultat indique que l'utilisateur
root
se connectant depuislocalhost
utilisera le plug-inauth_socket
:+------+-----------------------+-------------+-----------+ | user | authentication_string | plugin | host | +------+-----------------------+-------------+-----------+ | root | | auth_socket | localhost | +------+-----------------------+-------------+-----------+
Modifiez ce paramètre et remplacez le mot de passe racine par un mot de passe difficile à deviner :
export PASSWORD=`uuidgen`; echo "Root password is : $PASSWORD" echo "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$PASSWORD'" \ | sudo mysql -u root
Le résultat contient le nouveau mot de passe racine :
Root password is : 25fe2177-778a-414f-b80e-5fb8c8671de3
CentOS ou RHEL 7
Ces instructions installent MySQL 8.
La version 7 de CentOS et RHEL propose MariaDB au lieu de MySQL dans son système de gestion de packages. Avant d'installer MySQL, vous devez mettre à jour le gestionnaire de packages.
Téléchargez le package de version de MySQL Community Server.
export RPM_FILE=mysql80-community-release-el7-4.noarch.rpm cd /tmp curl -L --output ${RPM_FILE} \ https://dev.mysql.com/get/${RPM_FILE}
Vérifiez l'intégrité du fichier de package de version.
cat > ${RPM_FILE}.md5 << EOL 8b55d5fc443660fab90f9dc328a4d9ad ${RPM_FILE} EOL md5sum --check ${RPM_FILE}.md5
L'authenticité et l'intégrité du fichier sont validées si le résultat suivant s'affiche.
mysql80-community-release-el7-4.noarch.rpm: OK
Mettez à jour le gestionnaire de packages pour inclure MySQL.
sudo rpm -Uvh ${RPM_FILE}
Installez MySQL.
sudo yum -y install mysql-community-server
Démarrez le serveur MySQL.
sudo /usr/bin/systemctl start mysqld
Obtenez le mot de passe racine temporaire à partir des journaux du serveur.
sudo cat /var/log/mysqld.log | grep -i 'temporary password'
Rocky Linux ou RHEL 8
Ces instructions installent MySQL 8.
La version 8 de Rocky Linux, CentOS Stream et RHEL contient MariaDB au lieu de MySQL dans son système de gestion de packages. Avant d'installer MySQL, vous devez mettre à jour le gestionnaire de packages.
Téléchargez le package de version de MySQL Community Server.
export RPM_FILE=mysql80-community-release-el8-2.noarch.rpm cd /tmp curl -L --output ${RPM_FILE} \ https://dev.mysql.com/get/${RPM_FILE}
Vérifiez l'intégrité du fichier de package de version.
cat > ${RPM_FILE}.md5 << EOL 0ba3feb1c9ee35d30e5ae683accaf54b ${RPM_FILE} EOL md5sum --check ${RPM_FILE}.md5
L'authenticité et l'intégrité du fichier sont validées si le résultat suivant s'affiche.
mysql80-community-release-el8-2.noarch.rpm: OK
Mettez à jour le gestionnaire de packages pour inclure MySQL.
sudo rpm -iUvh ${RPM_FILE}
Installez MySQL. Pendant l'installation, désactivez le dépôt AppStream afin que l'installation utilise le serveur communautaire.
sudo yum module disable -y mysql sudo yum install -y \ --disablerepo=appstream \ mysql-community-server
Démarrez le serveur MySQL.
sudo /usr/bin/systemctl start mysqld
Obtenez le mot de passe racine temporaire à partir des journaux du serveur.
sudo cat /var/log/mysqld.log | grep -i 'temporary password'
Améliorer la sécurité de l'installation de MySQL
Pour améliorer la sécurité de votre installation MySQL, exécutez la commande mysql_secure_installation
. Si vous n'avez pas défini de mot de passe au cours du processus d'installation, créez-en un à cette étape. Pour plus d'informations sur cette commande, consultez la section mysql_secure_installation de la documentation MySQL.
sudo mysql_secure_installation
Se connecter à MySQL
Les étapes qui suivent montrent comment se connecter à MySQL à partir de votre instance mysql-test
.
MySQL 8.0
Connectez-vous à MySQL en utilisant le client MySQL.
sudo mysql -u root -p
Lorsque vous vous connectez à MySQL, l'invite devient
mysql>
.Vous pouvez alors exécuter des commandes MySQL. Par exemple, la commande suivante affiche les threads en cours d'exécution, y compris la connexion en cours.
mysql> SHOW processlist;
+----+-----------------+-----------+------+---------+------+------------------------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-----------------+-----------+------+---------+------+------------------------+------------------+ | 5 | event_scheduler | localhost | NULL | Daemon | 1889 | Waiting on empty queue | NULL | | 14 | root | localhost | NULL | Query | 0 | init | show processlist | +----+-----------------+-----------+------+---------+------+------------------------+------------------+ 2 rows in set (0.00 sec)
La commande suivante vous permet de générer la liste des utilisateurs.
mysql> SELECT User, Host, authentication_string FROM mysql.user;
+------------------+-----------+------------------------------------------------------------------------+ | User | Host | authentication_string | +------------------+-----------+------------------------------------------------------------------------+ | mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | mysql.session | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | mysql.sys | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | root | localhost | $A$005$,BS{G+*#cVYxb6x40q0aFS5dp2/Kz6u2vennR5qe0eBKVA/6VW5B | +------------------+-----------+------------------------------------------------------------------------+ 4 rows in set (0.00 sec)
Une fois l'exécution des commandes terminée, utilisez la commande
exit
pour quitter le client MySQL, puis à nouveauexit
pour vous déconnecter de l'instance Compute Engine.mysql> exit
Bye
MySQL 5.7
Connectez-vous à MySQL en utilisant le client MySQL.
sudo mysql -u root -p
Lorsque vous vous connectez à MySQL, l'invite devient
mysql>
.Vous pouvez alors exécuter des commandes MySQL. Par exemple, la commande suivante affiche les threads en cours d'exécution, y compris la connexion en cours.
mysql> SHOW processlist;
+----+------+-----------+------+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+------+---------+------+-------+------------------+ | 51 | root | localhost | NULL | Query | 0 | NULL | show processlist | +----+------+-----------+------+---------+------+-------+------------------+ 1 row in set (0.00 sec)
La commande suivante vous permet de générer la liste des utilisateurs.
mysql> SELECT User, Host, authentication_string FROM mysql.user;
+---------------+-----------+-------------------------------------------+ | User | Host | authentication_string | +---------------+-----------+-------------------------------------------+ | root | localhost | *A047B05AAB007B33F8F2BD1FD404661D167D6348 | | mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | +---------------+-----------+-------------------------------------------+ 3 rows in set (0.00 sec)
Une fois l'exécution des commandes terminée, utilisez la commande
exit
pour quitter le client MySQL, puis à nouveauexit
pour vous déconnecter de l'instance Compute Engine.mysql> exit
Bye
Étape suivante
- Pour plus d'informations sur MySQL, reportez-vous à la documentation officielle de MySQL.
- Découvrez la grande variété de piles de développement proposées sur Cloud Marketplace.
- Si vos besoins incluent haute disponibilité et évolutivité, envisagez les options suivantes :
- Installez MySQL Cluster sur Compute Engine pour bénéficier d'une haute disponibilité et d'une évolutivité élevées grâce au clustering sans partage et à la segmentation automatique des données.
- Cliquez pour déployer Percona, une solution Open Source de clustering MySQL, sur Cloud Marketplace.
- Installez Vitess, la solution Open Source qui dessert l'ensemble du trafic de la base de données YouTube depuis 2011. Vitess est parfaitement adapté aux applications exécutées dans des conteneurs. Pour en savoir plus sur l'utilisation de Vitess dans un environnement de conteneurs, consultez la page Exécuter Vitess sur Kubernetes.