Копирование таблиц из базы данных с MySQL Server на другом сервере на мой компьютер - PullRequest
0 голосов
/ 30 ноября 2018

Мне нужно использовать таблицу базы данных на университетском сервере для тестовых данных для проекта.Я довольно плохо знаком с базами данных и MySQL.Мой профессор прислал мне имя пользователя и пароль для сервера.И дополнительное имя пользователя и пароль для сервера MySQL.Это заняло у меня некоторое время, но, в конце концов, я смог подключиться к серверу через ssh, а затем мне удалось перейти к $ cd / $ cd usr / bin / MySQL, а затем войти в систему и найти данные / предложения в таблице в одном избазы данных.

Теперь возникает вопрос: как мне получить данные на моем компьютере?Я думал о скрипте Python.Но я не могу написать скрипт для входа в систему на другом сервере, а затем перейти в папку MySQL и войти туда, чтобы каким-то образом скопировать предложения в таблице в текстовый файл, который я могу использовать?

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Вы можете использовать программу mysqldump (если она доступна на вашем компьютере), чтобы получить дамп нужной вам таблицы.

если вы хотите, чтобы дамп был в виде SQL, чтобы вы могли вставить его в свою базу данных, вы бы назвали его с помощью

mysqldump -u "USERNAME" -p "PASSWORD" -h "HOSTNAME" "DATABASE" "TABLE" > dump.sql

Настоятельно рекомендуется пропустить пароль, поэтомуВаш пароль не сохраняется в истории оболочки.Вам будет предложено указать это во время выполнения.

, и вы получите файл со всеми SQL-запросами для воссоздания этой таблицы.Вы также можете экспортировать данные из этой таблицы как CSV или XML, в зависимости от параметров, используемых во время вызова.

, если сервер базы данных будет доступен только со второго сервера, который вы упомянули, но вы можете получить к нему доступчерез ssh, тогда вы можете попробовать позвонить

ssh USER@HOST 'mysqldump --version'

, который, мы надеемся, предоставит вам вывод, подобный следующему:

mysqldump  Ver xx.yy Distrib x.y.z, for debian-linux-gnu (x86_64)

, если это так, вы бы знали, что эта программа установлена, и выможно использовать следующую строку

ssh USER@HOST 'mysqldump -u "USERNAME" -p "PASSWORD" -h "HOSTNAME" "DATABASE" "TABLE"' | cat > dump.sql

, которая должна представить вам дамп на локальном компьютере.

0 голосов
/ 30 ноября 2018

Вам может не потребоваться ssh на удаленный сервер;в зависимости от того, как настроены их сервер и база данных, вы можете подключить клиент mysql на вашем локальном компьютере к серверу базы данных.Хотя существуют ограничения безопасности, ограничивающие , откуда разрешено подключение, доступ к базе данных на localhost на самом деле является особым случаем.

Возможно, вам даже не понадобится скрипт на python.Вы можете экспортировать напрямую из mysql в текстовый файл, или у вашего клиента может быть возможность копировать данные непосредственно с удаленного сервера в локальную базу данных.

Я бы предположил, что что-то вроде этого будет работать для вас, хотя получить вывод в желаемом формате может быть сложно:
mysql -h "host address" -u "username" -p -e "SELECT * FROM `table`" > localFile.txt

Если вы хотите сделать это сСценарий Python, запущенный на сервере, как вы описываете, вы захотите использовать учетные данные ssh для FTP через SSH, чтобы получить файлы туда и обратно.Ваш FTP-клиент наверняка поддержит это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...