Twitter Facebook RSS

Accueil > Tags

08
juillet

Mise à jour Squeeze vers Wheezy : MySQL DotDeb

Allez, le petit article du mois.. Enfin, devrais-je dire le tip ? Sûrement, ce sera un article assez court :

Ce week-end, j'ai voulu mettre à jour mon serveur sous Squeeze en Wheezy, la dernière version stable de Debian.

Hop, on modifie le sources.list, on remplace squeeze par wheezy, et on lance nos commandes magiques :

apt-get update
apt-get ugprade
apt-get dist-upgrade

Mais l'upgrade renvoie cette erreur :

Souhaitez-vous continuer [O/n] ? O
(Lecture de la base de données... 23335 fichiers et répertoires déjà installés.)
Préparation du remplacement de mysql-client-5.5 5.5.31-1~dotdeb.0 (en utilisant .../mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Dépaquetage de la mise à jour de mysql-client-5.5 ...
dpkg : erreur de traitement de /var/cache/apt/archives/mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb (--unpack) :
 tentative de remplacement de « /usr/bin/mysqlcheck », qui appartient aussi au paquet mysql-client-core-5.5 5.5.31-1~dotdeb.0
configured to not write apport reports
                                      dpkg-deb: sous-processus coller tué par le signal (Relais brisé (pipe))
Des erreurs ont été rencontrées pendant l'exécution :
 /var/cache/apt/archives/mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

On dirait que mon serveur essaye d'écraser le paquet mysql-client-5.5 de Dotdeb par celui de Wheezy...

Une solution qui marche serait de virer totalement MySQL et de le réinstaller... Mouais, bof.

Je préfère cette solution :

apt-get -f install -o Dpkg::Options::=”–force-overwrite”
apt-get remove mysql-client-core-5.5
apt-get dist-upgrade

Et là ça marche, MySQL est bien mis à jour par celui de Dotdeb.

15
février

MySQL : Compter le nombre de tables d'une base

Récemment, j'ai eu besoin d'afficher le nombre de tables d'une base MySQL 5.X. Je voulais éviter de faire du Bash à outrance et extraire la donnée directement depuis MySQL... Même si le Bash, c'est bon, mangez-en.

Allez, on commence par la requête :

SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'drupal';
mysql> SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'drupal_4';
+-------------------+
| count(table_name) |
+-------------------+
|               143 |
+-------------------+
1 row in set (0.00 sec)

Maintenant, l'idée est d'obtenir l'information directement en Bash :

mysql -B -u Utilisateur -pMotdePasse information_schema -e "SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'drupal';" | grep -E ^1

Résultat :

usr@srvmysql # mysql -B -u Utilisateur -pMotdePasse information_schema -e "SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'drupal';" | grep -E ^1
143

Voilà !

26
avril

Exporter un utilisateur MySQL

Vous ne pouvez pas bêtement exporter un utilisateur MySQL, car le mot de passe de celui-ci est crypté. Pour cela, nous allons utiliser notre ami la requête SQL !

SHOW GRANTS FOR 'jeoffrey_site'

Remplacez jeoffrey_site par votre utilisateur. Le résultat affiché est le suivant :

GRANT USAGE ON *.* TO 'jeoffrey_site'@'%' IDENTIFIED BY PASSWORD '*52796CAEA3EFDE9EDSDSDS6072B6C20D542D6C4C5'
GRANT ALL PRIVILEGES ON `jeoffrey_site`.* TO 'jeoffrey_site'@'%'

Exécutez les 2 requêtes sur votre nouveau serveur MySQL, et votre nouvel utilisateur sera identique à celui de l'ancien serveur !

23
avril

MySQL : donner des privilèges sur un préfixe complet

Je possède plusieurs bases MySQL de ce genre :

jeo_monsite
jeo_forum
jeo_montest
jeo_blog

J'aimerais avoir un utilisateur qui a automatiquement accès aux bases avec le préfixe "jeo_", de façon à ce que je n'ai pas à ajouter les privilèges à chaque fois que je vais créer une nouvelle base avec le préfixe "jeo_".

Utilisez cette requête, via phpmyadmin ou via MySQL en ligne de commandes :

GRANT ALL PRIVILEGES ON `jeo_%` . * TO 'jeoffrey'@'localhost';

Cela aura pour effet de donner tous les droits à l'utilisateur jeoffrey sur toutes les bases avec le préfixe "jeo_", le "%" symbolisant "tout".

^ Retourner en haut