Initialisation
This commit is contained in:
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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~~
|
||||
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user