Depuis le passage du site sur le nouveau serveur, ORION, j'utilise MySQL 8 en lieu et place de MariaDB, histoire de tester les les gains de performance. Or, avec la nouvelle configuration de MySQL par défaut, vous pouvez obtenir cette erreur lors de simples opération de maintenance comme l'optimisation des tables: Cela est dû à un changement de configuration, notamment dans la directive sql_mode depuis MySQL 5.7. Voyons-donc ce que contient la directive par défaut. Identifiez-vous sur le serveur MySQL: […]
MariaDB ne veut plus redémarrer : quelques solutions
Sur le serveur chinois que j'ai monté pour un de mes clients sur Codeable, le site a commencé à afficher des erreurs étranges : erreur 502 pour nginx sur certaines pages et des nombres étranges en lieu et place des données de la base de données. Après un redémarrage des services PHP, nginx et mysql, je constate que MariaDB veut bien s'arrêter mais ne veut plus de lancer. Voici ce que donne: Résultat: Bon, chou blanc. Cela ne nous donne […]
WordPress : nettoyer les tables wp_options et wp_postmeta
Nous allons aujourd'hui examiner deux tables importantes de votre base de données WordPress, wp_options et wp_postmeta. C’est un domaine qui est souvent négligé en ce qui concerne les performances globales de WordPress et de la base de données. Cela est très visible sur les sites les plus anciens et les plus gros et peut être la cause des temps de requête lents sur votre site en raison des données à chargement automatique laissées par les plugins et les thèmes tiers. […]
Désactiver les binary logs sous MySQL 8
J'ai récemment monté un nouveau serveur qui utilise MySQL 8 et après quelques jours d'utilisation, je me suis rendu compte que l'espace disque avait considérablement augmenté. La cause ? Une multitude de fichiers logs binaires dans le répertoire d'exécution de MySQL 8 : il y en avait pour plus de 260 Go ! Les fichiers logs binaires enregistrent toutes les requêtes qui ont été effectuées par le serveur de bases de données. Inutile de dire qu'il est assez improbable que […]
MySQL : résoudre le message "Warning: Using a password on the command line interface can be insecure."
J'ai récemment écrit un petit script bash qui me permet de sauvegarder rapidement toutes les bases de données d'un serveur. Le script est lancé par une tâche cron automatiquement, tous les jours. Si l'on passe l'utilisateur et le mot de passe SQL dans la requête, avec mysql ou mysqldump, vous obtiendrez très certainement le message d'avertissement suivant: Et pour cause : cela veut dire que n'importe qui ayant accès au serveur pourra voir, dans les logs ou avec un simple […]
Installer Redis pour accélérer WordPress sous Debian
Aujourd'hui, nous installons le serveur Redis pour accélérer les temps de chargement de tous les sites présents sur le serveur. Redis (de l'anglais REmote DIctionary Server qui peut être traduit par « serveur de dictionnaire distant » et jeu de mot avec Redistribute1) est un système de gestion de base de données clef-valeur scalable, très hautes performances, écrit en C ANSI. Il fait partie de la mouvance NoSQL et vise à fournir les performances les plus élevées possibles. Redis permet […]
Serveur dédié : réinitialiser le mot de passe root d'un serveur MySQL ou MariaDB
Pour les besoins d'un de mes clients préférés, j'ai eu la grande joie de paramétrer un VPS aux petits oignons avec réplication des données à la volée. C'est un projet fascinant que j'ai déjà abordé dans la série réplication de données. Au moment de la réalisation des bases de données, je demande à mon client le mot de passe root du serveur de base de données pour y créer de nouveaux utilisateurs. La réponse ne se fait pas attendre : […]
Serveur dédié : migration de MySQL vers MariaDB
Aujourd'hui, on aborde la migration du serveur de base de données : nous passons de l'historique MySQL à son fork libre MariaDB. Les raisons de remplacer Oracle MySQL avec MariaDB sont nombreuses. MySQL vs MariaDB Tout d'abord, MariaDB assure la compatibilité et la continuité de service avec MySQL. Les librairies sont exactement équivalentes et permettent d'utiliser les APIs et commandes de MySQL. Les performances de MariaDB sont souvent meilleures que celles de MySQL, notamment grâce à l'amélioration de l'optimiseur de […]
MySQL : convertir les tables MyISAM au format InnoDB
MySQL : MyISAM et InnoDB A ses débuts, MySQL utilisait le moteur de stockage MyISAM. C'est la raison pour laquelle on retrouve beaucoup d'exemples de création de tables sur Internet avec l'instruction engine=MyISAM (ce qui, au passage, peut faire planter pas mal de créations de bases/tables). Aujourd'hui, le moteur de stockage par défaut de MySQL est InnoDB. MyISAM n'est plus activement développé, à l'inverse d'InnoDB. Il est donc recommandé de convertir les tables MyISAM au format InnoDB, afin de bénéficier […]
MySQL : résoudre l'erreur "mysql_connect(): Headers and client library minor version mismatch"
Après la mise à jour vers MySQL 5.6, certaines applications peuvent renvoyer l'avertissement PHP suivant : PHP Warning: mysql_connect(): Headers and client library minor version mismatch. Headers:50535 Library:50617 C'est le cas lorsqu'une application est liée à l'utilisation d'une version spécifique de libmysqlclient18 alors qu'elle est connectée à un serveur MySQL qui tourne sur une version différente. C'est libmysqlclient18 qui renvoie cet avertissement mais dans certains cas, cela peut impacter l'application et tient plus de l'erreur que de l'avertissement. MySQL Native […]
WordPress : récupérer la liste emails des membres et commentateurs
Voici deux requêtes SQL pour récupérer la liste des adresses email de tous les utilisateurs d'un site tournant sous WordPress. Emails des membres En supposant que le préfixe WordPress est 'wp_', cette requête extrait l'adresse email de chaque membre du site : <code class="language-sql">/* Query name : get members' emails /* Author : Matt /* Author URI : https://www.skyminds.net/ */ SELECT DISTINCT user_email FROM wp_users GROUP BY user_email Emails des commentateurs Et cette requête extrait l'adresse email de chaque personne […]
Nouveautés du site : hiver 2013 - printemps 2014
Voici une petite liste des derniers ajouts, modifications et améliorations du site ces derniers mois : [*] PHP : déplacement de mes bouts de code du fichier functions.php pour les organiser dans un fichier-plugin. [*] HTML : ajout des meta Dublin Core sur la page d'accueil, passage des balises H2 en H1 pour les titres des articles, correction du code HTML5 parce que le validateur W3C a changé ses recommandations. [*] CSS : nettoyage du code CSS. J'ai remplacé les […]