Twitter Facebook RSS

Accueil > MySQL

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 :

[email protected] # 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à !

^ Retourner en haut