web-dev-qa-db-fra.com

Importer un fichier SQL local vers MySQL sur un serveur distant à l'aide du tunnel SSH

J'ai une connexion entre mon hôte local et un serveur distant utilisant le tunnel PuTTY SSH.

C'est très bien.

Maintenant, j'ai besoin d'une commande pour obtenir le fichier sql sur ma machine locale, c'est-à-dire c:\folder\test.sql et l'importer dans mysql sur le serveur distant

Je pensais que peut-être ...

mysql -u prefix_username -p testpass -h localhost -P 3307 prefix_testdb

puis faites une commande comme

mysql -p testpass -u prefix_username prefix_testdb < c:\folder\test.sql 

cette commande n'a pas fonctionné.

Comment puis-je y parvenir?

25
Jkk

Vous devez exécuter cette commande

mysql -h Host -u user_name -pPassword database < file.sql > output.log

file.sql contient les requêtes SQL à exécuter et output.log n'a de sens que lorsque vous avez une requête qui renvoie quelque chose (comme une sélection)

La seule chose différente que je peux voir dans votre code est l'espace vide entre l'option -p et le mot de passe. Si vous utilisez l'option -p, vous devez écrire le mot de passe sans laisser d'espace vide. Ou vous pouvez simplement utiliser l'option --password = Password

J'espère que vous pourrez résoudre le problème

37
user2993479

Vous aurez besoin de ssh sur la machine distante avec la commande mysql ajoutée:

ssh remote_user@remote_server mysql -p testpass -u username testdb < c:\folder\test.sql 
12
paulguy
 1. mysql -h xxx -uxxx -pxxx . //login to the remote mysql
 2. use DATABASE.             //assign which db to import
 3. source path/to/file.sql  //the path can be your local sql file path.

Référence: Importer un fichier SQL dans mysql

10
Dai Kaixian

Utilisez 'scp' pour copier et mysql pour vous insérer sur votre machine locale.

Syntaxe:

scp remote_user@remove_server:/path/to/sql/file.sql ~/path/to/local/directory

après avoir transféré le fichier, utilisez:

mysql -uYouUserName -p name_of_database_to_import_to < ~/path/to/local/directory/file.sql
4
cb0