我需要使用大学服务器上的数据库表作为项目的测试数据。 我对数据库和 MySQL 很陌生。我的教授已将服务器的用户名和密码发送给我。以及 MySQL 服务器的额外用户名和密码。 我花了一段时间,但最后我能够通过 ssh 连接到服务器,然后设法导航到 $cd/$cd usr/bin/MySQL 然后登录并在其中一个表中找到数据/句子数据库。
现在有一个问题:如何获取计算机上的数据?我想到了一个 python 脚本。但是我不能写一个脚本什么在不同的服务器上登录然后导航到 MySQL 文件夹登录那里以某种方式将表中的句子复制到我可以使用的 txt 文件?
最佳答案
您可以使用 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
这应该会在您的本地计算机上显示转储。
关于python - 将不同服务器上的 MySQL Server 数据库中的表复制到我的计算机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53558775/