Table des matières
MySQL
Installation
root@serveur:/home/simon# apt install mariadb-server
Sécurité
Après l'installation, il faut utiliser “mysql_secure_installation” pour mettre un mot de passe root et sécuriser un minimum MySQL ou MariaDB.
root@serveur:/home/simon# mysql_secure_installation
Quelques exemples
Se connecter :
$ mysql -u root -p Enter password: (...)
Voir les base de données existantes :
mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | (...) | +--------------------+
Voir les tables dans une base de données :
mysql> show tables in nextcloud; +-----------------------------+ | Tables_in_nextcloud | +-----------------------------+ | oc_accounts | | oc_activity | | (...) | +-----------------------------+
Créer une base de données :
mysql> CREATE DATABASE nom-de-la-db; Query OK, 1 row affected (0.00 sec)
Créer un nouvel utilisateur pour une base de données :
mysql> CREATE USER '[USER]'@'localhost' IDENTIFIED BY '[PASSWORD]'; Query OK, 0 rows affected (0.00 sec)
Donner les droits à un utilisateur pour une base de données :
mysql> GRANT ALL PRIVILEGES ON [nom_DB].* TO '[USER]'@'localhost' IDENTIFIED BY '[PASSWORD]'; Query OK, 0 rows affected (0.01 sec)
Supprimer une base de données :
mysql> drop database 'nom_DB';
mysqldump
Faire des "dump"
Une seule base de données :
# mysqldump -u root -p database1 > /tmp/database1.sql
Plusieurs tables dans une base de données :
$ mysqldump -h 192.168.1.12 -u root -p basededonnees table1 table2 > dump-table1-table2.sql
La structure de données d'une table (avec l'argument -d ou –no-data) :
$ mysqldump -d -h 192.168.1.14 -u root -p basededonnees > dump-basededonnees.sql
Plusieurs bases de données :
# mysqldump -u root -p --databases databaseb1 database2 database3 > /tmp/all-database.sql
Enter password:
Rajouter la date dans le dump :
$ mysqldump -h HOST -u root -p NOM_DB | bzip2 > `date "+%Y-%m-%d"`-NOM-DB.sql.bz2
Vérification :
# grep " Database:" /tmp/all-database.sql -- Host: localhost Database: database1 -- Current Database: `database1` -- Current Database: `database2` -- Current Database: `database3`
Restaurer
On peut créer une base de données (pour tester), la sauvegarder et puis la supprimer pour enfin essayer de la restaurer.
Pour supprimer la DB, on utilise “drop”:
mysql root@localhost:(none)> drop DATABASE database1;
Si on essaye de restaurer la base de données, sans la recréer au préalable, on a une erreur disant qu'elle n'existe pas. On commence donc par créer la base de données :
mysql root@localhost:(none)> CREATE DATABASE database1;
Pour restaurer, on utilise mysql (et non mysqldump!!) :
# mysql -u root -p database1 < /tmp/database1.sql
Enter password:
Outils annexes
mycli
mycli permet d'avoir une invite de commande dans mysql qui soit colorée et avec de l'auto-complétion.
# apt-get install python3-dev python3-pip
# pip3 install mycli
MySQLTuner
MySQLTuner analyse les requêtes SQL et propose des améliorations pour optimiser la base de données.
Github MySQLTuner-perl (github)