Initialisation

This commit is contained in:
2024-01-07 10:02:35 +01:00
commit b7291133a3
4418 changed files with 169147 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
====== Afficher la liste des tables ======
{{ :informatique:langage:php:pasted:20220105-211558.png?75x75|Afficher la liste des tables}}
Instructions à suivre pour afficher la liste des tables en requête SQL.
===== MySQL et MariaDB =====
Les instructions sont testées sous
* MariadDB 10.1
* MariadDB 10.3
Les noms à adapter sont :
* la_bdd
<code SQL>
USER la_bdd;
SHOW TABLES;
</code>

View File

@@ -0,0 +1,23 @@
====== Créer un administrateur ======
{{ :informatique:langage:php:pasted:20220105-211558.png?75x75|Créer un utilisateur et sa base donnes}}
Instructions à suivre pour créer un administrateur en requête SQL.
===== MySQL et MariaDB =====
Les instructions sont testées sous
* MariadDB 10.1
* MariadDB 10.3
Les noms à adapter sont :
* mon_user
* mon_mdp
<code SQL>
CREATE USER 'mon_user'@'localhost' IDENTIFIED BY 'mon_mdp';
GRANT ALL ON *.* TO mon_user@localhost;
FLUSH PRIVILEGES;
</code>

View File

@@ -0,0 +1,29 @@
====== Créer un utilisateur et sa base de données ======
{{ :informatique:langage:php:pasted:20220105-211558.png?75x75|Créer un utilisateur et sa base donnes}}
Instructions à suivre pour créer un utilisateur et sa base de données en requête SQL.
===== MySQL et MariaDB =====
Les instructions sont testées sous
* MariadDB 10.1
* MariadDB 10.3
Les noms à adapter sont :
* ma_bdd
* mon_user
* mon_mdp
<code SQL>
CREATE DATABASE ma_bdd;
DROP USER IF EXISTS mon_user;
CREATE USER 'mon_user'@'localhost' IDENTIFIED BY 'mon_mdp';
GRANT ALL ON ma_bdd.* TO mon_user@localhost;
FLUSH PRIVILEGES;
</code>

View File

