Objectif

Installer et configurer MySQL 8.0 pour Magento 2

Installation

Pour MySQL, il est nécessaire de télécharger le paquet .deb puis de l’installer

wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb
apt install ./mysql-apt-config_0.8.13-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;

Tutoriel publié le 27/03/2021.

Dernière modification: 27 mars 2021

Auteur