環境
・CentOS
・MySQL 5.6 … パスワードはmysql_config_editorで設定
・Linuxユーザ名 … test


下記コマンドを実行したら、期待した通りファイルが作成されるのですが、

sh hoge.sh

▼hoge.sh

mysqldump --single-transaction -u データベースユーザ名 データベース名 >
/home/test/バックアップディレクトリ名/ファイル名


crontab経由で、shファイルを実行したら、サイズが0のファイルが作成され、dumpデータが取得できません
・cronのエラーメールも送られてきません(cronエラーではないから?)

1 15 * * * root /bin/bash /home/test/hoge.sh

権限関連が原因のような気もするのですが、rootで実行したら何でもいけるわけではないのでしょうか?

ls -la

-rwxrwxrwx 1 test test 270 1月 19 14:52 2017 hoge.sh


追記
・その後、色々試した結果、shファイルに記述しているコマンド内のmysqldumpにpオプションを付与すれば、crontab経由からも正常にファイル取得できることがわかりました
・しかし、mysql_config_editorを使用することで、コマンドからパスワード指定しなくてもログインできるよう設定しているのですが、この方式ではcrontab経由から、データ取得できないのでしょうか?
・mysqldumpエラーをファイル出力しようと思い、「-r ファイル名」としたのですが、取得できませんでした


再追記

・現状をようやく確認できました(cron以前の問題?)
・hoge.shをtestユーザとして直接実行すると、正常動作します
・hoge.shをrootユーザとして直接実行すると、下記エラー発生

mysqldump: Got error: 1045: Access denied for user 'test'@'localhost'
(using password: NO) when trying to connect

・hoge.shのdumpコマンドにパスワードを付与してcron経由で(rootユーザとして)実行すると、正常動作します

・mysqlテーブルを「select * from user;」すると、rootユーザもtestユーザもいます。パスワードは同じです

$ mysql_config_editor print --all

[test]
user = test
password = *****
host = localhost
[mysqldump]
user = root
password = *****
[root]
user = root
password = *****
host = localhost

そもそも根本的なことが分かっていないのですが、shの実行権限が何であれ、MySQLにはsh内のmysqldumpコマンドで記述したデータベースユーザ名でアクセスするわけではないのでしょうか?「mysqldump -u データベースユーザ名」