首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysqldump命令在Laravel命令中失败

mysqldump命令在Laravel命令中失败
EN

Stack Overflow用户
提问于 2022-03-10 11:43:31
回答 1查看 209关注 0票数 -1

我有一个Laravel命令,每天备份MySQL数据库。

这是命令:

代码语言:javascript
复制
/**
 * Create a new command instance.
 *
 * @return void
 */
public function __construct()
{
    parent::__construct();

    $this->process = new Process([sprintf(
        "mysqldump -u%s -p'%s' %s > %s",
        config('database.connections.mysql.username'),
        config('database.connections.mysql.password'),
        config('database.connections.mysql.database'),
        storage_path('app/public/backups/backup.sql')
    )]);
}

/**
 * Execute the console command.
 *
 * @return mixed
 */
public function handle()
{
    try {
        $this->process->mustRun();

        $this->info('The database has been backed up successfully.');
    } catch (ProcessFailedException $exception) {
        logger()->debug($exception->getMessage());
        $this->error('The backup process has failed.');
    }

}

当我检查哪个命令实际运行时,我会看到以下内容:

代码语言:javascript
复制
/Users/jovan/path_to_project/mysqldump -uuser -p'passpass' project > /Users/jovan/path_to_project/storage/app/public/backups/backup.sql

由于某些原因,它无法工作,因为它为mysqldump命令(/Users/jovan/path_to_project/mysqldump)创建了一个绝对路径。

当我将命令更改为以下命令并手动运行它时,它可以正常工作:

代码语言:javascript
复制
mysqldump -uuser -p'passpass' project > /Users/jovan/path_to_project/storage/app/public/backups/backup.sql

我怎么才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-10 11:56:13

您使用的不是可执行的mysqldump路径。

首先,尝试通过执行:mysqldump来定位which mysqldump可执行文件,然后将输出(绝对路径)添加到CLI命令内容中。

代码语言:javascript
复制
    $this->process = new Process([sprintf(
        "mysqldump -u%s -p'%s' %s > %s",
        config('database.connections.mysql.username'),
        config('database.connections.mysql.password'),
        config('database.connections.mysql.database'),
        storage_path('app/public/backups/backup.sql')
    )]);

转到

代码语言:javascript
复制
    $this->process = new Process([sprintf(
        "/absolute/path/to/mysqldump -u%s -p'%s' %s > %s",
        config('database.connections.mysql.username'),
        config('database.connections.mysql.password'),
        config('database.connections.mysql.database'),
        storage_path('app/public/backups/backup.sql')
    )]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71423585

复制
相关文章

相似问题

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