Posts Tagged ‘mysql’

Utiliser plusieurs version mysql avec docker

J’ai récemment souhaité tester un module sur d’anciennes version de prestashop, mais celle-ci ne fonctionnaient pas correctement avec mysql 5.7 qui est installé par défaut sur mon serveur de développement ( basé sur ubuntu 16.04 )

Ce service devant tourner de manière ponctuelle, l’installer en doublon de la version 5.6 n’était pas une option.
La solution la plus simple est donc d’utiliser docker, nous allons voir comment avoir un autre serveur de base de données avec la version 5.6 en quelques minutes 🙂

Installation de docker

Pour cela je vous envoie vers la documentation officielle qui explique tout très bien : https://docs.docker.com/install/linux/docker-ce/ubuntu/#extra-steps-for-aufs

Installer docker-compose

sudo apt-get install docker-compose

Création du fichier docker-compose

Pour le ranger j’ai  créer un dossier /mysql56 dans mon dossier home

mkdir ~/mysql56

Dans lequel on va créer un dossier /data qui contiendra le contenu des bases de données du container.
Ceci permettra de persister les données en éteignant le container.…

Pas de commentaires

Mise en place d’une réplication mysql

Dans le cadre de site à forts traffics, de la préparation d’une migration ou d’une politique de sauvegarde, il est possible de mettre en place une réplication mysql.

Nous allons voir ensemble comment mettre en place une réplication de type master / slave sur des distribution de type debian / ubuntu.

Il est possible de jouer la réplication sur autant de serveur slaves que souhaités.

Cette procédure nécessitera des redémarages de mysql

 

Préparation du serveur master.

Pour commencer il est nécessaire de créer un utilisateur mysql :

Pour plus de sécurité nous restreindrons l’accès à une ip particulière via la commande suivante a éxécuter avec un utilisateur ayant tous les droits.

CREATE USER 'my-replication-user'@'hostname-de-votre-serveur' IDENTIFIED BY 'some_pass';

Il faut ensuite ajouter à cet utilisateur les droits de réplication :

GRANT REPLICATION SLAVE ON *.* TO 'my-replication-user'@'hostname-de-votre-serveur';

Il faudra ensuite activer la conservation des fichiers de logs sur le serveur.…

Pas de commentaires

Alternative à phpMyAdmin : Adminer

Un petit article pour présenter un outil qui m’a fait gagner pas mal de temps récemment : Adminer
Cet outil, tout comme PhpMyAdmin permets de gérer les bases de données de votre hébergement via une interface web.

En général, phpmyadmin est installé directement par l’hébergeur et c’est l’outil utilisé par défaut pour gérer les bases de données.
Cependant il peut arriver que des hébergeurs ne le proposent pas.
Dans ce cas l’utilisation d’Adminer est la solution la plus simple et la plus rapide.

Comment ça marche ? :

  • Télécharger le fichier adminer.php depuis le site https://www.adminer.org/
  • Envoyer le via ftp n’importe ou sur votre hébergement.
  • Accéder au fichier depuis un navigateur web

Adminer

Et oui rien de plus à faire 🙂

Note :
Pour plus de sécurité renommez ce fichier en autre chose que adminer.php 😉…

Pas de commentaires

Ovh mutualisé copier une base de données dans une autre avec ssh

Voici un petit script bash qui vous permettra de copier facilement le contenu d’une base de données à une autre depuis un hébergement mutualisé ovh.
( Ce script fonctionne uniquement à partir des hébergements pro, car il nécessite un accès ssh )
Le déroulé du script est le suivant :

  • Export de la bdd à copier
  • Sauvegarde de la bdd de destination
  • Suppression des données de la bdd de destination
  • Insertion des données de la bdd à copier dans la bdd de destination
#!/bin/bash
 
#Saisir les paramètres des bases de données
serveurProd="mysql.ovh"
userProd="user"
passProd="password"
 
serveurPreprod="mysql.preprod"
userPreprod="preprod"
passPreprod="preprod"
 
