====== Installer mysql/mariadb ====== * Objet : Installer mariadb * Niveau requis : FIXME {{tag>débutant avisé}} * Commentaires : installer base de données * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) ===== Introduction ===== MySQL n'est pas disponible dans le dépôt de paquets officiel de Debian 10. Mais, MariaDB est disponible. MariaDB est un fork de MySQL et est une implémentation open source de MySQL. MariaDB a le même ensemble d'outils, de syntaxe et de fonctionnalités que MySQL. La communauté MariaDB est également très importante. Vous pouvez utiliser MariaDB au lieu de MySQL, sauf si vous avez besoin d'une assistance payante d'Oracle. Voyons comment installer MariaDB sur Debian 10. ===== Installation ===== apt update apt install mariadb-client mariadb-server ===== Services ===== systemctl status mariadb systemctl stop mariadb systemctl restart mariadb === Pas de démarrage automatique === systemctl disable mariadb ===== Sécurisation de Mariadb ===== mysql_secure_installation mysql_secure_installation * **//Enter current password for root (enter for none)//**: [Pour créer un mot de passe root] : ''Y'' puis '''', pour conserver le mots de passe mais modifier le reste ''n'' * **//Enter current password for root (enter for none)//**: [Pour créer un mot de passe pour l'administrateur root de la base de données] : '''' * **//Change the root password? [Y/n]//** : ''Y'' * **//New password//** : '' ************ '' * **//Re-enter new password//**: '' ************ '' * **//Remove anonymous users? [Y/n]//** : [Pour empêcher root de se connecter à partir d'un autre client depuis un autre ordinateur] : ''Y'' * **//Disallow root login remotely? [Y/n]//** [Pour empêcher root de se connecter depuis le réseau, appuyez sur Y, pour l'autoriser appuyez sur N] : ''n'' * **//Remove test database and access to it? [Y/n]//** [pour supprimer la base de test et ses accès] : ''n'' * **//Reload privilege tables now? [Y/n]//** : 'Y' ==== Rendre possible la première connexion ==== mysql -h localhost -u root -p Résoudre : ERROR 1698 (28000): Access denied for user 'root'@'localhost' * **Modifier le fichier : /etc/mysql/my.cnf** vim /etc/mysql/my.cnf * **Ajouter :** ''skip-grant-tables'' [mysqld] skip-grant-tables * **Redémarrer mysql :** systemctl restart mariadb * **Se connecter :** mysql -h localhost -u root -p * **En SQL dans mysql :** flush privileges; ALTER USER 'root'@'localhost' IDENTIFIED BY 'son_mot_de_passe'; quit * **Dans le fichier /etc/mysql/my.cnf supprimer ou commenter les lignes ajoutées plus haut** #[mysqld] #skip-grant-tables * **Redémarrer mysql :** systemctl restart mariadb * **Plus de problème !** mysql -h localhost -u root -p MariaDB [(none)]> =====Commandes utiles depuis bash===== === Une seule commande avec l'option -e=== mysql -u [username] -p -e "CREATE DATABASE toto" ===Envoyer un script mysql=== mysql -u root ma_base < monfichier.sql ===Sauvegarder une base de donnée=== **La rfc-3339 donne une date du type 2014-05-20** mysqldump -u user [-h nom_hôte_ou_ip] --single-transaction ma_base [ma_table [mon_autre_table]] -p'mot de passe' > `date --rfc-3339 date`.sql ===Restaurer cette base === Il faut créer d'abord la nouvelle base qui contiendra la restauration. mysql -u root [-h nom_hôte_ou_ip] -p ma_nouvelle_base < 2014-05-20.sql === Liens === ** [[https://mariadb.com/kb/en/mysqltest/|MariaDB_mysql_test]] \\ ** [[https://buzut.net/maitrisez-mysql-en-cli/| BUZUT]]