Não é possível definir um diretório de banco de dados diferente para mysql (Errcode: 13 - Permission denied) [duplicate]

1

Estou tentando realocar o diretório do banco de dados para minha instalação do mysql para um ssd de instalação recente.

Configuração:

Ubuntu 16.04 mysql Ver 14.14 Distrib 5.7.12, for Linux (x86_64) using EditLine wrapper

Eu modifiquei /etc/mysql/my.cnf para incluir um novo diretório de banco de dados:

datadir = /mnt/5abeaa6e-7536-4213-bb3e-97aa9a81be16/mysql

Agora, na execução de sudo service mysql start , aparece um erro de permissões:

mysqld[9002]: mysqld: Can't change dir to '/mnt/5abeaa6e-7536-4213-bb3e-97aa9a81be16/mysql/' (Errcode: 13 - Permission denied)

Eu executei os dois comandos chmod e chown recursivos no novo diretório para fazer a correspondência e a leitura do stat agora mostra o seguinte:

$ stat /var/lib/mysql
  File: '/var/lib/mysql'
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 812h/2066d  Inode: 13381090    Links: 8
Access: (0700/drwx------)  Uid: (  127/   mysql)   Gid: (  134/   mysql)
Access: 2016-06-23 09:42:37.687378790 -0700
Modify: 2016-06-23 09:46:04.679025933 -0700
Change: 2016-06-23 09:46:04.679025933 -0700
 Birth: -

$ stat /mnt/5abeaa6e-7536-4213-bb3e-97aa9a81be16/mysql
  File: '/mnt/5abeaa6e-7536-4213-bb3e-97aa9a81be16/mysql'
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 820h/2080d  Inode: 3276801     Links: 3
Access: (0700/drwx------)  Uid: (  127/   mysql)   Gid: (  134/   mysql)
Access: 2016-06-23 09:45:16.190998487 -0700
Modify: 2016-06-22 18:37:37.707197266 -0700
Change: 2016-06-23 09:45:16.190998487 -0700
 Birth: -

Eu também modifiquei /etc/apparmor.d/usr.sbin.mysqld para

# Allow data dir access
#  /var/lib/mysql/ r,
#  /var/lib/mysql/** rwk,
/mnt/5abeaa6e-7536-4213-bb3e-97aa9a81be16/mysql/ r,
/mnt/5abeaa6e-7536-4213-bb3e-97aa9a81be16/mysql/** rwk,

Qualquer ideia seria apreciada.

    
por David English 23.06.2016 / 19:17

1 resposta

1

De acordo com este site , você precisa editar algumas configurações e executar alguns comandos para concluir a configuração.

Adicione o seguinte a /etc/apparmor.d/usr.sbin.mysqld :

/NEWSQLPATH/ r,
/NEWSQLPATH/** rwk,

Em seguida, execute:

sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.mysqld
sudo /etc/init.d/apparmor reload

Você também pode adicionar isso a /etc/apparmor.d/tunables/alias :

alias /var/lib/mysql/ -> /newpath/,

( As vírgulas no final das linhas são importantes. )

    
por TheWanderer 23.06.2016 / 20:55