#Export de la base de donnees de prod
echo "Sauvegarde base de prod"
mysqldump --host=$serveurProd --user=$userProd --password=$passProd $userProd | gzip > backup-prod_$(date +"%Y-%m-%d").sql.gzip
 
#Sauvegarde de la base de donnees de preprod
echo "Sauvegarde base de preprod"
mysqldump --host=$serveurPreprod --user=$userPreprod --password=$passPreprod $userPreprod | gzip > backup-preprod_$(date +"%Y-%m-%d").sql.gzip
 
#Suppression des donnees de la base de donnes preprod
echo "Suppression des donnees de la table de preprod"
TABLES=$(mysql -h $serveurPreprod -u $userPreprod -p$passPreprod $userPreprod -e 'show tables' | awk '{ print $1}' | grep -v '^Tables' )
 
for t in $TABLES
do
echo "Suppression de la table  $t de la base de données $userPreprod ..."
mysql -h $serveurPreprod -u $userPreprod -p$passPreprod $userPreprod -e "drop table $t"
done
 
#Insertion des données de prod dans la table de preprod
echo "Insertion des nouvelles donnees dans la table de preprod"
zcat backup-prod_$(date +"%Y-%m-%d").sql.gzip | mysql -h $serveurPreprod -u $userPreprod -p$passPreprod $userPreprod

Pour utiliser ce script, il faut créer un fichier (ex: update-bdd.sh) avec le contenu ci-dessus sur votre hébergement
Puis de se connecter en ssh et de l’exécuter avec la commande suivante :

bash update-bdd.sh
Pas de commentaires

Déplacer les fichiers mysql vers un nouvel emplacement

Par défaut sur les serveurs kimsufi livré par ovh, la partition « / » allouée au système est relativement réduite. ( 20 Go  dans mon cas )
Sur mon serveur cette partition était quasiment pleine, et une grande partie de l’espace était occupée par les fichiers des bases de données.
( dossier /var/lib/mysql/)

Voici donc comment procéder pour déplacer ces fichiers et libérer de l’espace pour votre système.

Nous allons déplacer les fichiers de /var/lib/mysql/ vers /home/mysql/

Pour commencer il faut arrêter mysql

sudo service mysql stop

Nous pouvons ensuite déplacer les fichiers vers le nouvel emplacement ( Cette opération peut être assez longue en fonction du volume de données à transférer)

sudo mv /var/lib/mysql/ /home/mysql/

Puis mettre un lien symbolique de /home/mysql/ vers /var/lib/mysql/

sudo ln -s /home/mysql /var/lib/mysql

Il faut ensuite attribuer les droits du dossier à l’utilisateur mysql

sudo chown mysql:mysql /home/mysql

Il ne vous reste plus qu’a redémarrer msyql

sudo service mysql start

Les fichiers de mysql sont à présent à l’emplacement « home/mysql » et votre partition système retrouve de la place !…

Pas de commentaires

Munin : Ajouter des plugins complémentaires

Après avoir installé munin, il y’a quelques semaines et afin d’optimiser le monitoring de mon serveur, j’ai souhaité installer des modules complémentaires.

Voici donc comment procéder pour installer des plugins sur munin.

Pour voir la liste des modules complémentaires de munin, entrez la commande suivante :

sudo munin-node-configure

Pour ma part j’ai activé le modules suivants : ( lié aux programmes fai2ban, postfix et à mysql )
– fail2ban
– postfix_mailqueue
– postfix_mailstats
– postfix_mailvolume
– mysql_queries
– mysql_slowqueries
– mysql_threads

Voici comment les activer

Fail2ban :

sudo  ln -s /usr/share/munin/plugins/fail2ban /etc/munin/plugins/fail2ban

Postfix :

sudo  ln -s /usr/share/munin/plugins/postfix_mailqueue /etc/munin/plugins/postfix_mailqueue
sudo  ln -s /usr/share/munin/plugins/postfix_mailvolume /etc/munin/plugins/postfix_mailvolume
sudo  ln -s /usr/share/munin/plugins/postfix_mailstats /etc/munin/plugins/postfix_mailstats

