comme pour Postgresql:
cette installation prend en compte que les data ne doivent pas être sur la partition system (/var/lib/mysql)
d'une par parce que les disk ssd pour le system non pas besoin de beaucoup d'espace
d'autre par il est préférable de mettre ses data dans votre home (partition ) et un home dédié afin que personne ni touche hors-mis vous .
d'ailleurs cela devient la tendance et les futures version vont dans ce sens
pour ceux qui ont ubuntu j'ai utilisé la même procédure.... sauf que mariadb.service ce troue dans /lib/systemd/system/mariadb.service et mariadb@.service ...... seul différence
c'était annoncé que les grands logiciel convergeraient .... Ouf pour la maintenance....
je ne dirais jamais assez qu'il faut faire des sauvegardes surtout quand vous avez des serveur en route.....
Avant de faire des mise à jour ....
bon....
mais la procédure est la même si vous n'avez pas partitionné votre disk
cela est fait pour séparé les données utilisateurs et le system
on install mariadb mariadb-clients libmariadbclient
sous sudo -i attention
on ouvre un repertoire sur son home
mkdir /home/mysql
usermod -d /home/mysql mysql
chown -R mysql:mysql /home/mysql
on initialise la base de données sur le home /mysql
mysql_install_db --basedir=/usr --datadir=/home/mysql --user=mysql
attention pour avoir accès il faut donné des droits surtout si vous développez
DEFINITION ACCÈS CRÉÉATION À REFAIRE LORS DE MISE À jOUR
sed -i.bak 's/ProtectHome=true/ProtectHome=false/g' /usr/lib/systemd/system/mariadb.service
sed -i.bak 's/ProtectHome=true/ProtectHome=false/g' /usr/lib/systemd/system/mariadb@.service
puis modifier la variable datadir celle-ci n'est pas retoucher lors de mise à jour
mousepad /etc/mysql/my.cnf
[mysqld]
datadir =/home/mysql
exemple
# The MariaDB server
[mysqld]
datadir =/home/mysql
port = 3306
socket = /run/mysqld/mysqld.sock ..........
################################################################
on nettoie et remet en fonction le demon
systemctl daemon-reload
systemctl start mariadb
mysql_secure_installation
exemple
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password: *****
Re-enter new password: *****
Password updated successfully!
Reloading privilege tables..
... Success
sortir de root (sudo -i sortie exit )
pour le démarrage automatique
systemctl enable mariadb
toujours dans la console
mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDpour le démarrage automatique
systemctl enable mariadb
Server version: 10.1.29-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
show databases;
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
puis on ouvre une base de données
CREATE DATABASE CGIFCH CHARACTER SET utf8 COLLATE utf8_bin;
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| CGIFCH |
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
exit sortie de mysql
il ne vous reste qu'à installer DBeaver pour travailler avec vos data bases
je souhaite avoir été clair.....
si j'ai installé sur mon home (partion ou disk autre que system c'est par precaution) .
d'autre part vous devez faire une sauvegarde avant de mettre a jour votre serveur .....
un exemple de sauvegarde :
#!/bin/bash
Fonc_postgresql()
{
export PATH=$PATH:usr/bin # le chemin pour avoir les binaires de postgresql voir autrement si vous avez fait une installation avec les dépôts ppa autre qu'avec le binaire de postgresql
echo -n "File PostgreSQL ---DATA à Sauvegarder :"
PGSQL_DATA="PGSQL_DATA_CGIFCH_"$dat".backup"
# DATA
pg_dump --format custom -a --encoding utf8 --host 127.0.0.1 --port 5432 --username postgres CGIFCH > $PGSQL_DATA
if [ $? -ne 0 ]
then
echo "une erreur est survenue pendant la sauvegarde veuillez corriger POSTGRESQL ---DATA"
exit 1
fi
echo -n "File PostgreSQL --- SCHEMA à Sauvegarder :"
PGSQL_SCHEMA="PGSQL_SCHEMA_CGIFCH_"$dat".backup"
# SCHEMA
pg_dump --format custom --section pre-data --section post-data --encoding utf8 --host 127.0.0.1 --port 5432 --username postgres CGIFCH > $PGSQL_SCHEMA
if [ $? -ne 0 ]
then
echo "une erreur est survenue pendant la sauvegarde veuillez corriger POSTGRESQL ---SCHEMA"
exit 1
fi
echo "sauvegarde BD PostgreSql Termine"
}
Fonc_mariadb()
{
echo "sauvegarde MariaDb CGIFCH" #même chose mais en test pour voir les équivalences postgresql mariadb
# DATA
MARIADB_DATA="MARIADB_DATA_CGIFCH_"$dat".sql"
/usr/bin/mysqldump -u root -p --no-create-info --databases CGIFCH > $MARIADB_DATA # <--- sauvegarde des Datas indépendante pour pouvoir faire de la duplication on aurait put tout faire en une fois il suffit d'enlever --no-creat-info
if [ $? -ne 0 ]
then
echo "une erreur est survenue pendant la sauvegarde veuillez corriger MariaDb ---DATA"
exit 1
fi
echo "crypt mot de passe"
gpg --symmetric --cipher-algo aes256 $MARIADB_DATA #<---- on crypt avec un mot de passe
rm -f $MARIADB_DATA #<---- on supprime le fichier en clair
# SCHEMA
echo "File MariaDb ---ALL sauf DATA A Sauvegarder :"
MARIADB_SCHEMA="MARIADB_SCHEMA_CGIFCH_"$dat".sql"
/usr/bin/mysqldump -u root -p --no-data --databases CGIFCH > $MARIADB_SCHEMA
if [ $? -ne 0 ]
then
echo "une erreur est survenue pendant la sauvegarde veuillez corriger MariaDb ---SCHEMA"
exit 1
fi
echo "crypt mot de passe"
gpg --symmetric --cipher-algo aes256 $MARIADB_SCHEMA
rm -f $MARIADB_SCHEMA
echo "sauvegarde BD MariaDB Termine\n\n\n"
}
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
# le main
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
echo "bonjour"
dat=$(date +%Y%m%d)
cd "/run/media/XXXXX/9A04-7B5D/" 2>/dev/null
RetourCode=${?}
if [[ $RetourCode == 1 ]]
then
echo "Branche le lecteur"
exit 1
fi
echo -n "Voulez-SAUVEGARDER Y/N? : "
read yes
if [ "$yes" = "y" ] || [ "$yes" = "Y" ]
then
chemin_sav="/run/media/XXXX/9A04-7B5D/DATABASE_"$dat
mkdir $chemin_sav 2>/dev/null
RetourCode=${?}
if [[ $RetourCode == 1 ]]
then
echo "Dossier de sauvegarde déjà existant"
# exit 1
fi
cd $chemin_sav
RetourCode=${?}
if [[ $RetourCode == 1 ]]
then
echo "Dossier inacessible"
exit 1
fi
echo -e "Sauvegarde PostGresql : Y/N \n"
read yesp
if [ "$yesp" = "y" ] || [ "$yesp" = "Y" ]
then
Fonc_postgresql $dat
fi
echo -e "Sauvegarde MariaDB : Y/N \n"
read yesm
if [ "$yesm" = "y" ] || [ "$yesm" = "Y" ]
then
Fonc_mariadb $dat
fi
fi
echo "Ok, bye!"
exit 0
un exemple de restore:
#!/bin/bash
Fonc_postgresql()
{
export PATH=$PATH:/usr/bin; #<---- voir votre installation personnel vous devez avoir pg_restore en ligne
PGSQL_SCHEMA="PGSQL_SCHEMA_CGIFCH_"$1".backup"
if [ -e "$PGSQL_SCHEMA" ]
then
# recharge et creation des tables et leurs definitions
echo -n "File PostgreSQL ---SCHEMA A Restaurer :"
pg_restore --host localhost --port 5432 --username postgres --dbname CGIFCH $PGSQL_SCHEMA
if [ $? -ne 0 ]
then
echo "une erreur est survenue pendant la restauration veuillez corriger POSTGRESQL ---SCHEMA "
exit 1
fi
# recharge les données
PGSQL_DATA="PGSQL_DATA_CGIFCH_"$1".backup"
echo -n "File PostgreSQL ---DATA A Restaurer :"
pg_restore -a --host localhost --port 5432 --username postgres --dbname CGIFCH $PGSQL_DATA
if [ $? -ne 0 ]
then
echo "une erreur est survenue pendant la restauration veuillez corriger POSTGRESQL ---DATA "
exit 1
fi
echo "restaurer controler avec un vacum general "
fi;
}
Fonc_mariadb()
{
MARIADB_SCHEMA_GPG="MARIADB_SCHEMA_CGIFCH_"$1".sql.gpg"; # <---- votre fichier a restaurer en premier (les définitions)
if [ -e "$MARIADB_SCHEMA_GPG" ]
then
MARIADB_SCHEMA="MARIADB_SCHEMA_CGIFCH_"$1".sql"
MARIADB_SCHEMA_GPG="MARIADB_SCHEMA_CGIFCH_"$1".sql.gpg"
# SCHEMA
echo -n "File MariaDb ---SCHEMA A Restaurer :"
gpg -o $MARIADB_SCHEMA -d --cipher-algo aes256 $MARIADB_SCHEMA_GPG #<--- on decrypt
mysql -u root -p CGIFCH < $MARIADB_SCHEMA #<--- on restaure
if [ $? -ne 0 ]
then
echo "une erreur est survenue pendant la restauration veuillez corriger MariaDb ---SCHEMA"
exit 1
fi
#rm -f $MARIADB_SCHEMA #<--- on ne laisse pas le fichier en claire par sécurité
MARIADB_DATA="MARIADB_DATA_CGIFCH_"$1".sql"
MARIADB_DATA_GPG="MARIADB_DATA_CGIFCH_"$1".sql.gpg"
# DATA
echo -n "File MariaDb ---DATA A Restaurer :"
gpg -o $MARIADB_DATA -d --cipher-algo aes256 $MARIADB_DATA_GPG
mysql -u root -p CGIFCH < $MARIADB_DATA
if [ $? -ne 0 ]
then
echo "une erreur est survenue pendant la restauration veuillez corriger MariaDb ---DATA"
exit 1
fi
#rm -f $MARIADB_DATA
fi;
}
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
# le main
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
echo "bonjour"
# disk USB de sauvegarde
cd "/run/media/XXXX/9A04-7B5D/" 2>/dev/null
RetourCode=${?}
if [[ $RetourCode == 1 ]]
then
echo "Branche le lecteur"
exit 1
fi
cd /run/media/XXXX/9A04-7B5D/
echo "recuperation RESTAURE BDsql: "
echo -n "Entrez: sa date de sauvegarde : "
read dat
chemin_sav="DATABASE_"$dat
cd $chemin_sav>/dev/null
RetourCode=${?}
if [[ $RetourCode == 1 ]]
then
echo "Dossier de sauvegarde inexistant"
exit 1
fi
echo -e "Restauration de la base de données PostGresql Y or N \n"
read
if [ "$REPLY" = "y" ] || [ "$REPLY" = "Y" ]
then
Fonc_postgresql $dat
fi
echo -e "Restauration de la base de données MariaDB Y or N \n"
read
if [ "$REPLY" = "y" ] || [ "$REPLY" = "Y" ]
then
Fonc_mariadb $dat
fi
echo "Ok, bye! "
exit 0
@plus