Maison >base de données >tutoriel mysql >Comment puis-je exécuter en toute sécurité des commandes MySQL avec les mots de passe des scripts Shell ?
Exécuter des commandes MySQL à partir de scripts Shell
L'exécution de commandes MySQL à partir de scripts Shell peut être essentielle pour automatiser les tâches de base de données. En incorporant des commandes MySQL dans des scripts, vous pouvez automatiser des tâches répétitives ou exécuter des opérations complexes sans intervention manuelle.
Énoncé du problème
Un utilisateur souhaite exécuter la commande MySQL suivante à partir de un script shell :
mysql -h "server-name" -u root "password" "database-name" < "filename.sql"
Cette commande restaure les données d'un fichier SQL, mais l'utilisateur rencontre une erreur en essayant de l'exécuter à partir d'un shell script.
Solution
L'erreur survient lors de la fourniture du mot de passe dans le script shell. Pour spécifier un mot de passe dans un script shell, utilisez l'indicateur -p sans espace entre l'indicateur et le mot de passe, comme indiqué ci-dessous :
mysql -h "server-name" -u root "-pXXXXXXXX" "database-name" < "filename.sql"
Utilisation d'un fichier de configuration pour les informations d'identification
Une approche alternative consiste à stocker les informations d'identification de l'utilisateur dans le fichier ~/.my.cnf. Cela évite d'avoir à spécifier le mot de passe sur la ligne de commande. Le fichier de configuration doit avoir le contenu suivant :
[client] user = root password = XXXXXXXX
Une fois le fichier de configuration en place, la commande MySQL peut être exécutée comme suit :
mysql -h "server-name" "database-name" < "filename.sql"
Conseils de dépannage
Si la commande MySQL ne parvient pas à s'exécuter à partir du script shell, envisagez le dépannage suivant conseils :
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!