spatie/laravel-backup "mysqldump" 当我通过 Artisan 运行 时无法识别 class
spatie/laravel-backup "mysqldump" doesn't recognized when I run it through Artisan class
我在 WAMP 本地主机中使用 spatie/laravel-backup。
当我在 windows cmd 中手动输入时它工作正常:
php artisan backup:run
但是当我尝试 运行 使用 laravel Artisan class 进行备份时:
Artisan::call('backup:run');
它抛出一个错误:
'mysqldump' not recognized ...
在 laravel mysql 配置中,我还指定了转储程序的路径:
'mysql' => [
'driver' => 'mysql',
// ...
'dump' => [
'dump_binary_path' => 'E:/wamp/wamp64/bin/mysql/mysql5.7.9/bin',
],
],
我该如何解决?
编辑
可能只是支持 "bug" windows(感谢 Loek 的回答),as the author says,所以我可以 运行 在控制器中备份而不需要命令安全吗?也许像这样:
use Spatie\Backup\Tasks\Backup\BackupJobFactory;
BackupJobFactory::createFromArray(config('laravel-backup'))->run();
作为 command 本身。
我相信是正斜杠。试试这个:
'mysql' => [
'driver' => 'mysql',
// ...
'dump' => [
'dump_binary_path' => 'E:\wamp\wamp64\bin\mysql\mysql5.7.9\bin',
],
],
编辑
对 Windows 的支持充其量是靠不住的,创作者对 GitHub 问题发表了多条 "This package doesn't support Windows" 评论。这是最新的:https://github.com/spatie/laravel-backup/issues/311
也可能是权限问题。从命令行执行可能是从另一个用户而不是从 Web 服务器执行,因此 Windows 拒绝访问 mysqldump。
第二次编辑
只要你确保控制器只在需要时被调用,我不明白为什么这行不通!
我在 WAMP 本地主机中使用 spatie/laravel-backup。
当我在 windows cmd 中手动输入时它工作正常:
php artisan backup:run
但是当我尝试 运行 使用 laravel Artisan class 进行备份时:
Artisan::call('backup:run');
它抛出一个错误:
'mysqldump' not recognized ...
在 laravel mysql 配置中,我还指定了转储程序的路径:
'mysql' => [
'driver' => 'mysql',
// ...
'dump' => [
'dump_binary_path' => 'E:/wamp/wamp64/bin/mysql/mysql5.7.9/bin',
],
],
我该如何解决?
编辑
可能只是支持 "bug" windows(感谢 Loek 的回答),as the author says,所以我可以 运行 在控制器中备份而不需要命令安全吗?也许像这样:
use Spatie\Backup\Tasks\Backup\BackupJobFactory;
BackupJobFactory::createFromArray(config('laravel-backup'))->run();
作为 command 本身。
我相信是正斜杠。试试这个:
'mysql' => [
'driver' => 'mysql',
// ...
'dump' => [
'dump_binary_path' => 'E:\wamp\wamp64\bin\mysql\mysql5.7.9\bin',
],
],
编辑
对 Windows 的支持充其量是靠不住的,创作者对 GitHub 问题发表了多条 "This package doesn't support Windows" 评论。这是最新的:https://github.com/spatie/laravel-backup/issues/311
也可能是权限问题。从命令行执行可能是从另一个用户而不是从 Web 服务器执行,因此 Windows 拒绝访问 mysqldump。
第二次编辑
只要你确保控制器只在需要时被调用,我不明白为什么这行不通!