MySql en console

Installation

# apt install mysql-server

si vous souhaitez utiliser mysql avec PHP il faudra installer les paquets liés à ce langage et à sa version. Par exemple pour php7.4 # apt install php7.4-mysql.

Une fois l'installation terminée l'utilisateur root est créé sans mot de passe, vous pouvez laisser tel quel si l'installation est local mais veillez à donner un mot de passe à root si votre serveur est accessible de l'extérieur.

le root du système et le root MySql sont deux entités distincts idem pour les utilisateurs.

Pour des raisons de sécurité et de logique il est conseillé de créer un utilisateur MySql et de lui attribuer une ou plusieurs base de données.
Pour cela connectons nous en tant que root MySql avec le mot de passe précédemment créé.

# mysql -u root -p
Enter password:
...
...
mysql>

Une fois sur le prompt MySql on crée un utilisateur olaf et une base de donnée olafdb qu'on lui attribuera avec quelques privilèges

mysql> CREATE USER 'olaf'@'localhost' IDENTIFIED BY 'mot_de_passe';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT USAGE ON * . * TO 'olaf'@'localhost' IDENTIFIED BY 'mot_de_passe' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON `olafdb` . * TO 'olaf'@'localhost';
Query OK, 0 rows affected (0.00 sec)

Voila qui est fait!

pour quitter le prompt MySql tapez exit, quit, \q ou [CTRL+d].

Afficher toutes les bases de données

MySql autorise deux manières pour afficher les bases de données:

depuis un prompt utilisateur système

# mysqlshow -u root -p
Enter password: 
...

Depuis un prompt utilisateur MySql

# mysql -u root -p
Enter password:
...
...
mysql> SHOW DATABASES;

Dans les deux cas affichera quelque chose comme ça:

+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| olafdb             |
| mysql              |
+--------------------+

Afficher les utilisateurs mysql

 mysql> SELECT User, Host FROM mysql.user;
 +---------------+-----------+
 | User          | Host      |
 +---------------+-----------+
 | mysql.session | localhost |
 | mysql.sys     | localhost |
 | olaf          | localhost |
 | root          | localhost |
 +---------------+-----------+
 5 rows in set (0.00 sec)

Afficher les bases de données liées à un utilisateur

# mysqlshow -u olaf -p
Enter password: 
+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| olafdb             |
+--------------------+

Afficher les tables d'une base de données

# mysqlshow -u olaf -p olafdb
Enter password: 
Database: olafdb
+-----------------------------------------+
|                 Tables                  |
+-----------------------------------------+
| wp_commentmeta                          |
| wp_comments                             |
| wp_links                                |
| wp_nxs_log                              |
| wp_options                              |
| wp_postmeta                             |
| wp_posts                                |
| wp_term_relationships                   |
| wp_term_taxonomy                        |
| wp_terms                                |
| wp_usermeta                             |
| wp_users                                |
+-----------------------------------------+

Sauvegarde (dump)

Faire un dump (sauvegarde):

# mysqldump -u user -pMotDePasse nom_db | gzip > nom_backup.gz

Si on ne souhaite pas entrer le mot de passe de façon visible à l'écran on peut faire ainsi:

# mysqldump -u user -p nom_db | gzip > nom_backup.gz
Enter password: 

Remonter un dump:

# mysql -u root -p nom_db < /home/user/mon_backup.sql

Dump d'une seule table

$ sed -n -e '/DROP TABLE.*ps_connections_source/,/UNLOCK TABLES;/p' db1.5 > connsource.sql

Modifier les Mots de passe

Définir un mot de passe pour l'utilisateur root.

# mysqladmin -u root password MotDePasse

Modifier le mot de passe de l'utilisateur root.

# mysqladmin -u root -pAncienMotDePasse password NouveauMotDePasse

Modifier le mot de passe d'un autre utilisateur.

# mysqladmin -u nomUser -pAncienMotDePasse password NouveauMotDePasse

PhpMyAdmin un outil graphique quand même

Une version de PHP doit être préalablement installé bien sûr!

# apt-get install phpmyadmin

Bon en fait c'est presque tout, PhpMyAdmin est accessible depuis http://votre_domaine/phpmyadmin.
Toute installation classique de PhpMyAdmin utilisera ce chemin pour accéder à son l'interface.
On peut modifier cela en modifiant l'alias dans le fichier "apache.conf" de PhpMyAdmin.

# nano /etc/phpmyadmin/apache.conf

Puis modifier la ligne

Alias /phpmyadmin /usr/share/phpmyadmin

par

Alias /ce_que_vous_voulez /usr/share/phpmyadmin

Il faudra alors entrer l'adresse "http://votre_domaine/ce_que_vous_voulez" pour accéder à l'interface d'administration.

18-Dec-2020
^