Matt Biscay
Réinitialiser le mot de passe root de MySQL ou MariaDB sous Debian
Chez l’un de mes clients, nous avons eu besoin de réinitialiser le mot de passe MySQL de l’utilisateur root
, qui a été oublié.
Je vous avais déjà décrit comment réinitialiser le mot de passe root d’un serveur MySQL ou MariaDB sous Ubuntu.
Comme le serveur tourne sous Debian, nous avons un moyen très simple d’avoir accès à la base mysql
pour modifier le mot de passe root
. Cela ne prend que quelques secondes.
L’utilisateur debian-maintenance à la rescousse
Sous les systèmes à base Debian, il existe par défaut un utilisateur nommé debian-sys-maint
, qui se charge de routines de maintenance sur la base SQL et qui possède tous les droits d’administration sur toutes les bases de données.
Il se trouve que le mot de passe de l’utilisateur debian-sys-maint
est visible, en clair dans ce fichier:
nano /etc/mysql/debian.cnf
Copiez le mot de passe. Ensuite, connectez-vous avec debian-sys-maint
au serveur de base de données:
mysql -u debian-sys-maint -p
Vous êtes maintenant connecté au serveur de base de données, en tant qu’administrateur, sous l’utilisateur debian-sys-maint
.
Tous les utilisateurs de la base de données sont stockés dans la base mysql
donc on commence par la sélectionner:
use mysql;
Code language: PHP (php)
Et on peut maintenant changer le mot de passe de l’utilisateur root
avec une simple mise à jour du mot de passe:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('^*p4!_BHLn6Q&xuft*^5tjyby7^_$)d7_fgf&zec8#ExV@xY');
flush privileges;
Code language: JavaScript (javascript)
Il ne reste plus qu’à quitter MySQL monitor:
quit;
Voilà, le mot de passe de l’utilisateur root
est désormais changé. Vous pouvez vous identifier normalement avec le nouveau mot de passe que vous venez de définir plus haut:
mysql -u root -p
Enter password:
Une astuce toujours utile à garder sous le coude!
WordPress : résoudre l’erreur “ftp_nlist() expects parameter 1 to be resource, null given”
Sous WordPress 5.3.x et en utilisant wp-cli
, on peut obtenir cette erreur lors de la mise à jour de plugins et thèmes:
Warning: ftp_nlist() expects parameter 1 to be resource, null given in /var/www/html/wp-admin/includes/class-wp-filesystem-ftpext.php on line 402
PHP Warning: ftp_pwd() expects parameter 1 to be resource, null given in /var/www/html/wp-admin/includes/class-wp-filesystem-ftpext.php on line 226
Code language: HTTP (http)
Le tout répété cinq à six fois pour la mise à jour d’un plugin. En regardant le ticket trac qui rapporte ce problème, il s’agit d’une erreur qui était auparavant cachée (avec un @ devant la fonction) et qui est maintenant affichée.
Au -delà du fait de cacher ou ne plus cacher l’erreur, il semble qu’il manque une routine qui vérifie que le lien wp_filesystem
est bien actif avant de pouvoir l’utiliser.
En attendant que cela soit réglé dans une prochaine version de WordPress, voici ce que l’on peut ajouter au fichier wp-config.php
pour se débarrasser de l’erreur proprement:
if ( !defined( 'FS_METHOD' ) ):
define( 'FS_METHOD', 'direct' );
endif;
Code language: PHP (php)
Enregistrez le fichier, problème réglé !
Cheap Trick – When I Wake Up Tomorrow
“When I Wake Up Tomorrow” is a song by American rock band Cheap Trick, released in 2016 as the second and final single from their seventeenth studio album Bang, Zoom, Crazy… Hello.
It was written by Julian Raymond, Robin Zander, Rick Nielsen and Tom Petersson, and produced by Raymond and Cheap Trick.
The music video features Nielsen playing his 1966 Gretsch 6123 guitar, which previously appeared in the video for the band’s 1982 song “If You Want My Love”:
I never thought that I would be like this before
I never wanted just one kiss for sure
Well, maybe I didn’t understand
All you wanted was a one night stand, well
Never thought that I would beg like this for moreThese days I wonder how I’m gonna make it tomorrow
These ways I’ll have to beg if I want to borrow
My love, here I’m on my knees
Please be here when I wake up tomorrowI never felt like this before
My love is flowing out for sure
Your lips upon my skin
Come out and let me in now
Never thought I’d beg like this for moreThese days I wonder how I’m gonna make it tomorrow
In these ways I’m praying there’s no need for sorrow
These days I wonder what will come of tomorrow
These ways I’ll have to beg if I want to borrow
Your love, here I’m on my knees
Please be here when I wake up tomorrow
Speaking of the song to Rolling Stone, Nielsen commented: “This song always reminds me of a sultry David Bowie song. I liked it from the first time we attempted to do it. It’s just a moody, interesting piece with some heavy guitars in the middle.”
In an interview with Rock Cellar, Zander spoke of the song and his vocal performance on it: “I sort of conjured [Bowie’s] style up in mind on the song. Even though I don’t sound exactly like Bowie, it was in my mind while I was doing the song, which creates a fresh kind of new thing.”
Changer le nom de fichier par défaut de l’outil capture d’écran sous MacOS X
Depuis que je suis passé à MacOS X Catalina, j’ai ajouté l’outil capture d’écran dans la Touchbar, histoire de toujours l’avoir à portée de main.
Pour les puristes, vous pouvez capturer l’écran avec Shift-Command-5 (à partir de Mojave et supérieur) ou Shift-Command-3.
Par contre, toutes les captures d’écran sont préfixées par défaut avec “Capture d’écran” suivie de la date et de l’heure. Cela peut être gênant lorsque l’on publie cette image sur internet, étant donné que les noms de fichiers accentués ne sont pas toujours bien gérés.
Voici donc une petite astuce pour changer le préfixe pour celui de votre choix. Dans mon exemple, je l’ai tout simplement changé pour “Screenshot”.
Changer le nom de fichier par défaut de l’outil capture d’écran
Ouvrez le terminal puis lancez la commande suivante, en remplaçant “Screenshot” par le préfixe de votre choix:
defaults write com.apple.screencapture name "Screenshot"
Code language: CSS (css)
Relancez ensuite le service SystemUI:
killall SystemUIServer
Lancez ensuite l’outil de capture d’écran et enregistrez votre capture. Elle est maintenant préfixée par ce que vous avez choisi.
Serveur dédié: passage à PHP 7.4
C’est Noël avant l’heure : PHP version 7.4 est désormais disponible! Ni une ni deux, elle est déjà installée sur le serveur.
Je vous conseille de jeter un petit coup d’oeil aux nouveautés de PHP 7.4, cela se modernise!
Si vous souhaitez sauter le pas, voici un petit tuto pour l’installation.
Étape 1 : installer le dépôt d’Ondrej
Dans le terminal, installez le dépôt d’Ondrej. Il est très souvent mis à jour et permet de bénéficier de pas mal de paquets à jour, même sur des distributions anciennes:
add-apt-repository ppa:ondrej/php
Étape 2 : installation de PHP 7.4
J’ai juste repris la liste des paquets PHP7.3 déjà installés puis changé le numéro de version.
Cela nous donne donc:
apt install php-igbinary php-imagick php-redis php7.4 php7.4-bcmath php7.4-cli php7.4-common php7.4-curl php7.4-fpm php7.4-gd php7.4-imap php7.4-intl php7.4-json php7.4-mbstring php7.4-mysql php7.4-opcache php7.4-readline php7.4-soap php7.4-xml php7.4-zip
Code language: CSS (css)
Note: il vous reste ensuite à modifier php.ini
ainsi que votre pool PHP selon vos besoins.
Étape 3: modification du server block
L’étape finale est la modification de votre server block. Sous NginX, éditez le fichier de configuration de votre site pour pointer vers le socket de PHP7.4:
#fastcgi_pass unix:/run/php/php7.3-fpm.sock;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
Code language: PHP (php)
Il suffit ensuite de relancer NginX et PHP:
service php7.4-fpm start && service nginx restart
Code language: CSS (css)
Et voilà! Bonnes mises à jour !
NAS Synology: renouveler le certificat TLS
Je suis en train de faire le ménage sur d’anciennes machines que je donne sur donnons.org : cela me permet de récupérer quelques (vieilles) données pour les sauvegarder sur le NAS avant de formater les disques durs pour leur nouvelle vie.
En changeant de machine, je me suis aperçu que le certificat TLS du NAS n’était plus valide… depuis fin février 2019! What??
Après quelques infructueux essais de renouveler le certificat, il semblerait que le passage à DSM 6.2 soit à l’origine du problème.
Visiblement, je ne suis pas le seul affecté.
La redirection No-IP
J’utilise depuis des années une redirection No-IP pour accéder à différents services comme le NAS ou la webradio.
Sur une session SSH sur le NAS, j’ai lancé la commande suivante:
sudo syno-letsencrypt renew-all -vv
Voilà le résultat:
HTTP/1.1 403 Forbidden
Server: nginx
Date: Fri, 01 Nov 2019 10:43:12 GMT
Content-Type: application/problem+json
Content-Length: 98
Connection: keep-alive
Boulder-Requester: 6426144
Cache-Control: public, max-age=0, no-cache
Replay-Nonce: 0002Lw7vG9KbJRj_7s8e0Zuqit27lxN7Om7tdFuqaB2iCKQ
] Body: [{
"type": "urn:acme:error:unauthorized",
"detail": "Certificate is expired",
"status": 403
}]
terminate called after throwing an instance of 'SLError'
Aborted (core dumped)
Code language: HTTP (http)
Je n’ai jamais réussi à renouveller ou à recréer ce certificat.
J’ai donc changé mon fusil d’épaule et utilisé le service DDNS de Synology.
WordPress : trouver tous les articles de moins de 300 mots

