我想知道在没有提示密码的情况下执行数据库mysqldump的命令。
原因: 我想运行一个cron作业,每天对数据库进行一次mysqldump。因此,当提示时,我将无法插入密码。
我怎么解决这个问题呢?
我想知道在没有提示密码的情况下执行数据库mysqldump的命令。
原因: 我想运行一个cron作业,每天对数据库进行一次mysqldump。因此,当提示时,我将无法插入密码。
我怎么解决这个问题呢?
当前回答
补充@Frankline的回答:
为了在配置文件中使用密码,命令中必须排除-p选项。
正确的: Mysqldump -u my_username my_db > my_db.sql
错误的: Mysqldump -u my_username -p my_db > my_db.sql
.my.cnf可以省略用户名。
[mysqldump]
password=my_password
如果你的.my.cnf文件不在默认位置,mysqldump也看不到它,使用——defaults-file指定它。
Mysqldump——defaults-file=/path-to-file/.my.cnf -u my_username my_db > my_db.sql . Mysqldump
其他回答
可以在命令行中指定密码,具体操作如下:
mysqldump -h <host> -u <user> -p<password> dumpfile
mysqldump的选项是区分大小写的!
当然,我认为把完整的cmd行放在根crontab中会更好,更安全。 至少crontab编辑被限制(可读)给已经知道密码的人。所以不用担心用纯文本显示它……
如果需要一个简单的mysqldump…只需放置一个bash脚本,接受cred作为参数,并在里面执行所有设施…
bas文件在simple
#!/bin/bash
mysqldump -u$1 -p$2 yourdbname > /your/path/save.sql
在Crontab中:
0 0 * * * bash /path/to/above/bash/file.sh root secretpwd 2>&1 /var/log/mycustomMysqlDump.log
——password="" 在5.1.51上运行对我有用
mysqldump -h localhost -u <user> --password="<password>"
我有以下内容。
/etc/mysqlpwd
[mysql]
user=root
password=password
使用以下别名。
alias 'mysql -p'='mysql --defaults-extra-file=/etc/mysqlpwd'
要做恢复,我简单地使用:
mysql -p [database] [file.sql]
是的,这很简单....只需要一个神奇的命令行
mysqldump --user='myusername' --password='mypassword' -h MyUrlOrIPAddress databasename > myfile.sql
完成:)