MySQL : résoudre l'erreur

MySQL : résoudre l’erreur “Table is marked as crashed and last (automatic?) repair failed”

Hier soir, gros bug sur le site : plus moyen d’accéder aux pages du site ou de sauvegarder un article. Je lance un top, le serveur n’a pas l’air d’être surchargé du tout. Je relance Apache, Varnish et MySQL et là…

Stopping MySQL database server: mysqld failed!
/etc/init.d/mysql: ERROR: The partition with /var/lib/mysql is too full! ... failed!Code language: JavaScript (javascript)

Ah cette erreur-là, je l’ai déjà eue ! Je fais un peu de ménage et je relance MySQL :

/etc/init.d/mysql restart 
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..
ERROR 144 (HY000) at line 1: Table './skyminds/wp_posts' is marked as crashed and last (automatic?) repair failedCode language: JavaScript (javascript)

Et là, c’est le drame : le terminal est dans les choux comme attendant quelque chose et en lançant le site, il n’y a plus aucune information. Rien que le design, plus d’articles. Gloups.

mysql table crash

Je jette un coup d’oeil sur le serveur, j’ai mes sauvegardes des derniers jours mais pas de tout ce que j’ai écrit aujourd’hui. Je tente un REPAIR mais phpmyadmin refuse catégoriquement :

SQL show index from `wp_posts` failed : Table './skyminds/wp_posts' is marked as crashed and last (automatic?) repair failedCode language: JavaScript (javascript)

La solution : lancer myisamchk

La solution que j’ai utilisé consiste à lancer la commande myisamchk, qui est une commande de bas niveau qui va vérifier et réparer notre table.

On commence par arrêter le serveur MySQL :

/etc/init.d/mysql stop

et on lance myisamchk avec ces paramètres sur notre base de données qui se trouve sous /var/lib/mysql/:

myisamchk -r -v -f --sort_buffer_size=128M --key_buffer_size=128M /var/lib/mysql/skyminds/wp_posts.MYICode language: JavaScript (javascript)

Voilà ce que cela retourne :

- recovering (with sort) MyISAM-table '/var/lib/mysql/skyminds/wp_posts.MYI'
Data records: 0
- Fixing index 1
  - Searching for keys, allocating buffer for 295411 keys
  - Dumping 3420 keys
- Fixing index 2
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 3
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 4
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 5
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 6
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 7
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 8
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 9
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 10
  - Searching for keys, allocating buffer for 1177347 keys
  - Dumping 275199 keys
- Fixing index 11
  - Searching for keys, allocating buffer for 1177347 keys
  - Dumping 275199 keys
- Fixing index 12
  - Searching for keys, allocating buffer for 1177347 keys
  - Dumping 275199 keys
Data records: 3420Code language: JavaScript (javascript)

On relance MySQL :

/etc/init.d/mysql start

et cette fois, tout se passe bien :

Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..

Tout est revenu mais je me dis que je devrais peut-être passer à 2 sauvegardes par jour…

Linux : forcer Skype à détecter une webcam USB avec video4linux photo

Linux : forcer Skype à détecter une webcam USB avec video4linux

Le problème : une webcam USB non reconnue par Skype sous Ubuntu

J’ai de nouveau installé Skype sur ma machine après des années sans l’avoir utilisé et évidemment, ma webcam n’est pas reconnue sous Ubuntu. Après quelques bidouillages, on y arrive quand même.

Solution : créer un raccourci pour lancer Skype avec le mode de compatibilité video4linux

Il est nécessaire d’indiquer à Skype de précharger la compatibilité avec video4linux donc on installe ce dernier :

sudo apt-get install libv4l-0Code language: JavaScript (javascript)

Ensuite, si vous avez un système 32-bits, entrez ceci dans le terminal :

cd ~
echo "#! /bin/sh" > skype-cam-fix
echo "LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype" >> skype-cam-fix
chmod a+x skype-cam-fix
sudo mv skype-cam-fix /usr/local/bin Code language: PHP (php)

Si vous avez un système 64-bits :

cd ~
echo "#! /bin/sh" > skype-cam-fix
echo "LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so skype" >> skype-cam-fix
chmod a+x skype-cam-fix
sudo mv skype-cam-fix /usr/local/bin Code language: PHP (php)

Lire la suite

Linux : résoudre les erreurs communes de clé GPG dans APT photo 1

Linux : résoudre les erreurs communes de clé GPG dans APT

De temps en temps, il arrive qu’en faisant un apt update, on obtienne quelques erreurs de clés GPG, soit parce qu’elles ont changé, soit parce qu’elle n’ont pas été ajoutées en même temps que les dépôts auxquels elles sont associées.

