====== MySQL ======
----
===== Installation/Démarrage =====
==== Installation ====
sudo apt-get install mysql-server
==== Installation version donnée sur RedHat ====
=== Ajouter le dépôt MariaDB ===
Créer le fichier /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = https://yum.mariadb.org/11.6/rhel9-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
=== Mettre à jour la liste des paquets et installer MariaDB ===
sudo dnf update
sudo dnf install mariadb-server
=== Démarrer et activer le service ===
sudo systemctl start mariadb
sudo systemctl enable mariadb
=== Vérifier la version installée ===
mariadb -V
==== lancement service ou vérification ====
sudo service mysql status
==== connexion si pas de mot de passe ====
mysql -u root
==== connexion si mot de passe ====
mysql -u root -p
==== changement de mot de passe root ====
mysql> SET password FOR "root"@"localhost" = password('Nouveau_mot_de_passe');
==== configuration en UTF-8 ====
* Editer le fichier /etc/mysql/my.cnf et ajouter les 2 lignes suivantes à la fin de la section [mysqld]
character_set_server=utf8
skip-character-set-client-handshake
* redémarrer le service
sudo service mysql restart
* vérification sous mysql
mysql> SHOW VARIABLES LIKE 'char%';
----
[[all:bibles:linux:serveur:mysql|Haut de page]]
===== Désinstallation =====
==== Package ====
=== Redhat ===
yum remove mysql mysql-server
=== Ubuntu ===
sudo apt purge mysql mysql-server
==== Nettoyage ====
rm -rf /var/lib/mysql
rm -f /var/log/mysqld.log
----
[[all:bibles:linux:serveur:mysql|Haut de page]]
===== Administration =====
==== lister utilisateurs et host ====
mysql> select user,host from mysql.user;
==== créer utilisateur ====
mysql> create user "nom_utilisateur"@"localhost";
==== définir mot de passe ====
mysql> set password for "nom_utilisateur"@"localhost" = password('mot_de_passe');
==== supprimer un utilisateur ====
mysql> drop user "nom_utilisateur"@"localhost";
==== donner tous les droits sur une bdd ====
mysql> grant all on nom_base.* to "nom_utilisateur"@"localhost";
==== supprimer les droits ====
mysql> revoke all privileges on nom_base.* from "nom_utilisateur"@"localhost";
==== lister les droits ====
mysql> show grants for "nom_utilisateur"@"localhost";
==== exportation bdd maBase ====
mysqldump -u root -p maBase > maBase_backup.sql
==== importer une base ====
mysql -u root -p maBase < maBase_backup.sql
==== supprimer une base de données ====
mysql> drop database ;
----
[[all:bibles:linux:serveur:mysql|Haut de page]]
===== Utilisation =====
show databases;
connect ;
show tables;
show columns from ;
describe ;
----
[[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 /etc/mysql/mysql.conf.d/mysqld.cnf
[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
* Redémarrer le service
sudo service mysql restart
=== De façon temporaire ===
Positionner les variables suivantes sur le serveur (valable jusqu'au prochain redémarrage du serveur) :
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%';
S'assurer que les répertoires de logs existent et sont accessibles en écriture par l'utilisateur MySQL
==== Lire le fichier log-bin ====
mysqlbinlog --start-datetime="2017-08-08 09:00:00" /var/log/mysql/mysql-bin.000001
----
[[all:bibles:linux:serveur:mysql|Haut de page]]