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 ?

Comment puis-je exécuter en toute sécurité des commandes MySQL avec les mots de passe des scripts Shell ?

DDD
DDDoriginal
2024-11-25 20:24:10948parcourir

How Can I Safely Execute MySQL Commands with Passwords from Shell Scripts?

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 :

  • Assurez-vous que le fichier SQL est accessible et dispose des autorisations appropriées.
  • Utilisez l'indicateur -x dans le script shell pour voir comment chaque commande s'exécute.
  • Vérifiez la sortie d'erreur de la commande MySQL pour des informations plus détaillées sur l'erreur rencontrée.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn