Exécuter des requêtes MySQL en tant que tâches Cron : une approche sécurisée et automatisée
Les tâches planifiées peuvent être vitales pour la maintenance des bases de données. L'une de ces tâches consiste à purger les entrées obsolètes d'une base de données MySQL. Cependant, exécuter manuellement une requête chaque nuit et devoir saisir un mot de passe à chaque fois peut s'avérer fastidieux. Cet article explore des méthodes plus simples et plus sécurisées pour automatiser l'exécution des requêtes MySQL en tant que tâches cron.
Utilisation du planificateur d'événements MySQL (méthode préférée)
L'approche recommandée consiste à tirer parti Planificateur d'événements intégré à MySQL, éliminant le besoin de scripts externes. Pour l'activer :
SET GLOBAL event_scheduler = ON;
Ensuite, créez un événement pour exécuter la requête souhaitée de manière planifiée :
CREATE EVENT name_of_event ON SCHEDULE EVERY 1 DAY STARTS '2014-01-18 00:00:00' DO DELETE FROM tbl_message WHERE DATEDIFF( NOW( ) , timestamp ) >=7;
Exécuter un fichier PHP via Cron (méthode alternative)
Si le planificateur d'événements n'est pas une option, une alternative consiste à demander à cron d'exécuter un fichier PHP. Cette méthode nécessite un script PHP avec les informations d'identification nécessaires intégrées. Assurez-vous de sécuriser le script contre tout accès non autorisé. Voici un exemple :
<?php $servername = "localhost"; $username = "root"; $password = "mypassword"; $dbname = "myDB"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // Execute query $sql = "DELETE FROM tbl_message WHERE DATEDIFF( NOW( ) , timestamp ) >=7"; $conn->query($sql); // Close connection $conn->close(); ?>
Enfin, configurez cron pour exécuter le script PHP en tant que tâche. N'oubliez pas de définir les autorisations appropriées pour permettre à cron d'exécuter le script.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!