Pour Mysql il est nécessaire d’installer des packets complémentaires de cache via la commande suivante

sudo apt-get install libcache-{perl,cache-perl}

Puis

sudo  ln -s /usr/share/munin/plugins/mysql_queries /etc/munin/plugins/mysql_queries
sudo  ln -s /usr/share/munin/plugins/mysql_slowqueries /etc/munin/plugins/mysql_slowqueries
sudo  ln -s /usr/share/munin/plugins/mysql_threads /etc/munin/plugins/mysql_threads

Editez ensuite le fichier /etc/munin/plugin-conf.d/munin-node et rajouter les lignes suivantes

sudo vim /etc/munin/plugin-conf.d/munin-node
[mysql*]
user root
env.mysqluser user
env.mysqlpassword password

[fail2ban*]
user root

Redémarrer ensuite munin

sudo service munin-node restart

Après quelques heures, vous pourrez monitorer les données mysql_, postfix et fail2ban de votre serveur via munin 🙂…

Pas de commentaires

Créer un utilisateur mysql avec PhpMyAdmin

( Cet article suppose que vous avez phpmyadmin d’installé sur le serveur, et les accès pour vous identifier en root a PhpMyAdmin, si PhpMyAdmin n’est pas installé vous pouvez consulter le tutoriel suivant : installer phpmyadmin

– Par défaut lors de l’installation de votre serveur, seul un utilisateur root avec des accès complets est créé.
Si vous souhaitez installer de multiples sites sur votre serveur, il n’est donc pas sécurisé d’utiliser le compte root par défaut pour tous vos sites.

Nous allons donc voir comment créer un utilisateur supplémentaire avec uniquement les droits nécessaires au bon fonctionnement d’un site web via l’interface PhpMyadmin

Connectez vous à PhpMyAdmin avec l’utilisateur root

Puis rendez-vous dans l’onglet « Utilisateurs »
phpmyadmin-utilisateur

Cliquer ensuite le bouton « Ajouter un utilisateur »

phpmyadmin-utilisateur-2

Le formulaire de création de compte apparait :

phpmyadmin-utilisateur-3

Renseignez :

  • nom d’utilisateur
  • mot de passe
  • confirmation mot de passe
  • client : local ( pour des raisons de sécurité, n’authorise que les connexions depuis le serveur lui-même )

Au niveau des droits d’accès, comme nous souhaitons une utilisation web :

  • Tous les droits sur la section « Données « 
  • Les droits suivants sur la section « Structure » : CREATE, ALTER, INDEX, DROP, CREATE TEMPORARY TABLES
  • Aucun droits sur la section « administration »

Concernant les limites de ressources, libre à vous de les configurer en fonction de l’utilisation de votre serveur.…

2 commentaires

Ubuntu Server 14.04 « Trusty Tahr » : Installation d’apache, php et mysql ( lamp)

Une fois notre utilisateur principal créé : ( cf. création d’un utilisateur avec des droits d’administration  ) , l’utilisation principale de mon serveur étant du web il est temps d’installer les éléments nécessaires : Apache , Php et Mysql

Avant toute installation n’oubliez pas d’actualiser les dépendances Ubuntu avec la commande

sudo apt-get update

 – Apache

Apache est le serveur http, il se chargera de transmettre les demandes des visiteurs au serveur et d’afficher les pages.

entrez la commande suivante pour installer apache :

sudo apt-get install apache2

Une fois apache installé vous devez pouvoir accéder à votre machine directement depuis son ip et obtenir la page suivante

install-apache-ok

http://votre.ip.serveur/

  – Php

Php est le langage dans lequel seront programmées vos page ( il peut y en avoir d’autres 🙂 )

Entrer la commande suivante

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

(l’extension mcrypt pose un problème sur cette version d’ubuntu, voir en fin d’article comment le corriger.)

– Mysql

Mysql est une base de données, dans laquelle nous pourrons stocker les informations de nos application.…

1 commentaire


Compte Github