将数据库中的表从不同服务器上的mysql服务器复制到我的计算机上

kgsdhlau  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(415)

我需要使用一个大学服务器上的数据库表作为项目的测试数据。我对数据库和mysql很陌生。我的教授已经给我发送了服务器的用户名和密码。以及mysql服务器的额外用户名和密码。我花了一段时间,但最终我能够通过ssh连接到服务器,然后设法导航到$cd/$cd usr/bin/mysql,然后登录并在其中一个数据库的表中找到数据/句子。
现在有一个问题:如何在我的电脑上获取数据?我想到了一个python脚本。但是我不能写一个脚本什么是登录到另一个服务器,然后导航到mysql文件夹登录到那里,以某种方式复制表中的句子到一个txt文件我可以使用?

yebdmbv4

yebdmbv41#

您可能不需要ssh到远程服务器;根据服务器和数据库的设置方式,您可以将本地计算机上的mysql客户机连接到数据库服务器。虽然限制允许连接的位置有安全优势,但访问数据库时 localhost 其实只是个特例。
您甚至可能不需要python脚本。您可以直接从mysql导出到文本文件,或者您的客户机可能具有将数据直接从远程服务器复制到本地数据库的功能。
我猜这样的东西对你来说是可行的,尽管把输出转换成你想要的格式是很棘手的: mysql -h "host address" -u "username" -p -e "SELECT * FROMtable" > localFile.txt 如果您想使用在服务器上运行的python脚本来实现这一点,那么您需要使用ssh凭据通过ssh执行ftp来来回获取文件。你的ftp客户端肯定会支持这一点。

ncecgwcz

ncecgwcz2#

您可以使用mysqldump程序(如果您的机器上有)来获取所需表的转储。
如果您希望将转储文件作为sql,以便将其插入到自己的数据库中,则可以使用

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

强烈建议省略密码,这样您的密码就不会保存在shell历史记录中。执行过程中会提示您输入。
您将得到一个包含所有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

它会显示本地机器上的转储文件。

相关问题