Je veux exécuter un fichier texte contenant des requêtes SQL, en MySQL.
J’ai essayé d’exécuter le source /Desktop/test.sql
et source /Desktop/test.sql
reçu l’erreur:
mysql>. \ home \ sivakumar \ Desktop \ test.sql Erreur: Impossible d’ouvrir le fichier ‘\ home \ sivakumar \ Desktop \ test.sql’, erreur: 2
Une idée sur ce que je fais mal?
Si vous êtes sur la ligne de commande MySQL, mysql>
vous devez déclarer le fichier SQL comme source
.
mysql> source \home\user\Desktop\test.sql;
Vous avez beaucoup d’options:
mysql -h hostname -u user database < path/to/test.sql
vous pouvez exécuter des instructions mysql qui ont été écrites dans un fichier texte en utilisant la commande suivante:
mysql -u yourusername -p yourpassword yourdatabase < text_file
Si votre firebase database n'a pas encore été créée, connectez-vous d'abord à votre compte mysql en utilisant:
mysql -u yourusername -p yourpassword yourdatabase
puis:
mysql>CREATE DATABASE a_new_database_name
puis:
mysql -u yourusername -p yourpassword a_new_database_name < text_file
ça devrait le faire!
Plus d'infos ici: http://dev.mysql.com/doc/refman/5.0/en/mysql-batch-commands.html
Toutes les meilleures réponses sont bonnes. Mais juste au cas où quelqu’un voudrait exécuter la requête à partir d’un fichier texte sur un serveur distant ET enregistrer les résultats dans un fichier (au lieu d’afficher sur la console), vous pouvez le faire:
mysql -u yourusername -p yourpassword yourdatabase < query_file > results_file
J’espère que cela aide quelqu’un.
Mon option préférée est de:
mysql --user="username" --database="databasename" --password="yourpassword" < "filepath"
Je l'utilise de cette façon parce que lorsque vous l'enchaînez avec "" vous évitez le mauvais chemin et les erreurs avec les espaces et - et probablement plus de problèmes avec les caractères que je n'ai pas rencontrés.
Avec @elcuco comment je suggère d'utiliser cette commande avec [espace] avant, il dira à bash de l'ignorer dans l'historique, cela fonctionnera dès la première fois.
au cas où il enregistrerait encore votre commande dans l’histoire, veuillez consulter les solutions suivantes:
Exécuter la commande sans la conserver dans l'historique
mysql> source C:\Users\admin\Desktop\fn_Split.sql
Ne spécifiez pas de guillemets simples.
Si la commande ci-dessus ne fonctionne pas, copiez le fichier sur le lecteur c: et réessayez. comme indiqué ci-dessous,
mysql> source C:\fn_Split.sql
Donnez le chemin du fichier .sql comme:
source c:/dump/SQL/file_name.sql;
Il n’est jamais ~/.bash_history
de passer l’argument de mot de passe directement à partir de la ligne de commande, il est enregistré dans le fichier ~/.bash_history
et peut être accessible à partir d’autres applications.
Utilisez ceci à la place:
mysql -u user --host host --port 9999 database_name < /scripts/script.sql -p Enter password:
Très probablement, il vous suffit de changer le slash / blackslash: from
\home\sivakumar\Desktop\test.sql
à
/home/sivakumar/Desktop/test.sql
Donc, la commande serait:
source /home/sivakumar/Desktop/test.sql
mysql -uusername -ppassword database-name < file.sql
utilisez l’ invite suivante de la commande mysql –
source \\home\\user\\Desktop\\test.sql;
N’utilisez pas de devis. Même si le chemin contient un espace (”), n’utilisez aucune citation .
Je suis venu ici à la recherche de cette réponse également, et voici ce que j’ai trouvé qui fonctionne le mieux pour moi: Remarque: j’utilise Ubuntu 16.xx
mysql -u
source file_name.sql
J’espère que cela t’aides.
Depuis que mysql -u yourusername -p yourpassword yourdatabase < text_file
ne fonctionnait pas sur un serveur distant (Amazon EC2) ...
Assurez-vous que la firebase database est créée en premier.
Alors:
mysql --host=localhost --user=your_username --password=your_password your_database_name < pathTofilename.sql
Pour référence ultérieure, j’ai trouvé que cela fonctionnait par rapport aux méthodes susmentionnées, sous Windows dans votre console msql:
mysql >> source c://path_to_file//path_to_file//file_name.sql;
Si votre lecteur racine n’est pas appelé “c”, interchangez simplement avec ce que votre lecteur est appelé. Essayez d’abord les barres obliques inverses, si elles ne fonctionnent pas, essayez la barre oblique. S’ils ne fonctionnent pas non plus, assurez-vous d’avoir le chemin d’access complet, l’extension .sql sur le nom du fichier, et si votre version insère des points-virgules, assurez-vous qu’elle existe et réessayez.
J’ai eu cette erreur et essayé tous les conseils que je pouvais obtenir en vain.
Enfin, le problème était que mon dossier avait un espace dans le nom du dossier qui apparaissait comme une barre oblique dans le chemin du dossier, une fois que je l’ai trouvé et supprimé, cela fonctionnait correctement.