@@ -0,0 +1,57 @@
====== Déplacer les fichiers de données du SGBD ? ======
La restauration consiste à déposer des **fichiers de sauvegarde** dans un nouveau système, afin de reprendre le travail au moment où la **sauvegarde des fichiers** a été effectuée.
Voilà comment j'ai procédé pour restaurer les fichiers systèmes sans se soucier du format des bases de données (innoDB, MyISAM...).
Il faut effectuer ces opérations sur un SGBD Maria DB vierge, car cela effacera tout le contenu actuel du SGBD.
--
Arrêt des services :
sudo systemctl stop mariadb
--
Sauvegarder les fichiers actuels, du SGBD destination :
sudo tar cvf mysql.tar.gz /var/lib/mysql
--
Noter les user et group utilisés actuellement :
ls -lha /var/mysql
Par défaut c'est **mysql:mysql** avec les droits **660** pour les **fichiers** et **700** pour les **dossiers**
le **dossier racine** est **755** pour **mysql:mysql**
--
Effacer tous les fichiers présents dans le dossier de destination
sudo rm -fr /var/lib/mysql/*
---
Copier les anciens fichiers qui se trouvent sur ''/mnt/disk_18/mysql''
sudo cp -r /mnt/disk_18/mysql/* /var/lib/mysql/
---
changement du owner/group
sudo chown -R mysql:mysql /var/lib/mysql
---
Vérifier le nouvel emplacement à MySQL à partir de son fichier de configuration ''my.cnf'' :
<code>[mysqld] datadir=/var/lib/mysql</code>
---
Démarrer le service
sudo systemctl start mariadb

View File

@@ -0,0 +1,85 @@
====== Sauvegarde une base de données MariaDB ======
{{ :dummy.png?75x75|Nom de la section}}
Il existe deux façon de faire une sauvegarde. L'une est plus sécurisée que l'autre.
Ouvrez une fenêtre de terminal ou une invite de commande sur votre système.
===== Sauvegarde sécurisée =====
Créer dans le home de l'utilisateur (''~'') le fichier ''.my.cnf''. Ce fichier contiendra le nom et le mot de passe qui seront utilisés lors de la sauvegarde.
<code>
[mysqldump]
user=cedric
password='&qy9zh%Mzz$mA'
</code>
Utiliser la commande ''mariadb-dump'' pour effectuer la sauvegarde.
Si la commande ''mariadb-dump'' ne fonctionne pas, essayez ''mysqldump''.
<code bash>
mariadb-dump -h [nom_du_serveur] [nom_de_la_base_de_données] > backup_[nom_de_la_base_de_données]_$(date "+%Y%m%d-%H%M%S").sql
</code>
On peut imaginer un script complet.
<code bash>
#!/bin/bash
set -e
## Backup de la base de données
dateHeure=$(date "+%Y%m%d-%H%M%S")
database=[nom_de_la_base_de_donnees]
db_host=[nom_du_serveur]
file_log=/var/log/save_${database}-${dateHeure}.log
path_tmp=/tmp
path_backup=/var/backup
file_dump=backup_${database}_${dateHeure}.sql
file_dump_archive=${file_dump%.*}.tar.gz
checkError() {
status=${1}
message=${2}
file_log=${3}
if [ "$status" -ne 0 ]
then
echo "Erreur : " "${message}" | tee -a "${file_log}"
echo "Fin du script" | tee -a "${file_log}"
exit "$status"
fi
return
}
echo -e "\n Création du dump de la base de données" | tee -a "${file_log}"
mariadb-dump -h ${db_host} ${database} | tee "${path_tmp}"/"${file_dump}" | tee -a "${file_log}"
checkError $? "création du dump de la base" "${file_log}"
echo -e "\n Création de l'archive du dump"| tee -a "${file_log}"
tar zcvf "${path_backup}/${file_dump_archive}" "${path_tmp}/${file_dump}" | tee -a "${file_log}"
checkError $? "création du l'archive" "${file_log}"
echo -e "\n Suppression du dump"| tee -a "${file_log}"
rm "${path_tmp}/${file_dump}" | tee -a "${file_log}"
checkError $? "suppression du dump de la base de données" "${file_log}"
</code>
===== Sauvegarde non sécurisée =====
<code>
mariadb-dump -u [utilisateur] -p[password] [nom_de_la_base_de_données] > [nom_du_fichier_de_sauvegarde.sql]
</code>
* [utilisateur] : Remplacez ceci par le nom d'utilisateur MySQL.
* [password] : Si l'utilisateur MySQL a un mot de passe, vous pouvez le spécifier immédiatement après -p (sans espace). Si vous ne le spécifiez pas, la commande vous demandera le mot de passe lors de l'exécution.
* [nom_de_la_base_de_données] : Remplacez ceci par le nom de la base de données que vous souhaitez sauvegarder.
* [nom_du_fichier_de_sauvegarde.sql] : Remplacez ceci par le nom que vous souhaitez donner au fichier de sauvegarde. Il aura généralement l'extension ".sql".
Exécutez la commande en appuyant sur Entrée. Si un mot de passe est nécessaire et que vous ne l'avez pas spécifié après -p, la commande vous le demandera.
La commande ''mysqldump'' créera une sauvegarde de la base de données spécifiée dans le fichier indiqué. Ce fichier contiendra toutes les instructions SQL nécessaires pour restaurer la base de données ultérieurement.
N'oubliez pas de prendre des mesures de sécurité appropriées pour protéger vos informations d'identification MySQL, car elles sont sensibles.

View File

@@ -0,0 +1,71 @@
====== Fixer une corruption InnoDB ======
{{tag>"Linux système" "Windows système"}}
La corruption de la table InnoDB est un problème fréquent qui peut affecter les bases de données MySQL ou MariaDB. Cela peut se produire lorsque la table InnoDB est endommagée en raison d'un crash du système, d'une coupure de courant ou d'une panne de disque. La corruption de la table InnoDB peut entraîner des erreurs lors de l'accès à la base de données et peut même rendre impossible l'accès à certaines données.
Si cela devait vous arriver, voici les actions à mener :
1/ Arrêter **mysqld** et sauvegarder les fichiers de la base de données.
<code bash>
service mysqld stop
mkdir /root/mysql_backup
cp -r /var/lib/mysql/* /root/mysql_backup/
</code>
2/ Ajouter l'option **innodb_force_recovery** dans la section **[mysqld]** du fichier de configuration MySQL.
Cette option permettera de démarrer mysql et créer un dump des bases de données.
Modifier le fichier **/etc/my.cnf**:
<code bash>
[mysqld]
innodb_force_recovery = 4
</code>
3/ Démarrer MySQL.
<code bash>
mysqld start
</code>
4/ Effectuer un dump des bases de données.
<code bash>
mysqldump -uroot -p`cat /root/.mysql.shadow` -A > dump20120915_084449.sql
</code>
Si des erreurs persistent, il faut augmenter la valeur de l'option **innodb_force_recovery**.
5/ Supprimer le contenu des fichiers de l'InnoDB
<code bash>
rm -rf /var/lib/mysql/*
</code>
6/ Enlever l'option **innodb_force_recovery** du fichier **/etc/my.cnf**.
7/ Démarrer **mysqld**
<code bash>
/etc/init.d/mysqld start
</code>
8/ Restaurer les bases de données.
<code bash>
mysql -uroot < dump20120915_084449.sql
</code>
9/ Restaurer les droits des bases de données.
<code bash>
mysql -uroot
</code>
puis une fois dans MySQL
<code bash>
FLUSH PRIVILEGES;
</code>
Actuelle, je le constate trop souvent avec Windows 11. Si cela vous arrive également, il est conseillé d'effectuer régulièrement des sauvegardes de vos données importantes afin de pouvoir les restaurer en cas de problème. Il est également recommandé de prévoir un arrêt propre de MySQL avant de fermer ou de redémarrer votre ordinateur, afin de minimiser les risques de corruption de données ou de perte de données.

View File

@@ -0,0 +1,30 @@
====== Maintenance ======
===== Table des matières =====
<WRAP clear/>
<WRAP group>
<WRAP half column>
==== Les pages ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
</WRAP>
<WRAP half column>
==== Les sous-catégories ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -noPages -subns -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
</WRAP>
</WRAP>
~~NOTOC~~
~~NOCACHE~~

View File

@@ -0,0 +1,33 @@
====== Réinitialiser le mot de passe root ======
Arrêter le service mariaDB :
sudo systemctl stop mariadb
Démarrer mariaDb en mode secouru, en ignorant le table des droits :
sudo mysqld_safe --skip-grant-tables &
Se connecter en root pour effectuer des modifications :
mysql -u root
Dans la console MySQL, on saisi ce bloc d'instructions :
<code>
use mysql;
UPDATE user set password=PASSWORD("newPassWord") where user='root';
UPDATE user SET plugin="";
FLUSH PRIVILEGES;
exit
</code>
Arrêter MariaDB :
sudo cat /var/run/mysqld/mysqld.pid
sudo kill 26819 // numéro récupéré à la ligne précédente
Démarrer de MariaDb
sudo service mariadb start
Tester la connexion :
mysql -uroot -p