MySQL转储无法使用cnf文件

时间:2014-02-11 20:05:23

标签: php mysql linux cakephp ubuntu

我在ubuntu 12.04上使用CakePHP并试图为mysqldump设置一个shell。我已经关注了几个关于.my.cnf文件的教程(例如thisthis)但是我不确定它实际上是否使用了我告诉它使用的cnf文件(更多细节)走向最底层。)

首先,我创建了CakePHP shell并直接将用户名/密码放入其中,以确定它是否能正常执行,而且确实如此。

exec('mysqldump  --user=root --password=mypassword --host=localhost MyDatabase> /var/www/app/db_backups/'."backup-" . date("Y-m-d") . ".sql");

编辑 - 好的,我想出了很多东西,但仍然没有运气

exec('mysqldump  --defaults-extra-file=~/.my.cnf --host=localhost MyDatabase > /var/www/app/db_backups/'."backup-" . date("Y-m-d") . ".sql");

当我在上面的exec函数中指定主机和数据库时,我收到此错误:Access denied for user 'root'@'localhost' (using password: YES) when trying to connect。我更改了.my.cnf文件中的用户名,错误反映了我再次运行时的用户名更改。

好的,现在我知道我有正确的.my.cnf文件。我将主机和数据库添加到.my.cf而不是exec函数中。当我运行它时,它现在似乎正常运行..但是,打开sql输出文件时它显示

Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help

所以基本上看起来它看不到主机或数据库,尽管它现在从正确的.my.cnf文件中选择,如上所示,用户名更改。该文件现在看起来像

[mysqldump]
user=root
password=mypassword
host=localhost
database=MyDatabase

我也尝试将它们放在[mysql],[client]和一系列其他组合下,但它们都只是吐出相同的sqldump选项消息

0 个答案:

没有答案