CitizenZ

Blog Libre, Net & Société

Gérez vos bases Mysql avec Adminer

Rédigé par citizenz Aucun commentaire
La plupart des tutos préconisent phpmyadmin pour gérer ses bases MYSQL de manière simple.
Hors, j'ai découvert une solution bien moins lourde : un seul fichier .php qui donne quasiment autant de possibilités que phpmyadmin. Oui, ca existe, ça s'appelle Adminer et c'est vachement bien.
Un fichier .php "to rule them all" on pourrait presque dire :)

Pour l'installer : rien de plus simple.
Mettez vous dans le répertoire web souhaité (par exemple, j'ai l'habitude d'utiliser /var/www/sql.monsite.fr/web).
Vous aurez pris soin de créer un fichier vhost (pour votre Apache ou Nginx) avec la gestion php. Rien de plus.
Vous téléchargez le fichier Adminer :
$ sudo wget https://github.com/vrana/adminer/releases/download/v4.4.0/adminer-4.4.0.php
On le renomme :
$ sudo mv adminer-4.4.0.php index.php
On lui donne les bons droits :
$ sudo chown www-data:www-data index.php
Et roulez jeunesse ! Rendez-vous sur la page de votre virtual host (exemple : https://sql.monsite.fr)


On peut faire autant de choses avec Adminer que sous phpmyadmin : importer et exporter des bases, voir, modifier, insérer, vider, supprimer, etc.
Je trouve même que c'est plus claire, plus clean, plus simple.
A vous de voir !


Mariadb (Mysql) : connexion root avec phpMyAdmin sous Ubuntu 16.04

Rédigé par citizenz 1 commentaire
Profitant de vacances bien méritées (si si !), je viens re-installer un ou deux serveurs. Un sous Debian 9 et un sous Ubuntu 16.04 server.
Pour ces 2 distributions, l'installation de MySQL (ou plutôt la version Mariadb) diffère un tant soit peu en raison de la méthode "connexion" désormais différente.
En effet, il faut désormais configurer "à la mano" un ou deux fichiers afin de ne pas devenir une fois sur la page de phpMyAdmin où, si on ne fait pas cette configuration, on peut pas se connecter en root avec le mot entré à l'installation.
Je pensais que cette manip était réservée à Debian 9 mais elle est indispensable sous Ubuntu 16.04 aussi.

Voici les différentes étapes pour retrouver une connexion normale en root pour MySQL :
 
nano /etc/mysql/mariadb.conf.d/50-server.cnf
[...]
bind-address           = 127.0.0.1
sql-mode="NO_ENGINE_SUBSTITUTION"
[...]

Il faut maintenant régler la méthode d'authentification par mot de passe à "native" pour mariadb afin de pouvoir se connecter en root à phpMyAdmin. On rentre la commande suivante en console :
 
echo "update mysql.user set plugin = 'mysql_native_password' where user='root';" | mysql -u root

Il faut aussi éditer le fichier suivant afin de rentrer le mot de passe root Mysql :
 
nano /etc/mysql/debian.cnf
[client]
host = localhost
user = root
password = MOTDEPASSE
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = root
password = MOTDEPASSE
socket = /var/run/mysqld/mysqld.sock
basedir = /usr

On sauvegarde et on redémarre mysql :
 
service mysql restart

Voila : vous pouvez désormais vous connecter normalement sur phpmyadmin avec root.

[TUTO] Sauvegardes journalières et accès à distance sur votre serveur MySQL 

Rédigé par citizenz 2 commentaires

Le défi est simple : sauvegarder de manière journalière sur un serveur A, une (ou plusieurs) base(s) MySQL située(s) sur un serveur B (distant).

Nous utiliserons l'utilitaire mysqldump.

Mysqldump : c'est quoi ?
Sources : https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
L'utilitaire client mysqldump effectue des sauvegardes logiques, produisant un ensemble d'instructions SQL qui peuvent être exécutées pour reproduire les définitions d'objets et les données de table d'origine de la base de données.
Il peut "sauvegarder" une ou plusieurs bases de données MySQL et les "transférer" vers un autre serveur SQL.
La commande mysqldump peut également générer des résultats dans CSV, d'autres textes délimités ou au format XML.

En gros, en utilisant la commande mysqldump avec certains arguments, on peut se connecter directement sur le serveur distant et rapatrier les bases voulues.

ETAPE 1 : PREPARATION
On va préparer le terrain sur le serveur distant où nous allons créer un utilisateur "spécial", chargé exclusivement des sauvegardes (pour ce cas précis).

Postulats de départ : 
- MySQL est installé et fonctionne sur vos deux serveurs
- phpmyadmin est installé et focntionnel sur votre serveur distant
On travaillera donc avec phpMyadmin plutôt qu'en ligne de commande.

Création d'un "remote-user" :

  1. Se connecter sur phpMyadmin
  2. Aller sur Utilisateurs puis Ajouter utilisateur
  3. Création d'un utilisateur : choisissez un nom (Exemple : remote-user)
  4. Client : choisissez "tout client" ou symbole %
  5. Entrez un mot de passe (solide si possible !)
  6. Privilèges globaux : cochez la case "tout cocher"
  7. Validez

Vous aurez ainsi un utilisateur qui s'appellera "remote-user" avec des privilèges sur tout le serveur / toutes les bases.

ETAPE 2 : CONFIGURATION
On va configurer MySQL pour écouter sur l'adresse IP publique :

  1. Ouvrez /etc/mysql/my.cf
  2. Commentez la ligne bind-address 127.0.0.1 (en ajoutant un # devant, soit : #bind-address 127.0.0.1)
  3. Ajoutez juste en-dessous : bind-address xx.xx.xx.xx (xx.xx.xx.xx étant l'adresse IP publique de votre serveur)
  4. Sauvegardez
  5. Relancez MySQL : /etc/init.d/mysql restart

Désormais vous pourrez vous connecter "à distance" sur le serveur MySQL.

/!\ : Si vous avez un firewall, pensez à ouvrir le port 3306 sur le serveur distant !

ETAPE 3 : SYNTAXE
Pour faire une sauvegarde journalière des bases MySQL du serveur distant avec la date et l'heure de sauvegarde (soyons fous !), nous allons utiliser mysqldump avec certaines options :
- h : hote distant (ou adresse IP)
- u : utilisateur distant ("remote-user" dans notre exemple)
- p : mot de passe de l'utilisateur distant créé à l'étape 1

Ce qui donne la commande complète suivante :

/usr/bin/mysqldump -h mon.serveur-distant.com -u remote-user -p'MonMotDePasse' ma-base-mysql > /home/moi/backup/mabase-`date +%Y%m%d`-`date +%H%M`.sql

/!\ : Il n'y a pas d'espace entre -p et le mot de passe qui se trouve entre les guillemets simples : c'est normal !
Evitez donc d'utiliser un mot de passe qui possède des guillemets simples. Perso, j'ai galéré à en devenir chèvre à cause de ce... détail.

ETAPE 4 : AUTOMATISER LA TACHE AVEC CRON
On va utiliser Cron pour une sauvegarde journalière "automatique" :

  1. Tapez crontab -e
  2. On va y mettre la ligne suivante (bas de fichier) : @daily /usr/bin/mysqldump -h mon.serveur-distant.com -u remote-user -p'MonMotDePasseQuilEstBeau' ma-base-mysql > /home/moi/backup/mabase-`date +%Y%m%d`-`date +%H%M`.sql (c'est en gros la même commande que précisée plus haut avec l'option @daily qui précise à Cron de se déclencher chaque jour... à 00:00 en l'occurrence).
  3. Sauvegardez

ETAPE 5 (facultatif) : SUPPRIMER LES SAUVEGARDES VIEILLES DE 7 JOURS
Effacer automatiquement les sauvegardes vieilles de 7 jours (ou 15 jours, ou 4 jours, ... si vous voulez !) : ça permet de faire un peu de ménage dans les sauvegardes... et de s'y retrouver.
Vous pouvez aussi choisir de ne pas supprimer vos sauvegardes (là, il vaut mieux avoir suffisamment d'espace de stockage), de garder une seule sauvegarde journalière, une sauvegarde par semaine, une sauvegarde mensuelle, etc. Tout dépend de vos besoins.

  1. crontab -e
  2. On va ajouter la ligne suivante : @daily find /mon/repertoire/desauvegarde -type f -mtime +6 -delete (ce qui aura pour effet de supprimer tout fichier dans le répertoire vieux de 7 jours au moins).

Et voila votre/vos base(s) sauvegardée(s) !

Cette article est certainement complémentaire de l'article : https://www.citizenz.info/utilser-rsync-ssh-et-sudo-pour-copier-facilement-vos-donnees
 

1er commit pour freetorrent

Rédigé par citizenz 1 commentaire

Voila : c'est ma première utilisation de Github pour publier le code de freetorrent.fr. Deux objectifs : distribuer le code mais aussi pourquoi pas, fédérer quelques compétences pour le développer.

Freetorrent.fr, c'est avant tout un site web qui tente à sa façon de promouvoir le Libre.

freetorrent.fr rassemble des projets sous licences libres et licences de libre diffusion et les propose au téléchargement par l'intermédiaire du protocole Bittorrent.
Il est complémentaire de certains gros projets officiels qui possèdent déjà leurs services Bittorrent et s'adresse tout particulièrement aux projets plus modestes qui recherchent un moyen simple de partager librement leurs travaux.

J'ai débuté l'aventure de freetorrent.fr officiellement en 2006. Il y a quelques temps j'ai décidé de m'affranchir des "kits" tracker bittorrent classiques pour adapter un code qui me convienne mieux.

N'ayant que de très faibles compétences, j'ai mis pas mal de temps à rassembler les bonnes idées, des morceaux de codes sous licence libres, etc. Et cela donne freetorrent.fr tel qu'il est actuellement.

Le site est perfectible, et pas qu'un peu :D Mais il fonctionne.

Aussi aujourd'hui, j'ai franchi le cap : je mets le code à disposition sur github.

Donc, vous retrouverez mon code ici : https://github.com/citizenz7/freetorrent

Fil RSS des articles de ce mot clé