我正在尝试创建一个临时表
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 错误,但没有成功。
让我们总结一下:
您可能需要指定要使用的确切 ENGINE
CREATE TEMPORARY TABLE `test_table` (
`test` DATE NOT NULL
) ENGINE=MEMORY;
通过查看它的配置,确保安全软件,如“apparmor”,不会影响 MySQL 的行为。特别是“tmpdir”保护。
更改 apparmor 临时目录的步骤:
创建新文件夹并将所有权更改为 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