mysqlbackupを実行するには、rootとして実行する必要があります。
以下は、一般ユーザーとして実行する場合の例です。
mysqlbackup --compress --user=root --socket=/var/lib/mysql/mysql.sock --backup-dir=/home/user/backup backup
MySQL Enterprise Backup version 3.12.2 Linux-2.6.32-400.37.11.el6uek.i686-i686 [2016/01/19]
Copyright (c) 2003, 2016, Oracle and/or its affiliates. All Rights Reserved.
mysqlbackup: INFO: Starting with following command line ...
mysqlbackup --compress --user=root --socket=/var/lib/mysql/mysql.sock
--backup-dir=/home/user/backup backup
mysqlbackup: INFO:
mysqlbackup: INFO: MySQL server version is '5.5.44-MariaDB'.
mysqlbackup: INFO: Got some server configuration information from running server.
IMPORTANT: Please check that mysqlbackup run completes successfully.
At the end of a successful 'backup' run mysqlbackup
prints "mysqlbackup completed OK!".
160226 08:30:02 mysqlbackup: INFO: MEB logfile created at /home/user/backup/meta/MEB_2016-02-26.08-30-02_compress_backup.log
mysqlbackup: ERROR: Opening of file /var/lib/mysql/ibdata1 failed. Error code: 13, Permission denied
これにより権限の拒否が発生するため、sudoを使用して実行しようとすると、次の結果が表示されます。
sudo mysqlbackup
[sudo] password for user:
sudo: mysqlbackup: command not found
しかし、rootとして実行しても問題はありません...
私のユーザーはsudoersファイルの中にあるので、問題なくsudoを使用して他のコマンドを実行することができることを知っていますが、この場合、私の質問はsudoを使用してなぜ実行できないのですか?再利用する必要はありません。 sudo -i ルート環境を取得するには?
ノート:すべて同じ$ PATHを持ちます。
[root@localhost ~]# echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/user/.local/bin:/home/user/bin
[root@localhost ~]# exit
[user@localhost backup]$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/user/.local/bin:/home/user/bin
ベストアンサー1
おそらくsecure_path
/etc/sudoersに設定されているでしょう。表示されたパスはwhich mysqlbackup
そこには含まれていませんが、echo $PATH
ユーザーとして実行したり、rootからログインしたときに表示されます。そうですか?それでも変に見えます。