Alterar o MySQL tmpdir mata a funcionalidade do InnoDB

4

Tenho uma consulta que continua falhando porque não tenho espaço temporário suficiente disponível. Então, criei um diretório em uma partição diferente em /data/tmp , chmod ed deste diretório para 777 e atualizei my.cnf para ler: tmpdir = /data/tmp . Eu sou capaz de reiniciar o daemon sem problemas e sem erros relatados nos logs. Isso é tudo que os logs mostram ao reiniciar o daemon:

Mar 17 16:45:05 Casala-Dev-LX01 /etc/mysql/debian-start[3166]: Upgrading MySQL tables if necessary.
Mar 17 16:45:05 Casala-Dev-LX01 /etc/mysql/debian-start[3169]: /usr/bin/mysql_upgrade: the '--basedir' option is always ignored
Mar 17 16:45:05 Casala-Dev-LX01 /etc/mysql/debian-start[3169]: Looking for 'mysql' as: /usr/bin/mysql
Mar 17 16:45:05 Casala-Dev-LX01 /etc/mysql/debian-start[3169]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
Mar 17 16:45:05 Casala-Dev-LX01 /etc/mysql/debian-start[3169]: This installation of MySQL is already upgraded to 5.1.41, use --force if you still need to run mysql_upgrade
Mar 17 16:45:05 Casala-Dev-LX01 /etc/mysql/debian-start[3176]: Checking for insecure root accounts.
Mar 17 16:45:05 Casala-Dev-LX01 /etc/mysql/debian-start[3180]: Triggering myisam-recover for all MyISAM tables
Mar 17 16:45:05 Casala-Dev-LX01 kernel: [93900.335357] type=1503 audit(1300380305.417:117):  operation="mknod" pid=3164 parent=1 profile="/usr/sbin/mysqld" requested_mask="c::" denied_mask="c::" fsuid=104 ouid=104 name="/data/tmp/#sql_c54_1.MYI"
Mar 17 16:45:05 Casala-Dev-LX01 kernel: [93900.335453] type=1503 audit(1300380305.417:118):  operation="mknod" pid=3164 parent=1 profile="/usr/sbin/mysqld" requested_mask="c::" denied_mask="c::" fsuid=104 ouid=104 name="/data/tmp/#sql_c54_1.MYI"
Mar 17 16:45:05 Casala-Dev-LX01 kernel: [93900.335553] type=1503 audit(1300380305.417:119):  operation="mknod" pid=3164 parent=1 profile="/usr/sbin/mysqld" requested_mask="c::" denied_mask="c::" fsuid=104 ouid=104 name="/data/tmp/#sql_c54_1.MYI"
Mar 17 16:45:05 Casala-Dev-LX01 kernel: [93900.335591] type=1503 audit(1300380305.417:120):  operation="mknod" pid=3164 parent=1 profile="/usr/sbin/mysqld" requested_mask="c::" denied_mask="c::" fsuid=104 ouid=104 name="/data/tmp/#sql_c54_1.MYI"
Mar 17 16:45:05 Casala-Dev-LX01 kernel: [93900.335628] type=1503 audit(1300380305.417:121):  operation="mknod" pid=3164 parent=1 profile="/usr/sbin/mysqld" requested_mask="c::" denied_mask="c::" fsuid=104 ouid=104 name="/data/tmp/#sql_c54_1.MYI"
Mar 17 16:45:05 Casala-Dev-LX01 kernel: [93900.335731] type=1503 audit(1300380305.417:122):  operation="mknod" pid=3164 parent=1 profile="/usr/sbin/mysqld" requested_mask="c::" denied_mask="c::" fsuid=104 ouid=104 name="/data/tmp/#sql_c54_1.MYI"
Mar 17 16:45:05 Casala-Dev-LX01 kernel: [93900.335893] type=1503 audit(1300380305.417:123):  operation="mknod" pid=3164 parent=1 profile="/usr/sbin/mysqld" requested_mask="c::" denied_mask="c::" fsuid=104 ouid=104 name="/data/tmp/#sql_c54_1.MYI"
Mar 17 16:55:32 Casala-Dev-LX01 kernel: [94526.730200] type=1503 audit(1300380932.157:125):  operation="mknod" pid=3164 parent=1 profile="/usr/sbin/mysqld" requested_mask="c::" denied_mask="c::" fsuid=104 ouid=104 name="/data/tmp/#sql_c54_0.MYI"
Mar 17 16:55:32 Casala-Dev-LX01 kernel: [94526.753333] type=1503 audit(1300380932.177:126):  operation="mknod" pid=3164 parent=1 profile="/usr/sbin/mysqld" requested_mask="c::" denied_mask="c::" fsuid=104 ouid=104 name="/data/tmp/#sql_c54_0.MYI"
Mar 17 16:55:40 Casala-Dev-LX01 kernel: [94534.677693] type=1503 audit(1300380940.107:127):  operation="mknod" pid=3164 parent=1 profile="/usr/sbin/mysqld" requested_mask="c::" denied_mask="c::" fsuid=104 ouid=104 name="/data/tmp/#sql_c54_0.MYI"
Mar 17 16:55:40 Casala-Dev-LX01 kernel: [94534.837802] type=1503 audit(1300380940.267:128):  operation="mknod" pid=3164 parent=1 profile="/usr/sbin/mysqld" requested_mask="c::" denied_mask="c::" fsuid=104 ouid=104 name="/data/tmp/#sql_c54_0.MYI"

Quando eu entro no banco de dados, no entanto, as tabelas InnoDB simplesmente não funcionam. Eu continuo recebendo o erro, ERROR 1286 (42000): Unknown table engine 'InnoDB' . As tabelas MyISAM funcionam bem. Eu li aqui que isso pode ser um problema com o tamanho especificado para innodb_buffer_pool_size , então eu tentei um intervalo de tamanhos, até 32M . Independente dessa configuração, o daemon continua a iniciar corretamente, o mecanismo InnoDB falha silenciosamente (confirmado em SHOW ENGINES; ) e eu continuo ficando mais frustrado.

    
por Brennon Bortz 17.03.2011 / 19:19

1 resposta

4

Expandindo a sugestão apparmor do DerfK, verifique sua configuração do apparmor

Ubuntu:

/etc/apparmor.d/usr.bin.mysqld

adicione

/data/tmp/ r,  
/data/tmp/* rw

para a lista de diretórios.

    
por 17.03.2011 / 20:02

Tags