環境
Laravel 7.25
laradock
php 7.3.24
spatie/laravel-backup 6.14
実現したいこと
Laradock + laravel + mysqlを使ってサイトを作成しております。
mysqlの定期バックアップを行いたいと思い、laravel-backupを導入しました。
Kernel.phpにスケジュール設定をしたところ
エラーメールが届いて、バックアップに失敗します。
mysqldumpの場所の指定がおかしいと思うのですが、
どたなか解決策わかりますでしょうか。
ちなみに手動でコマンドを入力した場合は成功します。
php artisan backup:run
発生している問題・エラーメッセージ
例外のメッセージ: The dump process failed with exitcode 127 : Command not found : sh: /usr/bin/mysqldump: not found
該当のソースコード
Kernel.php
protected function schedule(Schedule $schedule) { // 1時間ごとにバックアップコマンドを実行 $schedule->command('backup:run')->hourly(); }
database.php
'mysql' => [ 'driver' => 'mysql', 'url' => env('DATABASE_URL'), 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8', 'collation' => 'utf8_general_ci', 'prefix' => '', 'prefix_indexes' => true, 'strict' => false, 'engine' => null, 'dump' => [ // laravel-backup用に追記 'dump_binary_path' => '/usr/bin/', ], 'options' => extension_loaded('pdo_mysql') ? array_filter([ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), ]) : [], ],
laradockの.envファイル
WORKSPACE_INSTALL_MYSQL_CLIENT=true
試したこと
$ docker-compose exec workspace bash $ which mysqldump /usr/bin/mysqldump
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。