Articles contenant le tag ubuntu

Migrer les bases de données d’un serveur Mysql

Attention, cet article est ancien de 9 ans. Les versions systèmes / de logiciels / sites évoqués ont forcément évolués depuis. Merci de garder cette ancienneté en tête pendant votre lecture.

Que ce soit pour changer de version majeure de Mysql, changer de système ou de serveur physique, il y a différentes raisons de vouloir migrer un serveur Mysql.

La procédure ci-dessous propose de migrer toutes les bases, utilisateurs et droits d’accès d’un serveur Mysql vers un autre.
Nous nous concentrerons ici sur cette tache (et non sur l’installation/tunning de Mysql).

Version Mémo

En root, sous Debian ou Ubuntu

Sur l’ancien serveur
USER="--defaults-extra-file=/etc/mysql/debian.cnf"
for BASE in $(mysql ${USER} -Bse 'show databases') ; do
    echo "sauvegarde de ${BASE}"
    mysqldump ${USER} -f ${BASE} --routines --triggers > ${BASE}.sql
done
rm information_schema.sql mysql.sql
mysqldump ${USER} --no-create-info --complete-insert --replace mysql user > mysql_user.sql
mysqldump ${USER} --no-create-info --complete-insert --replace mysql db > mysql_db.sql
Sur le nouveau serveur
USER="--defaults-extra-file=/etc/mysql/debian.cnf"
for FIC in *.sql ; do
    BASE=`echo ${FIC} | sed -e "s/\.sql//g"`
    echo "import de ${BASE}"
    mysql ${USER} -Bse "CREATE DATABASE \`${BASE}\`"
    mysql ${USER} -f ${BASE} < ${FIC}
done
mysql -f ${USER} mysql < mysql_user.sql
mysql -f ${USER} mysql < mysql_db.sql

Version Longue, avec explication de texte

En root, sous Debian ou Ubuntu, dans un répertoire vide de préférence.

Etape 1, Sur l’ancien serveur
USER="--defaults-extra-file=/etc/mysql/debian.cnf"

Nous utiliserons le compte « debian-sys-maint » créé à l’installation par Debian / Ubuntu pour éviter de passer un login/pass en paramètre.

for BASE in $(mysql ${USER} -Bse 'show databases') ; do
    echo "sauvegarde de ${BASE}"
    mysqldump ${USER} -f ${BASE} --routines --triggers > ${BASE}.sql
done

On itère sur toutes les bases pour les dumper.
Des erreurs pourrons éventuellement être affichés pendant le dump des bases « information_schema » et « mysql », ce n’est pas grave, nous n’en avons pas besoins sous cette forme.
Nous allons d’ailleurs supprimer les dumps de ces bases:

rm information_schema.sql mysql.sql

Nous allons maintenant dumper les comptes mysql & droits :

mysqldump ${USER} --no-create-info --complete-insert --replace mysql user > mysql_user.sql
mysqldump ${USER} --no-create-info --complete-insert --replace mysql db > mysql_db.sql

Pour ce dump, on crée un fichier non intrusif, qui ne supprime pas les tables existantes au préalable et qui utilise une syntaxe sql « complète », permettant d’éviter le piège de la table user, dont l’ordre & les colonnes diffèrent souvent d’une version à l’autre.

Etape 2, Transfert des fichiers & installation Mysql sur le nouveau serveur

Tout les dumps ont été générés dans le répertoire courant sur l’ancien serveur.
Utilisez votre mode de transfert favori (scp, ftp, nfs ou autre) pour les déplacer vers le nouveau.

Lancez l’installation de Mysql sur le nouveau serveur, et procédez à la config et/ou tunning selon votre besoin.

Etape 3, Sur le nouveau serveur

Allez dans le répertoire où vous avez rapatrié les fichiers.

USER="--defaults-extra-file=/etc/mysql/debian.cnf"

Même technique que précédent pour se connecter.

for FIC in *.sql ; do
    BASE=`echo ${FIC} | sed -e "s/\.sql//g"`
    echo "import de ${BASE}"
    mysql ${USER} -Bse "CREATE DATABASE \`${BASE}\`"
    mysql ${USER} -f ${BASE} < ${FIC}
done

On itère sur tout les fichier pour créer les bases et les importer.

mysql -f ${USER} mysql < mysql_user.sql
mysql -f ${USER} mysql < mysql_db.sql

On importe des comptes utilisateurs, ainsi que les droits.

!Attention! Suite à cette import, le mot de passe du compte root du nouveau serveur est maintenant celui de l’ancien serveur.

, , , , ,

Pas de commentaire

Installer Netbeans x86 sur une Ubuntu x64

Attention, cet article est ancien de 9 ans. Les versions systèmes / de logiciels / sites évoqués ont forcément évolués depuis. Merci de garder cette ancienneté en tête pendant votre lecture.

Depuis la version 8.1, NetBeans embarque son propre environnement Java, indépendant du système. Il est donc beaucoup plus aisé d’avoir un NetBeans utilisant un interpréteur Java en x86, qui à l’avantage d’être bien consommateur en Mémoire.

Pour cela, nous allons installer NetBeans avec l’installeur standard, et non les paquets fournis par Ubuntu.

Installation préalable des librairies requises pour une éxecutions x86 sur Ubuntu x64 :
sudo apt-get install libxtst6:i386 libxrender1:i386 libxi6:i386

Une fois les librairies installées, il ne vous reste plus qu’à télécharger NetBeans en x86 :
https://netbeans.org/downloads/start.html?platform=linux&lang=fr&option=php&bits=x86

puis à lancer l’installation (assistant graphique « next next next finish« ).

chmod 755 netbeans-8.1-php-linux-x86.sh
sudo ./netbeans-8.1-php-linux-x86.sh

Voilà, NetBeans est disponible dans le lanceur Unity, et sera (relativement) moins gourmant en RAM !

, , , , ,

Pas de commentaire

Chroot Linux « complet » depuis LiveCD / LiveUSB

Attention, cet article est ancien de 9 ans. Les versions systèmes / de logiciels / sites évoqués ont forcément évolués depuis. Merci de garder cette ancienneté en tête pendant votre lecture.

Préparatifs

Ouvrir un terminal en root sur le liveCD.

Astuce LiveCD Ubuntu
sudo bash

Déterminez la partition root de votre système
blkid

/dev/sda1: UUID="0A2B3C4D5E6F7A8B" TYPE="ntfs"
(...)
/dev/sda4: UUID="a0b1c2d3-e4f5-a6b7-c8d9-e0f1a2b3c4d5" TYPE="ext4"

Monter l’environnement chroot

mkdir linux
mount /dev/sdXY linux/
mount --bind /dev linux/dev/
mount --bind /dev/pts linux/dev/pts
mount --bind /run linux/run/
mount -t proc /proc linux/proc/
mount -t sysfs /sys linux/sys/
chroot linux /bin/bash

Utiliser l’environnement chroot

Exemple / cas classique : restaurer GRUB
update-grub
grub-install /dev/sdX

Quitter l’environnement chroot

exit
umount linux/dev/pts
umount linux/dev
umount linux/run
umount linux/proc
umount linux/sys
umount linux

, , , ,

Pas de commentaire