Installer MySQL 8.0 pour Magento 2
Objectif
Installer et configurer MySQL 8.0 pour Magento 2
Installation
Pour MySQL, il est nécessaire de télécharger le paquet .deb depuis le site MySQL Community Downloads, puis de l'installer.
wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb
apt install ./mysql-apt-config_0.8.22-1_all.deb
apt-get update && apt-get install mysql-server
Vérifier la version installée en lançant la commande : mysql --version
.
Configuration
Avant de lancer le service, nous allons éditer le fichier de configuration de MySQL :
nano /etc/mysql/mysql.conf.d/mysqld.cnf
Vous trouverez, ci-dessous, les modifications que j'ai apportées au fichier de configuration :
bind-address = *
log-bin-trust-function-creators = 1
Voici le détail du mon fichier de configuration :
bind-address
: ce paramètre permet d'indiquer à MySQL l'interface réseau ou l'adresse IP qu'il doit écouter, lien vers la documentation.log-bin-trust-function-creators
: Cela permet d'autoriser la création ou la modification des fonctions stockées. Par défaut, ce paramètre est à 0. IL faut donc le passer à 1 pour éviter des erreurs. Lien vers la documentation de MySQL.
Création de la base de données
Pour créer la base de données, lancer la commande mysql -u root -p
et renseigner le mot de passe du compte root
précédemment créé.
Puis lancer les commandes suivantes pour créer la base de données magento
et l'utilisateur magento
:
CREATE DATABASE IF NOT EXISTS magento;CREATE USER 'magento'@'%' IDENTIFIED BY 'magento';GRANT ALL ON magento.* TO 'magento'@'%';FLUSH PRIVILEGES;
Pensez à renseigner un mot de place beaucoup plus complexe.
Cas d'erreur
En configurant une boutique Magento 2, je me suis retrouvé avec l'erreur ci-dessous lorsque j'ai paramétré les indexers sur `UPDATE BY SCHEDULE" :
main.CRITICAL: Exception message: SQLSTATE[HY000]: General error: 1419 You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)...
Vous pouvez contrôler la configuration de votre serveur MySQL en lançant cette commande :
SHOW VARIABLES LIKE 'log_bin_trust_function_creators';
Le résultat doit être :
mysql> SHOW VARIABLES LIKE 'log_bin_trust_function_creators';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | ON |
+---------------------------------+-------+
1 row in set (0.00 sec)
Vous pouvez modifier la valeur manuellement, voir ci-dessous, ou de manière plus globale en modifiant le fichier /etc/mysql/mysql.conf.d/mysqld.cnf
.
SET GLOBAL log_bin_trust_function_creators=1;