Я прочитал, что использование ОЗУ для временных таблиц MySQL должно повысить производительность. Я попытался создать /etc/mysql/conf.d/local.cnf с содержимым:
[mysqld]
tmpdir = /run/shm
, но перезапуск mysql завершился неудачно, с сообщением журнала ошибок:
140711 11:14:49 [Warning] Using unique option prefix myisam-recover instead of
myisam-recover-options is deprecated and will be removed in a future release. Please
use the full name instead.
140711 11:14:49 [Note] Plugin 'FEDERATED' is disabled.
140711 11:14:49 InnoDB: The InnoDB memory heap is disabled
140711 11:14:49 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140711 11:14:49 InnoDB: Compressed tables use zlib 1.2.8
140711 11:14:49 InnoDB: Using Linux native AIO
/usr/sbin/mysqld: Can't create/write to file '/run/shm/ibfkgz7Z' (Errcode: 13)
140711 11:14:49 InnoDB: Error: unable to create temporary file; errno: 13
140711 11:14:49 [ERROR] Plugin 'InnoDB' init function returned error.
140711 11:14:49 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140711 11:14:49 [ERROR] Unknown/unsupported storage engine: InnoDB
140711 11:14:49 [ERROR] Aborting
140711 11:14:49 [Note] /usr/sbin/mysqld: Shutdown complete
Ошибка код 13 «В доступе отказано». Но, учитывая следующий вывод, я не вижу, в чем может быть проблема.
$ ls -ld /run /run/shm
drwxr-xr-x 32 root root 1040 jul 11 09:42 /run
drwxrwxrwt 3 root root 280 jul 11 09:41 /run/shm
Существует зависимость от apparmor настроек безопасности
, необходимо изменить конфигурации для получения tmpdir в файл RAM
: файл/etc/mysql/my.cnf
tmpdir = /run/shm/mysql
:/etc/apparmor.d/usr.sbin.mysqld добавляют строку рядом с другими правилами файловой системы
/run/shm/mysql/* rw,
И окружают шаги к демону GTD
service apparmor restart
mkdir /run/shm/mysql
chown mysql:mysql /run/shm/mysql
chmod -R 777 /run/shm/mysql
service mysql restart
Mysql, должен быть в порядке, в конце концов.
пз. Не забывайте добавлять строку к/etc/rc.local для получения системы, работающей после перезагрузки
mkdir /run/shm/mysql && chown mysql:mysql /run/shm/mysql && chmod -R 777 /run/shm/mysql