Esta pergunta é um pouco antiga, mas não veja uma com a resposta correta.
Então eu me deparei com esse problema com AWS e EFS usando um centos AMI para executar o mysql.
Existem dois problemas que ocorrem aqui. As permissões em torno dos arquivos mysql regulares e as permissões em torno do soquete mysql e seu arquivo de bloqueio.
Parece que o socket mysql é criado com um contexto de mysqld_var_run_t e o arquivo de lock com um contexto de mysqld_db_t como são os arquivos mysql regulares.
Agora, as montagens do NFS geralmente recebem um contexto de nsf_t.
Parece que uma montagem nfs só pode ter contexto se montada. Então, o que eu tive que fazer, ao montar via nfs, foi o seguinte:
- monte o compartilhamento NFS com o contexto mysqld_db_t.
- mova o socket mysql para um diretório diferente com o contexto mysqld_db_t.
Então, no fstab mount é assim:
nfs-share-url:/ /data nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noatime,context="system_u:object_r:mysqld_db_t:s0" 0 0
my.cnf tem esta aparência:
datadir=/data
socket=/var/lib/mysql-files/mysql.sock
Assim, as permissões estão corretas em todos os arquivos e o mysql agora armazena dados no compartilhamento EFS NFS.