如何使用终端从远程服务器执行“mysqldump”并在本地保存
如何使用终端从服务器执行如何使用终端从远程服务器执行“mysqldump”并在本地保存,mysql,terminal,Mysql,Terminal,如何使用终端从服务器执行mysqldump 我做了以下工作: 首先,我登录了: ssh root@123.456.78.90 // then I enter my password 那么我会: mysql->show databases; mysqldump -u myusername -p the_database > db_backup.sql 之后: use the_database; 那么我会: mysql->show databases; mysqldum
mysqldump
我做了以下工作:
首先,我登录了:
ssh root@123.456.78.90 // then I enter my password
那么我会:
mysql->show databases;
mysqldump -u myusername -p the_database > db_backup.sql
之后:
use the_database;
那么我会:
mysql->show databases;
mysqldump -u myusername -p the_database > db_backup.sql
在那之后,很明显,什么都没有发生,我也没有出错。因此,我的问题是,它在哪里保存备份?如何在本地计算机上获取
mysqldump
?有多种备份方式和备份位置,但很可能您不希望将备份存储在运行数据库的同一台服务器上
如果您具有对服务器的ssh访问权限,则可以创建ssh隧道,最基本的示例可能是:
$ ssh -L 3307:localhost:3306 root@123.456.78.90
这将在本地打开端口3307
(以防万一您已经在使用3306
),并通过123.456.78.90
将其转发到localhost:3306
然后你可以做一些类似的事情:
$ mysqldump -h localhost -P 3307 -u myusername -p the_database > db_backup.sql
若要了解当前路径,请运行它,它将打印当前目录,并在其中创建db\u backup.sql
,以防您未指定绝对路径
在不使用ssh的情况下,您也可以通过指定主机来尝试直接连接:
$ mysqldump -h 123.456.78.90 -u myusername -p the_database > db_backup.sql
如果端口已打开,您可能只需修改/授予用户权限即可允许您的IP访问:
mysql> GRANT ALL ON the_database.* TO your_user@'123.456.78.90' IDENTIFIED BY 'secret';
使用ssh命令连接到服务器 按代码运行
mysqldump -u userName -p databaseName > /path/to/backup.sql
位置路径必须在同一台服务器上ah ok,因此
pwd
我应该输入类似于User/myusername/Desktop/somefolder/
的内容。您可以完全忽略pwd
命令,它只是供您作为参考,并知道文件可能存储在哪里,例如,如果希望备份位于/tmp/db_backup.sql
中,可以使用myqldump-h localhost-P 3307-u myusername-P_数据库>/tmp/db_backup.sql
,如果不指定绝对路径,文件将存储在当前目录中,通常是pwd
命令的输出,我是否应该在输入mysql
命令后创建隧道?抱歉,这很新:-)取决于端口是否可访问,以及您在DB中的用户权限,您可以尝试直接连接而不使用ssh隧道,如果不起作用,请尝试创建隧道,然后尝试mysqldump
确定,或者,什么也不发生:-请进一步解释?为什么很明显什么都没有发生?对不起,我选错了词,我想说的是我在视觉上看不到任何东西,我的意思是在某个地方没有可见的备份sql文件如果你将输出传输到某个文件,什么都没有打印-如果你想看到输出,跳过管道或在生成的管道上运行类似于cat
的操作file@NicoHaase好的,但我不明白你在说什么如果你在命令行中使用
,你会将输出(这里是转储的数据)重定向到一个文件-这就是为什么你看不到输出的原因