====== 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]]