mysqldump提示密码,即使凭据保存在/home/user/.my.cnf

mysqldump提示密码,即使凭据保存在/home/user/.my.cnf,mysql,database,dump,Mysql,Database,Dump,我的最终目标是创建一个cron脚本,每天自动转储一次选定的MySQL数据库(ngsRunStats\u FK)。请注意,MySQL用户ngs\u run\u stats拥有MySQL的所有权限 虽然我在终端上运行时,我希望富兰克林的回答能够完成这项工作 mysqldump --defaults-extra-file=/home/user/.my.cnf -S /nexus/cliniphenome/mysql.sock -u ngs_run_stats -p ngsRunStats_FK --

我的最终目标是创建一个
cron
脚本,每天自动转储一次选定的MySQL数据库(
ngsRunStats\u FK
)。请注意,MySQL用户
ngs\u run\u stats
拥有MySQL的所有权限

虽然我在终端上运行时,我希望富兰克林的回答能够完成这项工作

mysqldump --defaults-extra-file=/home/user/.my.cnf  -S /nexus/cliniphenome/mysql.sock -u ngs_run_stats -p ngsRunStats_FK --lock-tables=false > test.sql
我仍然需要提示我的密码。如果我正确输入密码,转储将按预期工作。但是,如前所述,这应该自动完成,即不提示输入密码

我假设,如果在终端上调用命令时要求我提示密码,我的
cron
(此处未显示)脚本将无法工作。还是这个假设是错误的

My
/home/user/.My.cnf
看起来是这样的:

[mysqldump]
user = ngs_run_stats
password = mypassword
并且具有权限
600

请尝试以下操作:

mysqldump --defaults-extra-file=/home/user/.my.cnf  -S /nexus/cliniphenome/mysql.sock -u ngs_run_stats -pngsRunStats_FK --lock-tables=false > test.sql
在-p标志和输入密码之间应该没有空格


但是,请注意,这是一种连接到数据库的不安全方式,因为密码将在命令中以明文形式显示,并且可以通过日志看到。

错误在于我正在传递将提示密码的
-p
标志。我误读了你的信息。因此我应该省略
-p
标志,而数据库实际上是由
--databases
标志指定的

mysqldump --defaults-extra-file=/home/user/.my.cnf  -S /nexus/cliniphenome/mysql.sock -u ngs_run_stats --databases ngsRunStats_FK --lock-tables=false > test4.sql

您可以在-p标志和密码之间没有空格的情况下进行尝试吗-p[password]这就是为什么我首先尝试将凭据存储在
/home/user/.my.cnf
,它只能由我访问(
600
),我不确定您的问题是什么。ngsRunStats_FK做什么?这就是我正在转储的数据库