Un champ booléen dans SQLite ou MySQL (contenant une valeur vrai/faux) est représenté par les valeurs 0 ou 1. Pour modifier sa valeur on peut lancer un SELECT sur la table et en fonction de la valeur renvoyée mettre la table à jour. Mais ce n'est pas la façon la plus efficace et élégante.
Avec MySQL comme avec les autres SGBDr, la façon la plus portable de sauvegarder ses données est d'en extraire des fichiers sql susceptibles de servir à reconstruire la base et y replacer ses données ce qui s'appelle en anglais un « dump ».
MySQL propose un script du nom de mysqldump qui fait ça très bien. Il produit des fichiers texte qui contiennent des instructions sql. Ces fichiers se compressent très bien, et comme les bases sont souvent grandes, les utilitaires comme gzip sont très utiles pour gagner de l'espace disque.
Le problème commence lorsqu'on envisage des sauvegardes incrémentales. Avec les utilitaires comme rsnapshot qui utilise rsync et les liens en dur, seuls les fichiers modifiés depuis la dernière sauvegarde sont sauvegardés. On économise ainsi de l'espace disque et de la bande passante. Mais les fichiers de dump sont à chaque fois nouveaux, car même si leur contenu n'a pas changé, le fichier lui est nouveau. Du coup rsync le télécharge. Et si vous faites un dump des bases de votres serveur MySQL toutes les quatre heures vous allez télécharger six fois par jour la même chose si vos bases reçoivent rarement des modifications.
Le but est de sauvegarder toutes les bases d'un SGBD MySQL dans des fichiers séparés horodatés dans un répertoire portant comme nom l'horodatage des sauvegardes. Ce script est un mixte dérivé de ceux trouvés à ces deux URLs : Le site de Maciej Mensfeld et cette astuce de Tim Kuijsten sur GitHub.