首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spatie/laravel备份"mysqldump“在我遍历Artisan类时无法识别

spatie/laravel备份"mysqldump“在我遍历Artisan类时无法识别
EN

Stack Overflow用户
提问于 2017-01-18 14:21:10
回答 1查看 1.8K关注 0票数 1

我在WAMP本地主机上使用空间/拉拉-备份

当我手动输入windows cmd时,它工作得很好:

代码语言:javascript
复制
php artisan backup:run

但当我尝试使用类运行备份时:

代码语言:javascript
复制
Artisan::call('backup:run');

它抛出一个错误:

代码语言:javascript
复制
'mysqldump' not recognized ...

在laravel配置中,我还指定了跳闸器的路径:

代码语言:javascript
复制
'mysql' => [
            'driver' => 'mysql',
            // ...
            'dump' => [
                'dump_binary_path' => 'E:/wamp/wamp64/bin/mysql/mysql5.7.9/bin',
           ],
        ],

我怎么才能解决呢?

编辑

可能它只是支持windows的"bug“(感谢Loek的回答),正如作者所说,所以我可以在没有命令的情况下在控制器中安全地运行备份吗?也许是这样的:

代码语言:javascript
复制
use Spatie\Backup\Tasks\Backup\BackupJobFactory;

BackupJobFactory::createFromArray(config('laravel-backup'))->run();

作为命令本身。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-18 14:27:17

我想是正切的斜杠。试试这个:

代码语言:javascript
复制
'mysql' => [
        'driver' => 'mysql',
        // ...
        'dump' => [
            'dump_binary_path' => 'E:\\wamp\\wamp64\\bin\\mysql\\mysql5.7.9\\bin',
       ],
    ],

编辑

对Windows的支持充其量是不可靠的,多个“此包不支持Windows”的评论来自创建者关于GitHub问题的评论。这个是最新的:https://github.com/spatie/laravel-backup/issues/311

这也可能是一个许可问题。从命令行执行可能是从另一个用户执行,而不是从web服务器执行,因此Windows拒绝对mysqldump的访问。

第二版编辑

只要您确保控制器只在需要时才会被调用,我就不明白这为什么不能工作了!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41721855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档