Voici une petite compilation des situations que j’ai connu jusqu’à présent.

La clé publique n’est pas disponible : NO_PUBKEY

Le message d’erreur habituel, dont voici un exemple :

W: GPG error: http://ppa.launchpad.net maverick Release: Les signatures suivantes n'ont pas pu être vérifiées car la clé publique n'est pas disponible : NO_PUBKEY 632D16BB0C713DA6Code language: JavaScript (javascript)

Edit : voici une simple commande Shell qui permet de récupérer la clé et l’ajouter au trousseau directement, en une seule ligne de code:

sudo apt-get update 2>&1 | 
sed -ne 's?^.*NO_PUBKEY ??p' |
xargs -r -- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keysCode language: JavaScript (javascript)

Si vous souhaitez faire cela manuellement, voici la méthode manuelle :

Ce qui est important ici, c’est le code de la clé : 632D16BB0C713DA6. Nous avons besoin des 8 derniers caractères de cette clé pour taper notre commande. Ces 8 caractères sont 0C713DA6 donc dans le terminal, on entre :

gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-key 0C713DA6Code language: JavaScript (javascript)

puis:

gpg -a --export 0C713DA6 | sudo apt-key add -Code language: JavaScript (javascript)

On relance enfin la mise à jour :

apt-get updateCode language: JavaScript (javascript)

La clé ayant été ajoutée, le message d’erreur disparaît.

Lire la suite

MySQL : résoudre le message

Résoudre le non-redémarrage du serveur MySQL : le manque d’espace sur une partition disque

Il y a quelques temps, j’ai eu la surprise de constater que le site était down au niveau de la base de données, dont le service refusait catégoriquement de redémarrer. En regardant les logs du serveur, voici ce que j’ai découvert :

/etc/init.d/mysql: ERROR: The partition with /var/lib/mysql is too full! failed!Code language: JavaScript (javascript)

La partition sur laquelle se trouvent les bases de données SQL était pleine ! Effectivement, un petit

df -h

m’a appris que la partition /dev/sda1 était pleine à 100% :

Sys. de fich.         Tail.       Occ.       Disp.       %Occ.       Monté sur
/dev/sda1            9,7G       9,3G          0        100%         /
tmpfs                  984M         0        984M          0%        /lib/init/rw
udev                   10M        2,7M       7,4M         27%       /dev
tmpfs                 984M          0        984M           0%       /dev/shm
/dev/sda2            452G       648M      429G          1%       /home

Lire la suite

Serveur dédié : CHMOD récursif sur des fichiers ou répertoires en ligne de commande photo

Serveur dédié : CHMOD récursif sur des fichiers ou répertoires en ligne de commande

Il y a quelques jours, j’ai eu besoin de modifier les permissions de plusieurs dizaines de fichiers PHP.

Plutôt que d’utiliser la fonction CHMOD du client FTP, je me suis dit que ce serait sûrement plus rapide via ligne de commandes.

Chmod sur toute une extension de fichiers

Pour faire un CHMOD 640 récursif sur tous les fichiers PHP d’un répertoire, commencez par vous rendre dans le répertoire puis utilisez cette commande :

find . -type f -name '*.php' -exec chmod 640 {} \;  Code language: JavaScript (javascript)

En changeant l’extension qui se trouve entre les guillemets, vous pouvez rapidement attribuer les bonnes permissions aux bons types de fichiers.

Lire la suite

Mise à jour du serveur : passage de Debian Lenny à Debian Squeeze photo

Mise à jour du serveur : passage de Debian Lenny à Debian Squeeze

logo debian squeeze

Tiens, Debian Squeeze est sorti ce week-end ! Du coup, j’en ai profité pour mettre à jour le serveur du site : nous sommes donc passés de Debian Lenny (5.0.8) à Debian Squeeze (6.0).

Lenny prend donc sa retraite au bout de 2 ans. Cela nous permet également de mettre à jour environ 400 paquets dont les différents serveurs.

La mise à jour prend quelques minutes sur la Kimsufi mais comme j’ai eu quelques erreurs (avec MySQL), je vous donne la marche à suivre.

Mise à jour des sources

On sauvegarde le fichier des sources :

cp /etc/apt/sources.list /etc/apt/sources.list-lennyCode language: PHP (php)

On remplace toutes les occurences de “lenny” en “squeeze” dans un nouveau fichier :

sed 's/lenny/squeeze/' /etc/apt/sources.list > /etc/apt/sources.list-squeezeCode language: PHP (php)

Ce nouveau fichier devient notre fichier source :

cp /etc/apt/sources.list-squeeze /etc/apt/sources.listCode language: PHP (php)

On met à jour les paquets apt et dpkg :

apt-get install apt dpkgCode language: JavaScript (javascript)

