Импорт локального файла SQL в MySQL на удаленном сервере с использованием SSH-туннеля

У меня есть соединение между моим локальным хостом и удаленным сервером с использованием SSH-туннеля шпатлевки.

Это нормально.

Теперь мне нужна команда, чтобы получить файл sql на моем локальном компьютере, то есть c:\folder\test.sql, и импортировать его в mysql на удаленном сервере.

Я подумал, может быть...

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

затем выполните команду, например

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

эта команда не сработала.

Как я могу этого добиться?


person Jkk    schedule 23.05.2012    source источник
comment
Вы действительно хотите импортировать его на сервер mysql на удаленной машине? Тогда нет необходимости сначала переносить его на локальный компьютер.   -  person cb0    schedule 23.05.2012
comment
Это файл SQL с другого сервера на удаленный сервер, который я буду использовать.   -  person Jkk    schedule 23.05.2012


Ответы (5)


Вы должны запустить эту команду

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

file.sql содержит SQL-запросы для запуска, а output.log имеет смысл только тогда, когда у вас есть запрос, который что-то возвращает (например, выбор)

Единственное отличие, которое я вижу в вашем коде, это пробел между опцией -p и паролем. Если вы используете опцию -p, вы должны написать пароль, не оставляя пробелов. Или вы просто можете использовать опцию --password=Password

Я надеюсь, что вы можете решить проблему

person user2993479    schedule 06.12.2013
comment
Это идеально верно. Тем не менее, не рекомендуется разрешать удаленные подключения к серверу mysql, пока вы не поймете, что делаете. - person augusto; 04.12.2014
comment
Если ваш файл sql содержит определение схемы, все, что вам нужно запустить, это: mysql -h host -u user_name -pPassword < file.sql - person CommandZ; 10.07.2015
comment
host здесь имеется в виду? root@myServerIp? - person pvaitonis; 17.04.2018
comment
что делать, если файл .sql находится на локальном компьютере! - person Ankit Sahu; 29.04.2019
comment
Я знаю, что это старо, но это может помочь кому-то... Самый простой способ обработки паролей в Linux или даже с использованием подсистемы Windows Linux - это создать файл с именем .my.cnf в вашем домашнем каталоге. Файл должен содержать следующие строки для восстановления: [mysql] username=username password=mysecret - person BrettJ; 01.11.2019

Вам нужно будет подключиться по ssh к удаленной машине с добавленной командой mysql:

ssh remote_user@remote_server mysql -p testpass -u username testdb < c:\folder\test.sql 
person paulguy    schedule 20.09.2013

 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.

Ссылка: Импорт файла SQL в mysql

person Dai Kaixian    schedule 22.11.2016

Используйте 'scp' для копирования и mysql для вставки на локальный компьютер.

Синтаксис:

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

после того, как вы передали файл, используйте:

mysql -uYouUserName -p name_of_database_to_import_to < ~/path/to/local/directory/file.sql
person cb0    schedule 23.05.2012
comment
или вы используете это mysql -u имя_пользователя -p имя_базы_данных ‹ /path/to/file.sql Изнутри mysql: mysql› use db_name; mysql› исходный файл резервной копии.sql; - person Kennedy Maikuma; 31.10.2019

Вы можете использовать pscp для загрузки файла на сервер. Перейдите в свою командную строку и введите это

pscp.exe c:\folder\test.sql [email protected]:/serverpath
person PeterPan    schedule 16.06.2015