2016-03-13 46 views
0

美好的一天人们!MySQL输出中的MySQLdump 0尺寸

我想在php中使用shell命令导出数据库,但我只得到0字节。没有表或任何东西。该代码是在这里:

exec('E:\wamp\bin\mysql\mysql5.6.12\bin\mysqldump --user=$db_user --password=$db_password --host=$db_host accounts > E:\wamp\www\accountsknc\backups\file.sql'); 

但是,如果我尝试在命令行中,我得到一个新的生产线: enter image description here

一切都有了正确的(用户名,密码,数据库名),除了我只得到0下载字节。这里有什么不对吗?

UPDATE:

得到它的工作家伙。

而不是exec('E:\wamp\bin\mysql\mysql5.6.12\bin\mysqldump --user=$db_user --password=$db_password --host=$db_host accounts > E:\wamp\www\accountsknc\backups\file.sql');,我删除了变量,并直接在命令中设置用户名,密码和数据库名称。谢谢您的帮助。

+1

它的命令行工作? –

+0

你的意思是'E:\ wamp \ www \ accountsknc \ backups \ file.sql'是空的吗? – joksnet

+0

尝试使用-u [用户]和-p [密码] –

回答

0

它看起来像你试图导出帐户表。但它不知道你想从哪个数据库中提取数据。该full doc表明

mysqldump.exe [options] database_name table_name > file.sql 

为了澄清,你的代码看起来会像这样:

<?php 
$command = 'E:\wamp\bin\mysql\mysql5.6.12\bin\mysqldump.exe'; 
$password = 'secret'; 
$host = '127.0.0.1'; 
$user = 'root'; 
$dbName = 'accounts'; 
$fileName = 'E:\wamp\www\accountsknc\backups\20160312.sql'; 

exec("$command -u $user -p$password -h$host $dbName > $fileName"); 
+0

它应该是真正的mysql_dump而不是mysqldump? – FewFlyBy

+0

哎呀,没有。我修正了它,这只是一种拼写错误。 – Iwnnay

+0

试试这个 转到这个目录“E:\ wamp \ bin \ mysql \ mysql5.6.12 \ bin \” 然后输入“dir”查找mysqldump.exe是否存在。 如果有一个文件mysqldump.exe 试试这个 E:\ WAMP \ BIN \ mysql的\ mysql5.6.12 \ BIN \的mysqldump -u [用户] -p [密码] [DBNAME]> [您output_filename] –