Mysql 用于迁移数据库的bash函数-静默失败

Mysql 用于迁移数据库的bash函数-静默失败,mysql,bash,ssh,mariadb,Mysql,Bash,Ssh,Mariadb,我有两台服务器,都通过私钥进行ssh根访问。我正在尝试复制一些数据库(旧服务器是MySQL 5.0.95,新服务器是MariaDB 5.5.5-10.2.4),并为以后提供了方便的工具。似乎我应该能够在一个命令中完成这项工作,我将它放在旧服务器上的.bashrc中,但是我遇到了一个问题,没有任何错误反馈 如果我首先在新服务器上手动创建数据库,这将起作用: migratedb(){mysqldump-u root-pmypass$1 | sshroot@123.123.123.123mysql-u

我有两台服务器,都通过私钥进行ssh根访问。我正在尝试复制一些数据库(旧服务器是MySQL 5.0.95,新服务器是MariaDB 5.5.5-10.2.4),并为以后提供了方便的工具。似乎我应该能够在一个命令中完成这项工作,我将它放在旧服务器上的.bashrc中,但是我遇到了一个问题,没有任何错误反馈

如果我首先在新服务器上手动创建数据库,这将起作用:

migratedb(){mysqldump-u root-pmypass$1 | sshroot@123.123.123.123mysql-u root-pmypass$1;}

看起来这应该可以帮我省下这一步,但它没有做任何我能看到的事情:

migratedb(){mysqldump-u root-pmypass--add drop database--databases$1 | sshroot@123.123.123.123mysql-u root-pmypass;}

它显然与函数包装器有关,因为直接在命令行上可以:

mysqldump-u root-pmypass--add drop database--databasedatabasename | sshroot@123.123.123.123mysql-u root-pmypass


有人看到我的错误了吗?

为了在shell级别上实际执行该过程,您必须将out shell括在后面的刻度(
)中。So-migratedb(){
mysqldump-u root-pmypass--……;`}。我不知道它的哪一部分是“外壳”,但如果我正确理解您建议在哪里放置反勾号,我会得到“语法错误:意外的文件结尾”。我尝试了几个其他位置的回击,但要么得到相同的错误,要么没有反馈,就像以前一样。如果需要反勾号,为什么填充现有数据库的版本可以正常工作?不管怎样,如果你做了一个答案,而不仅仅是一个评论,并且它有效,我会很高兴地接受并投票。