On m’a demandé sur Codeable un audit SEO sur un site qui avait plusieurs années d’existence et dont la ligne éditoriale a évolué avec le temps.
Les vieux articles, très courts et peu informatifs, offraient peu de valeur aux visiteurs et devaient donc être listés dans le but de les amender ou de les supprimer.
Le site était sous WordPress donc voici la requête que j’ai utilisée pour dresser la liste de tous les articles qui contiennent moins de 300 mots (on ne compte pas les espaces):
SELECT LENGTH(post_content) - LENGTH(REPLACE(post_content, ' ', ''))+1, post_title, ID
FROM wp_posts WHERE post_type='post' AND post_status='publish' AND ((LENGTH(post_content) - LENGTH(REPLACE(post_content, ' ', ''))+1) < 300);
Code language: JavaScript (javascript)
Vous pouvez lancer cette requête SQL sur votre serveur MySQL ou dans un outil comme PHPMyAdmin ou Adminer: cela vous renvoie un tableau de 3 entrées qui contiennent le nombre de mots de l’article, le titre de l’article et son ID.
Au point de vue du SEO, il est recommandé de supprimer les articles zombies qui n’offrent pas de valeur aux visiteurs. Ces pages ne sont généralement pas indexées et n’apparaissent donc pas dans les résultats de recherche.
Mieux vaut consolider le site avec des pages à fort potentiel et avec un contenu conséquent. Ce n’est pas tant le nombre de mots qui compte que la richesse de contenu mais un nombre très faible de mots est un bon indicateur d’un article peu qualifié.
John Butler – Ocean (Live at Paleo Festival)
“This song goes to all of you out there, this song goes out to your loved ones, to all your dreams. May you and your families be safe, in peace and have love in this crazy world that we’re living in at the moment. “
John Butler
This is the ever-changing Ocean by John Butler at the Paleo Festival:
Décès de ma marraine Mimi
Ma Marraine, Micheline Gonati, est décédée samedi dernier au cours d’un accident de la route sur l’autoroute A1, à la suite d’un malaise cardio-vasculaire.

