우분투 12.04를 실행 중이고 mysql 서버의 데이터 디렉터리(동일한 소유권 및 권한 유지)를 /var/lib/mysql에서 /etc/mysql/my.cnf의 /u/apps/mysql로 옮긴 다음 /etc를 업데이트했습니다. /apparmor.d/usr.sbin.mysqld에는 다음이 포함됩니다.
/u/apps/mysql r,
/u/apps/mysql/** rwk,
하지만 오류가 발생합니다.
InnoDB: Reading tablespace information from the .ibd files...
130906 13:55:31 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name .
InnoDB: File operation call: 'opendir'.
InnoDB: Cannot continue operation.
그래서 의류를 비활성화하고 시작합니다. 열려고 하는 디렉토리가 '.'인 것 같습니다. 나는 /u/apps/mysql이 될 것이라고 가정했지만 분명히 그렇지 않습니다. 의류 구성을 변경한 이후로 확실히 더 발전했지만 그것이 무엇에 방해가 되는지 전혀 모르겠습니다. 무슨 일인지 아이디어가 있나요? 감사해요...
답변1
mysql datadir에 권한 문제가 있는 것 같습니다.
130906 13:55:31 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
datadir의 권한을 변경하고 소유권을 mysql로 변경할 수도 있습니다. 이 작업이 완료되면 Mysql을 다시 시작하십시오.
답변2
글쎄, 원래 항목이 "/var/lib/mysql/** rwk"이고 /u/apps/mysql이 분명히 mysql을 소유했을 때 apparmor가 "/u/apps/mysql/** rwk"에서 문제를 일으켰는지 잘 모르겠습니다. .mysql, 그러나 설정을 "/u/apps/** rwk"로 변경하면 작동했습니다.