Este parece ser um problema recorrente para mim em cada instalação que eu esqueço. A solução acima resolve o problema, mas eu me pergunto se existe outro caminho. Neste ponto, o Ubuntu 11.10 Oneiric, tudo que você precisa é
sudo aa-complain usr.sbin.mysqld-akonadi
para que o Aknoadi funcione. Mas vamos analisar o problema.
O Apparmor é um utilitário de segurança administrativa que coloca restrições nos programas. Quando o Ubuntu é configurado, o utilitário administrativo apparmor aplica um perfil de segurança em / usr / sbin / mysqld-akonadi. Esse perfil está em /etc/apparmor.d/usr.sbin.mysqld-akonadi "e contém a seguinte especificação, que abreviei aqui para a situação específica:
profile /usr/sbin/mysqld {
## [stuff snipped]
@{HOME}/.local/share/akonadi/** rwk,
}
Não tenho certeza, mas acredito que "r" significa "read", "w" significa "write" e "k" significa "mknod". Isso está dizendo que o mysqld tem permissão para criar arquivos e diretórios em qualquer lugar sob o diretório aknoadi do usuário.
Onde / usr / sbin / mysqld-akonadi está falhando de acordo com o /var/log/kern.log é:
Apr 11 14:14:42 adiron kernel: [572346.502653] type=1400 audit(1334168082.226:675): apparmor="ALLOWED" operation="mknod" parent=31088 profile="/usr/sbin/mysqld-akonadi///usr/sbin/mysqld" name="/home/xxxxxx/.local/share/akonadi/db_data/adiron.lower-test" pid=31090 comm="mysqld" requested_mask="c" denied_mask="c" fsuid=1000 ouid=1000
Ele está dizendo que está falhando exatamente na chamada "mknod". Estranho, pois acho que está configurado para isso.
No entanto, "homem apparmor" contém as seguintes linhas:
"Um processo confinado não pode chamar mknod (2) para criar dispositivos de caracteres ou blocos."
Essa restrição parece estar em vigor, independentemente da especificação no perfil específico. Um processo "confinado" é aquele que está no modo "impor". Emitir o comando "aa-reclamar" mencionado acima "desconfigura" o processo e, em seguida, é permitido criar os soquetes, apenas reclamando sobre isso, juntamente com tudo o que é permitido fazer, aumentando seus logs.
Não está claro se com esta restrição aparentemente incircunciável do uso de "mknod" na criação dos sockets mysql pode ser configurado no lado akonadi. Em qualquer caso, aqueles parecem ser apenas "avisos" no log Akonadi, e parece que os erros reais são de coisas como:
Apr 11 13:00:10 adiron kernel: [567875.200843] type=1400 audit(1334163610.926:57): apparmor="DENIED" operation="open" parent=15318 profile="/usr/sbin/mysqld-akonadi///usr/sbin/mysqld" name="/home/xxxxx/.local/share/akonadi/db_data/ibdata1" pid=15320 comm="mysqld" requested_mask="rw" denied_mask="rw" fsuid=1000 ouid=1000
Apr 11 13:00:11 adiron kernel: [567875.355533] type=1400 audit(1334163611.078:58): apparmor="DENIED" operation="open" parent=15327 profile="/usr/sbin/mysqld-akonadi///usr/sbin/mysqld" name="//home/xxxxx/.local/share/akonadi/mysql.conf" pid=15329 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
dos quais o Apparmor parece estar configurado para permitir. Eu estou em uma perda neste. No entanto, desligar a segurança no modo de reclamação faz com que funcione. Eu acho que você poderia apenas remover o usr.sbin.mysql-akonadi do /etc/apparmor.d/ e isso seria igualmente eficaz.