sql:mysql

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
sql:mysql [2022/06/06 15:13] – [Mariabackup] precise which package to install phswsql:mysql [2025/10/07 21:43] (Version actuelle) – [CLI] add how to get storage engine phsw
Ligne 9: Ligne 9:
  
  
----------+
 ==== Serveur MySQL ==== ==== Serveur MySQL ====
  
Ligne 18: Ligne 18:
  
  
--------------------- 
 ==== Client MySQL ==== ==== Client MySQL ====
 Installer le paquet ''mysql-client''. La commande est ensuite ''mysql''. Installer le paquet ''mysql-client''. La commande est ensuite ''mysql''.
Ligne 45: Ligne 44:
  
  
-------------------+
 ==== CLI ==== ==== CLI ====
  
Ligne 64: Ligne 63:
 <code sql> <code sql>
 show tables; show tables;
 +</code>
 +
 +
 +=== Décrire la structure d'une table ===
 +
 +<code sql>
 +DESC table_name;
 +</code>
 +
 +Ou pour avoir la commande SQL qui permet de créer la table en question :
 +<code sql>
 +SHOW CREATE TABLE <table_name>;
 </code> </code>
  
Ligne 74: Ligne 85:
  
  
-=== Supprimer un utilisateur ===+=== Vider une base de données ===
  
-[[https://dev.mysql.com/doc/refman/5.6/en/drop-user.html|Source]]+<code sql> 
 +DROP DATABASE db; 
 +CREATE DATABASE db; 
 +</code> 
 + 
 + 
 +=== Connaître l'espace occupé par les tables === 
 + 
 +[[https://stackoverflow.com/questions/6474591/how-can-you-determine-how-much-disk-space-a-particular-mysql-table-is-taking-up|Source]]
  
 +En Mo :
 <code sql> <code sql>
-DROP USER 'jeffrey'@'localhost';+SELECT table_name, ROUND((data_length+index_length)/power(1024,2), 2) tablesize_mb FROM information_schema.tables WHERE table_schema='mydbORDER BY table_name;
 </code> </code>
  
  
 +=== Afficher les paramètres de configuration ===
 +
 +[[https://stackoverflow.com/questions/1493722/mysql-command-for-showing-current-configuration-variables|Source]]
 +<code sql>
 +SHOW VARIABLES LIKE '%max%';
 +</code>
 +
 +
 +=== Connaître le moteur de stockage utilisé pour les tables ===
 +
 +[[https://stackoverflow.com/questions/213543/how-can-i-check-mysql-engine-type-for-a-specific-table|Source]]
 +<code sql>
 +SHOW TABLE STATUS WHERE Name = 'xxx'
 +</code>
 +
 +
 +==== Dupliquer une base de données  ====
 +
 +Créer la base de données de destination, puis ([[https://stackoverflow.com/questions/675289/mysql-cloning-a-mysql-database-on-the-same-mysql-instance|source]]) :
 +<code bash>
 +mysqldump db_src | mysql db_dest
 +</code>
  
  
----------------------- 
 ==== Configurer SSL avec Let's Encrypt ==== ==== Configurer SSL avec Let's Encrypt ====
  
Ligne 124: Ligne 165:
  
  
- 
----------------------- 
 ==== PhpMyAdmin ==== ==== PhpMyAdmin ====
  
Ligne 150: Ligne 189:
  
  
- 
------------- 
  
 ==== Installer MySQL 5.7 sur Debian 8 Jessie ==== ==== Installer MySQL 5.7 sur Debian 8 Jessie ====
Ligne 172: Ligne 209:
  
  
 +==== Utilisateurs ====
  
-==== Problème d'accès avec debian-sys-maint ====+=== Problème d'accès avec debian-sys-maint ===
  
 [[https://stackoverflow.com/questions/11644300/access-denied-for-user-debian-sys-maint|Source]] [[https://stackoverflow.com/questions/11644300/access-denied-for-user-debian-sys-maint|Source]]
Ligne 184: Ligne 222:
  
  
 +=== Mot de passe root ===
  
-==== Mariabackup ====+  * https://stackoverflow.com/questions/75978151/connect-to-mariadb-with-sudo-without-password 
 +  * https://www.digitalocean.com/community/tutorials/how-to-reset-your-mysql-or-mariadb-root-password 
 +  * https://www.digitalocean.com/community/tutorials/how-to-install-mariadb-on-debian-11 
 +  * https://linuxconfig.org/how-to-change-mariadb-user-password 
 +  * https://linuxize.com/post/how-to-reset-a-mysql-root-password/ 
 + 
 +=== Supprimer un utilisateur ==
 + 
 +[[https://dev.mysql.com/doc/refman/5.6/en/drop-user.html|Source]] 
 + 
 +<code sql> 
 +DROP USER 'jeffrey'@'localhost'; 
 +</code> 
 + 
 +=== Créer un utilisateur === 
 + 
 +Avec tous les droits sur toutes les bases de données ([[https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql|source]]) : 
 +<code sql> 
 +CREATE USER 'user'@'localhost' IDENTIFIED BY 'motdepasse'; 
 +GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost'; 
 +FLUSH PRIVILEGES; 
 +</code> 
 + 
 +Pour qu'il n'y ait pas de mot de passe ([[https://linuxconfig.org/mysql-allow-empty-password|source]]) : 
 +<code sql> 
 +CREATE USER 'user'@'localhost' IDENTIFIED BY ''; 
 +</code> 
 + 
 +Sans doute que cet utilisateur ne peut se connecter qu'en TCP et pas via la socket (à tester...). 
 + 
 +=== Voir comment un utilisateur a été créé === 
 + 
 +<code sql> 
 +SHOW CREATE USER user@localhost; 
 +</code> 
 + 
 + 
 + 
 +==== Sauvegardes ==== 
 + 
 +''mariadb-backup'' permet d'exporter la structure et les données d'un serveur MariaDB. 
 + 
 + 
 +=== Mariabackup ===
  
   * [[https://github.com/omegazeng/run-mariabackup]]   * [[https://github.com/omegazeng/run-mariabackup]]
Ligne 194: Ligne 276:
 <code bash> <code bash>
 # Sauvegardes : # Sauvegardes :
-mkdir 20220306-1230-full+mkdir 20220306-1230-full # il faut créer le dossier avant
 mariabackup --backup --stream=xbstream --extra-lsndir=$(pwd)/20220306-1230-full | gzip > $(pwd)/20220306-1230-full/backup.stream.gz mariabackup --backup --stream=xbstream --extra-lsndir=$(pwd)/20220306-1230-full | gzip > $(pwd)/20220306-1230-full/backup.stream.gz
 mkdir 20220306-1408 mkdir 20220306-1408
Ligne 217: Ligne 299:
  
  
 +
 +==== Table de verrous trop petite ====
 +
 +[[https://stackoverflow.com/questions/6901108/the-total-number-of-locks-exceeds-the-lock-table-size|Source]]
 +
 +Dans ''my.cnf'', augmenter la valeur de ''innodb_buffer_pool_size'' à ''64MB'' par exemple.
 +
 +
 +
 +==== Optimisation des tables ====
 +
 +Les ''DELETE'' ne libèrent pas de la place sur le disque. Il faut exécuter : 
 +<code sql>
 +OPTIMIZE TABLE table;
 +</code>
 +
 +  * [[https://github.com/major/MySQLTuner-perl|MySQLTuner]]
  • sql/mysql.1654521185.txt.gz
  • Dernière modification : 2022/06/06 15:13
  • de phsw