Mimi, tu as choisi de quitter cette terre ce samedi
Dans la paix du Grand Sommeil
Car ta tâche ici-bas était accomplie.
Tes yeux se sont fermés doucement,
Comme pour nous chuchoter
Qu’au bout de la nuit, il y a l’aurore,
Qu’au bout de l’hiver, il y a le printemps,
Qu’au bout de la mort, il y a la Vie.Mimi, nous ne t’oublierons pas.
On se souviendra toujours de ton rire sonore,
De tous les bons moments passés ensemble
A parler des petits riens de la vie,
Émaillées de piques acerbes aussi parfois,
Et d’impatiences, car nul doute, quelle Rebelle,
Si anticonformiste, tellement ivre de liberté !
Mais toujours restera le souvenir
De ton linge repassé à la perfection,
De ta passion pour les chats et le jardin,
Des albums photos consignant avec soin
Famille, naissances, mariages et communions
De la valeur que tu accordais à la santé
Toujours prête à envoyer Le remède miracle,
De ton amour inconditionnel des enfants,
Toujours prête à conseiller, aider, éduquer
Offrant temps, amour, énergie sans compter,
Sans jamais demander rien en retour.Mimi, nous t’avons tous profondément aimée,
Amis, Parents, tes Neveux Matthieu et Julia
Le petit Jules qui a illuminé ton cœur et ton âme,
Tes compagnons de route professionnelle,
Confrères, collègues, patients et élèves
Merci de nous avoir honorés de ta présence,
De ton talent, de ton courage, de ton abnégation,
Du bonheur que tu nous as offert.
Tu seras toujours là, présente.
Présente dans le vent qui souffle,
Dans la neige qui scintille,
Dans le chant des oiseaux,
Dans la douce pluie d’automne,
Dans l’étoile qui brille dans la nuit.Mimi, le temps est venu d’ouvrir tes Ailes de Lumière,
De prendre ton essor et de t’envoler vers la Liberté,
Confiante d’emprunter ce Chemin de Paix, de Joie,
De Sagesse, de Connaissance, libre de tous obstacles
Et de rencontrer à ton arrivée les Êtres que tu as aimés
Qui t’attendent pour partager une nouvelle vie astrale
Vibrante, inspirante où inscrire et rêver ton Grand Rêve.Mimi, au seuil de ce voyage initiatique de l’âme,
Souviens-toi de toutes tes bonnes Actions,
Sois protégée, entourée d’Amour, de Lumière
Et accompagnée de nos profondes bénédictions.
On pensera toujours à toi Marraine, tu es à jamais dans les cœurs de tous ceux qui ont eu la chance de te connaître. Je t’aime et je pense fort à toi, toujours.
Steven Wilson – The Raven That Refused To Sing
The Raven That Refused to Sing (And Other Stories) est le troisième album solo du musicien britannique Steven Wilson, sorti le 25 février 2013 sur le label Kscope Music Record.
Bien qu’il ne puisse pas être considéré comme un album-concept, toutes les chansons ont pour thème des histoires surnaturelles, à l’instar de la chanson éponyme, The Raven That Refused To Sing:
La chanson The Raven That Refused to Sing raconte l’histoire d’un vieil homme qui attend la mort avec impatience. Il repense à une époque de son enfance durant laquelle il était incroyablement proche de sa sœur aînée, qui est morte alors qu’ils étaient tous deux très jeunes.
L’homme est convaincu qu’un corbeau qui visite son jardin est en vérité une manifestation de sa sœur. Le fait est que celle-ci avait l’habitude de chanter pour lui à l’époque de leur enfance, dès qu’il avait peur ou ne se sentait pas en sécurité, et cela avait une influence apaisante sur lui. Ignorant qu’il ne s’agit que d’un simple corbeau, il finit par penser que si le corbeau chante pour lui, ce sera la preuve que sa sœur est revenue pour l’emmener avec lui dans l’au-delà.
Jouent sur cet album Steven Wilson (chant), Guthrie Govan (guitares), Nick Beggs (basse), Marco Minnemann (drums), Adam Holzman (keyboards), et Theo Travis (saxophone / flute). L’album a été produit et mixé par le légendaire Alan Parsons, qui a produit l’album The Dark Side of the Moon de Pink Floyd.
Installer LineageOS (Android 9.0 Pie) sur le OnePlus One

