2014-10-21 3 views
2

Я пытаюсь создать временную таблицуОшибка таблицы создания температуры

CREATE TEMPORARY TABLE `test_table` (
    `test` DATE NOT NULL 
); 

Даже если я попробовать другие схемы я получаю следующую ошибку

Can't create table 'db.test_table' (errno: -1) 

Я попытался Google -1 ошибка не повезло ,

+0

У вас есть права на создание таблиц? Попробуйте изменить существующую таблицу. –

+0

Я, я корень. – c3cris

+0

Хорошо, мы можем исключить проблему «CREATE TEMPORARY TABLES». Используете ли вы «apparmor» или другое программное обеспечение безопасности, которое может повлиять на поведение MySQL? –

ответ

1

Давайте подведем итог:

  1. Убедитесь, что вы имеете привилегию «Создание временных таблиц»
  2. Вы, возможно, потребуется указать точную ENGINE вы хотите использовать

    CREATE TEMPORARY TABLE `test_table` (
        `test` DATE NOT NULL 
    ) ENGINE=MEMORY; 
    
  3. Марка что программное обеспечение безопасности, например «apparmor», не влияет на поведение MySQL, глядя на его конфигурацию. Особенно защита «tmpdir».

шаги, чтобы изменить AppArmor временную реж:

  1. создать новую папку и изменить право собственности на MySQL

    mkdir /mnt/foo/tmp 
    sudo chown mysql:mysql /mnt/foo/tmp 
    
  2. редактировать /etc/mysql/my.cnf позволить MySQL использовать новый TMPDIR

    tmpdir = /mnt/foo/tmp 
    
  3. редактировать /etc/apparmor.d/local/usr.sbin.mysqld для разрешения чтения и записи в папку

    /mnt/foo/tmp/ r, 
    /mnt/foo/tmp/** rw, 
    
  4. рестарт услуги

    sudo service apparmor reload 
    sudo service mysql restart 
    
+0

Я смог создать таблицу без памяти, указав двигатель: СОЗДАТЬ ВРЕМЕННЫЙ ТАБЛИЦ 'test_table' ( ' test' DATE NOT NULL ) ENGINE = MyISAM – c3cris

Смежные вопросы