Activer le mode Read Only sur un serveur MySQL


database
Voici quelques options utiles qui permettent d'empêcher l'écriture dans des bases de données MySQL, tout en gardant le droit de lecture.

L'activation de ces fonctionnalités peuvent être intéressantes notamment dans le cas d'un changement de serveur. On pourra alors exporter et réimporter toutes les données d'un serveur à un autre, en étant sûr de conserver l'intégrité des données. Quant aux clients, ils pourront seulement lire les données.

1. Méthode par modification d'une variable du serveur

Pour ce faire, connectez-vous au serveur avec l'utilisateur root :

mysql -h localhost -u root -p

et lancez la commande :

mysql> set GLOBAL read_only=true;

Les données contenues dans toutes les bases de données seront seulement accessibles en lecture. A noter que root garde quant à lui toujours le droit d'écriture.

Exemple d'insertion de données avec un simple utilisateur :

mysql> INSERT INTO toto VALUE('tata2');
ERROR 1290 (HY000): The MySQL server is running with the --read-only
option so it cannot execute this statement

Pour désactiver ce mode, on pourra ensuite lancer la commande suivante :

mysql> set GLOBAL read_only=false;

2. Méthode par positionnement de locks

Il existe aussi une seconde méthode qui consiste à poser des locks via la commande :

mysql> FLUSH TABLES WITH READ LOCK;

Cette dernière va alors fermer toutes les tables ouvertes, et verrouiller en lecture toutes les tables et bases.

A ce moment là, les requêtes qui voudront faire une écriture seront mises en file d'attente, jusqu'au débloquage par la commande :

mysql> UNLOCK TABLES;

Il sera possible de visionner la liste des requêtes en attentent en listant les processus comme ceci :

mysql> SHOW PROCESSLIST;
| 5 | root | localhost | test | Query | 160 | Waiting for release of readlock | INSERT INTO toto VALUE('tata2') |

Conclusion

La premiè méthode semble la plus adapter lors du transfert des données d'un serveur MySQL vers un autre, tandis que la seconde sera elle plutôt utilisée dans le cas de sauvegarde à froid.


 

Ajouter un commentaire

actualité android apache apple astuce astuces bash bilboblog blog boot chrome clavier commande commandes conky date debian Desktop développement elementary exploit faille fedora firefox flash gimp gnome google graphique Graphisme hack hacking Hardware humour intel internet iphone jailbreak Jeux Kde kernel libre Linux log logiciels Logiciels Libres lucid lynx maemo mail maquette metasploit microsoft mobile mockup monitoring mozilla multi-touch musique mysql n900 nautilus nokia noyau openoffice open source password photos php Planet publicité redhat red hat rpm réseau screenshot script serveur serveurs shell sql ssh statistiques sysadmin system Sécurité thème tux-planet tv twitter ubuntu unity vidéo vidéos vlc voyage wallpaper windows wordpress yum