Aujourd’hui, j’ai installé LineageOS (Android 9.0 Pie) sur mon OnePlus One, histoire de lui redonner un second souffle et de bénéficier des dernières mises à jour de sécurité Android.
Le OnePlus One (OPO) est sorti en mai 2014, il a donc quelques années derrière lui et tourne sous CyanogenMod 13, c’est-à-dire Android 6.0.1 (Marshmallow). Autant dire qu’il n’a pas vu de correctifs de sécurité depuis quelques années!
Étape 1: activer le débogage USB
Sur le téléphone, on commence par activer le mode développeur:
- Ouvrez Paramètres > A propos du téléphone.
- Tapez 7 fois sur le numéro de build.
- Vous venez d’activer le mode développeur!
Grâce au mode développeur, vous avez maintenant accès à des options qui n’étaient pas visibles auparavant et qui vont nous être nécessaires.
Pour activer le débogage USB:
- Ouvrez Paramètres > Options pour les développeurs
- Activez l’option Débogage Android
- Désactivez l’option Mettre à jour la récupération CyanogenMod (sinon l’installation du recovery sera impossible).
Étape 2: installation d’ADB
Android Debug Bridge (adb
) est un outil de développement qui facilite la communication entre un appareil Android et un ordinateur. Cette communication s’effectue soit par câble USB, soit en WiFi.
Branchez votre OnePlus One en USB.
Téléchargez les derniers pilotes ADB issus du SDK Android puis décompressez l’archive.
Ouvrez le terminal, rendez-vous dans le répertoire platform-tools
et listez ensuite votre téléphone avec cette commande:
./adb devices
Résultat:
List of devices attached
b4be4c53 device
Code language: PHP (php)
Notre OnePlus One est bien détecté. On reboot en mode fastboot
:
./adb reboot bootloader
On liste les appareils détectés par fastboot
:
./fastboot devices
Résultat:
b4be4c53 fastboot
Attention, c’est la commande qui va effacer vos données donc pensez à sauvegarder avant!
On déverrouille le bootloader avec:
./fastboot oem unlock
OKAY [ 0.168s]
Finished. Total time: 0.168s
La partition est effacée, le téléphone va rebooter deux fois puis vous présenter le choix de la langue… comme au premier jour.
Comme c’est un reset de l’appareil, il faut de nouveau activer le débogage USB (étape 1).
Étape 3: installation de TWRP (custom recovery)
Téléchargez TWRP pour OnePlus One (bacon) puis placez le fichier dans le dossier platform-tools
, c’est plus commode.
Connectez le téléphone en USB. Ouvrez le terminal et entrez:
./adb reboot bootloader
Puis, on vérifie que fastboot
détecte bien le téléphone:
./fastboot devices
b4be4c53 fastboot
Et on flash TWRP:
./fastboot flash recovery twrp-3.2.3-20190125-bacon.img
Sending 'recovery' (12068 KB) OKAY [ 0.382s]
Writing 'recovery' OKAY [ 0.224s]
Finished. Total time: 0.643s
Code language: JavaScript (javascript)