Voilà, il ne reste plus qu’à lancer l’installation.

Lire la suite

Ubuntu : compression d'images JPG et PNG avec Trimage Image Compressor photo 1

Ubuntu : compression d’images JPG et PNG avec Trimage Image Compressor

trimage icon

Il y a quelques semaines, je vous ai parlé du plugin GIMP “Enregistrer pour le Web” qui permet d’obtenir le meilleur ratio qualité/poids pour vos images.

Et bien sachez qu’il existe une petite application qui permet d’automatiser la compression d’images JPEG et PNG sans perte de qualité et en un seul clic : Trimage Image Compressor, qui utilise optipng, advpng et jpegoptim, suivant le type du fichier.

Installation

L’installation est très simple, il suffit d’ajouter le dépôt PPA de l’application et de lancer l’installation :

sudo add-apt-repository ppa:kilian/trimage
sudo apt-get update && sudo apt-get install trimageCode language: JavaScript (javascript)

Lire la suite

Ubuntu : résoudre le plantage après une mise à niveau

Il y a quelques jours, je me suis mis en tête de mettre à jour le PC de mon père…

Le problème : une mise à jour interrompue

ubuntu update

Les mises à jour défilent quand tout à coup, patatras, plus de wifi. La mise à jour est interrompue, il est tard, on éteint la machine.

Au démarrage suivant, gros bug : on arrive sur l’ouverture de session Ubuntu mais la souris et le clavier ne répondent plus du tout, gros freeze.

Pas moyen non plus d’ouvrir une fenêtre de terminal, ce qui est très problématique. Et le mode recovery plante également (message d’erreur : Mountall : disconnected from Plymouth).

A ce stade, je soupçonne les pilotes de la carte graphique.

Lire la suite

Installer des polices TrueType sous Ubuntu photo

Installer des polices TrueType sous Ubuntu

font truetype

Ubuntu possède quelques polices par défaut mais il est fort probable que celles que vous utilisez habituellement ne soient pas installées.

Si c’est le cas, sachez qu’il est très facile d’installer n’importe quelle police de caractère TrueType (Windows ou Mac) sous Ubuntu.

Il existe deux méthodes d’installation de polices TrueType (extension .tff) sur Ubuntu.

Je suppose ici que vous vous trouvez dans le répertoire qui contient vos fonts.

Lire la suite

Fenêtre du gestionnaire de mise à jour en français indiquant que le système Ubuntu est à jour, avec des options de vérification, de configuration et de fermeture.

Mettre à jour Ubuntu vers la dernière version disponible

Ubuntu logo within an update icon

Lorsque je pars en vacances, j’en profite pour dépoussiérer mon PC portable. Et accessoirement à le mettre à jour avant de pouvoir réellement l’utiliser.

Là, il était sous Ubuntu Lucid Lynx et je me suis dit que c’était l’occasion de le passer sous Meerkat.

C’est une sorte de test grandeur nature : je joue souvent avec tout ce qui est nouveau sur le portable avant de mettre à jour ma machine principale (sur laquelle je teste beaucoup avec une machine virtuelle).

Lire la suite

Une capture d'écran affichant une liste de plugins liés à la musique pour une application de lecteur multimédia Rhythmbox avec un accent sur la description du plugin

Linux : Vkontakte ou comment trouver, lire et télécharger des MP3 sous Rhythmbox

MP3 player with earphones in the shape of Shrek

Aujourd’hui, je vous parle du plugin Vkontakte.

Tout est parti de Mulve, une application Windows qui permettait de trouver des fichiers MP3 sur des serveurs aux quatre coins de la planète et de les télécharger directement.

Mulve a été tué quasi immédiatement par les ayant-droits (et est devenu un projet open-source).

Quelques jours plus tard, un plugin Rhythmbox reprend le concept : il s’agit de Vkontakte.

Installation du plugin Vkontakte

Tout d’abord, nous avons besoin de git-core :

sudo apt-get install git-coreCode language: JavaScript (javascript)

Lire la suite

mms

Ubuntu : capturer un flux MMS avec MiMMS

mms Pour l’article concernant le voyage en Angleterre 2010, j’ai eu à récupérer le reportage sur le site de l’émission “13h15 le samedi”. Étant donné qu’on ne connait pas vraiment le temps de rétention de ces émissions (qui disparaitront très certainement du site), il est bon de pouvoir en télécharger une copie.

Les flux MMS (Microsoft Media Server), un format de streaming propriétaire créé par Microsoft, n’ont rien à voir avec le Flash Video (FLV) que l’on trouve sur Youtube ou Dailymotion : on ne peut pas le sauvegarder facilement depuis son navigateur, il faut le capturer !

Lire la suite