CentOS端末のmysqlコマンドラインクライアント内で次のコマンドを実行しようとしています。
SELECT Concat('TRUNCATE TABLE ',table_schema,'.',TABLE_NAME, ';')
FROM INFORMATION_SCHEMA.TABLES where table_schema in ('justatest')
INTO OUTFILE '/home/user/tmp/truncate.sql';
結果は次のとおりです。
ERROR 1 (HY000): Can't create/write to file '/home/user/tmp/truncate.sql'
(Errcode: 13 - Permission denied)
次に、新しい端末を開き、を入力し、su -
パスワードを入力してから、次のコマンドを入力しました。
chown root:root /home/user/tmp
chmod 1777 /home/user/tmp
しかし、上記の生のSQLコードを実行すると、まだ同じエラーが発生します。
編集する:
試しても同じエラーが発生します。
chown username:username /home/user/tmp
chmod 1777 /home/user/tmp
試行すると、同じエラーメッセージが表示されます。
chown mysql:mysql /home/user/tmp
chmod 1777 /home/user/tmp
このエラーをどのように解決できますか?
ベストアンサー1
欲しいものを達成するためのもう一つの方法です。
mysql
パスなしで必要なファイル名のみを実行してコマンドを実行します。
SELECT Concat('TRUNCATE TABLE ',table_schema,'.',TABLE_NAME, ';')
FROM INFORMATION_SCHEMA.TABLES where table_schema in ('justatest')
INTO OUTFILE 'truncate.sql';
これにより、ファイルがデフォルトのmysqlディレクトリ(/var/lib/mysql/database
)に保存されます。
その後、ファイルを移動して所有者を変更できます。
$ sudo mv /var/lib/mysql/database/truncate.sql /home/user/tmp
$ sudo chown user:user /home/user/tmp/truncate.sql