Outils pour utilisateurs

Outils du site


all:bibles:linux:serveur:mysql

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
all:bibles:linux:serveur:mysql [2024/06/14 11:10] – créée - modification externe 127.0.0.1all:bibles:linux:serveur:mysql [2025/04/25 08:40] (Version actuelle) – [Activer les fichiers de log] omeylhoc
Ligne 1: Ligne 1:
 +====== MySQL ======
  
 +----
 +
 +===== Installation/Démarrage =====
 +
 +
 +==== Installation ====
 +
 +<code bash>
 +sudo apt-get install mysql-server
 +</code>
 +
 +==== Installation version donnée sur RedHat ====
 +
 +=== Ajouter le dépôt MariaDB ===
 +
 +Créer le fichier <color #00a2e8>/etc/yum.repos.d/MariaDB.repo</color>
 +
 +<code bash>
 +[mariadb]
 +name = MariaDB
 +baseurl = https://yum.mariadb.org/11.6/rhel9-amd64
 +gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
 +gpgcheck=1
 +</code>
 +
 +=== Mettre à jour la liste des paquets et installer MariaDB ===
 +
 +<code bash>
 +sudo dnf update
 +sudo dnf install mariadb-server
 +</code>
 +
 +=== Démarrer et activer le service ===
 +
 +<code bash>
 +sudo systemctl start mariadb
 +sudo systemctl enable mariadb
 +</code>
 +
 +=== Vérifier la version installée ===
 +
 +<code bash>
 +mariadb -V
 +</code>
 +
 +==== lancement service ou vérification ====
 +
 +<code bash>
 +sudo service mysql status
 +</code>
 +
 +==== connexion si pas de mot de passe ====
 +
 +<code bash>
 +mysql -u root
 +</code>
 +
 +==== connexion si mot de passe ====
 +
 +<code bash>
 +mysql -u root -p
 +</code>
 +
 +==== changement de mot de passe root ====
 +
 +<code bash>
 +mysql> SET password FOR "root"@"localhost" = password('Nouveau_mot_de_passe'); 
 +</code>
 +
 +==== configuration en UTF-8 ====
 +
 +  * Editer le fichier <color #00a2e8>/etc/mysql/my.cnf</color> et ajouter les 2 lignes suivantes à la fin de la section [mysqld]
 +
 +<code>
 +character_set_server=utf8
 +skip-character-set-client-handshake
 +</code>
 +
 +  * redémarrer le service
 +
 +<code bash>
 +sudo service mysql restart
 +</code>
 +
 +  * vérification sous mysql
 +
 +<code bash>
 +mysql> SHOW VARIABLES LIKE 'char%'; 
 +</code>
 +
 +----
 +
 +[[all:bibles:linux:serveur:mysql|Haut de page]]
 +
 +===== Désinstallation =====
 +
 +==== Package ====
 +
 +=== Redhat ===
 +
 +<code bash>
 +yum remove mysql mysql-server
 +</code>
 +
 +=== Ubuntu ===
 +
 +<code bash>
 +sudo apt purge mysql mysql-server
 +</code>
 +
 +==== Nettoyage ====
 +
 +<code bash>
 +rm -rf /var/lib/mysql 
 +rm -f /var/log/mysqld.log
 +</code>
 +
 +----
 +
 +[[all:bibles:linux:serveur:mysql|Haut de page]]
 +
 +===== Administration =====
 +
 +==== lister utilisateurs et host ====
 +
 +<code bash>
 +mysql> select user,host from mysql.user; 
 +</code>
 +
 +==== créer utilisateur ====
 +
 +<code bash>
 +mysql> create user "nom_utilisateur"@"localhost"; 
 +</code>
 +
 +==== définir mot de passe ====
 +
 +<code bash>
 +mysql> set password for "nom_utilisateur"@"localhost" = password('mot_de_passe'); 
 +</code>
 +
 +==== supprimer un utilisateur ====
 +
 +<code bash>
 +mysql> drop user "nom_utilisateur"@"localhost"; 
 +</code>
 +
 +==== donner tous les droits sur une bdd ====
 +
 +<code bash>
 +mysql> grant all on nom_base.* to "nom_utilisateur"@"localhost";
 +</code>
 +
 +==== supprimer les droits ====
 +
 +<code bash>
 +mysql> revoke all privileges on nom_base.* from "nom_utilisateur"@"localhost"; 
 +</code>
 +
 +==== lister les droits ====
 +
 +<code bash>
 +mysql> show grants for "nom_utilisateur"@"localhost"; 
 +</code>
 +
 +==== exportation bdd maBase ====
 +
 +<code bash>
 +mysqldump -u root -p maBase > maBase_backup.sql
 +</code>
 +
 +==== importer une base ====
 +
 +<code bash>
 +mysql -u root -p maBase < maBase_backup.sql
 +</code>
 +
 +==== supprimer une base de données ====
 +
 +<code bash>
 +mysql> drop database <database_name>;
 +</code>
 +
 +----
 +
 +[[all:bibles:linux:serveur:mysql|Haut de page]]
 +
 +===== Utilisation =====
 +
 +<code>
 +show databases;
 +connect <database_name>;
 +show tables;
 +show columns from <table_name>;
 +describe <table_name>;
 +</code>
 +
 +----
 +
 +[[all:bibles:linux:serveur:mysql|Haut de page]]
 +
 +===== MariaDB =====
 +
 +==== Compatibilité MariaDB / MySQL ====
 +
 +[[https://mariadb.com/kb/fr/la-compatibilite-entre-mariadb-et-mysql/]]
 +
 +----
 +
 +[[all:bibles:linux:serveur:mysql|Haut de page]]
 +
 +===== Debug =====
 +
 +==== Activer les fichiers de log ====
 +
 +=== Dans le fichier de conf ===
 +
 +  * Ajouter dans la section [mysqld] du fichier de conf <color #00a2e8>/etc/mysql/mysql.conf.d/mysqld.cnf</color>
 +
 +<code>
 +[mysqld]
 +# Log des requêtes générales
 +general_log = 1
 +general_log_file = /var/log/mysql/mysql-general.log
 +
 +# Log des requêtes lentes
 +slow_query_log = 1
 +slow_query_log_file = /var/log/mysql/mysql-slow.log
 +long_query_time = 2  # Seuil en secondes pour considérer une requête comme lente
 +
 +# Log des erreurs
 +log_error = /var/log/mysql/mysql-error.log
 +</code>
 +
 +  * Redémarrer le service 
 +
 +<code bash>
 +sudo service mysql restart
 +</code>
 +
 +=== De façon temporaire ===
 +
 +Positionner les variables suivantes sur le serveur (valable jusqu'au prochain redémarrage du serveur) :
 +
 +<code sql>
 +SET GLOBAL general_log = 'ON';
 +SET GLOBAL general_log_file = '/var/log/mysql/mysql-general.log';
 +SET GLOBAL slow_query_log = 'ON';
 +SET GLOBAL slow_query_log_file = '/var/log/mysql/mysql-slow.log';
 +SET GLOBAL long_query_time = 2;
 +SHOW VARIABLES LIKE '%log%';
 +</code>
 +
 +
 +
 +<note important>S'assurer que les répertoires de logs existent et sont accessibles en écriture par l'utilisateur MySQL</note>
 +
 +==== Lire le fichier log-bin  ====
 +
 +<code bash>
 +mysqlbinlog --start-datetime="2017-08-08 09:00:00" /var/log/mysql/mysql-bin.000001 
 +</code>
 +
 +----
 +
 +[[all:bibles:linux:serveur:mysql|Haut de page]]