一時テーブルを作成しようとしています
CREATE TEMPORARY TABLE `test_table` (
`test` DATE NOT NULL
);
他のスキーマを試しても、次のエラーが発生します
Can't create table 'db.test_table' (errno: -1)
運が悪かった-1エラーをグーグルで検索しようとしました。
一時テーブルを作成しようとしています
CREATE TEMPORARY TABLE `test_table` (
`test` DATE NOT NULL
);
他のスキーマを試しても、次のエラーが発生します
Can't create table 'db.test_table' (errno: -1)
運が悪かった-1エラーをグーグルで検索しようとしました。
要約しましょう:
使用するエンジンを正確に指定する必要がある場合があります
CREATE TEMPORARY TABLE `test_table` (
`test` DATE NOT NULL
) ENGINE=MEMORY;
「apparmor」などのセキュリティ ソフトウェアが MySQL の動作に影響を与えないように、その構成を確認してください。特に「tmpdir」保護。
apparmor temp dir を変更する手順:
新しいフォルダーを作成し、所有権を mysql に変更します
mkdir /mnt/foo/tmp
sudo chown mysql:mysql /mnt/foo/tmp
/etc/mysql/my.cnf
MySQL が新しい tmpdir を使用できるように編集します
tmpdir = /mnt/foo/tmp
/etc/apparmor.d/local/usr.sbin.mysqld
フォルダーへの読み取りと書き込みを許可するように編集します
/mnt/foo/tmp/ r,
/mnt/foo/tmp/** rw,
サービスを再起動する
sudo service apparmor reload
sudo service mysql restart