Executa o mysqld sob um usuário diferente (linux)

2

Eu tenho tentado iniciar o mysqld sob um usuário diferente, assim como com um caminho de dados diferente. Fiz isso modificando o arquivo my.cnf da seguinte forma:

[mysqld]
datadir=/bob/database
socket=/bob/database/mysql.sock
user=bob
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/bob/mysqld.log
pid-file=/bob/mysqld.pid

Sempre que eu tento iniciar o daemon mysql executando service mysqld start duas coisas acontecem

  1. Eu recebo o seguinte erro

    ERROR: 1005  Can't create table 'db' (errno: 13)
    121010 13:39:46 [ERROR] Aborting
    121010 13:39:46 [Note] /usr/libexec/mysqld: Shutdown complete
    
  2. A pasta / bob / e tudo nela tem as permissões mysql: mysql que me fazem pensar que a opção user em my.cnf não funcionou e porque eu executo o comando service start como root ele pode apenas chown dir como mysql: mysql sem ter problemas. Ao mesmo tempo em que executo esse comando recebo o seguinte aviso:

    121010 13:39:46 [Warning] Ignoring user change to 'mysql' because the user was set to 'bob' earlier on the command line
    

Qualquer ajuda seria muito apreciada.

*** ATUALIZAÇÃO

Se em vez de ter o usuario bob, coloco o usuario mysql e altero as permissões da pasta bob para o mysql tudo funciona bem. Portanto, este é um problema com a mudança do usuário e não um caminho de dados diferente.

    
por Flo 10.10.2012 / 19:54

3 respostas

1

Você pode querer verificar o script init, como /etc/init.d/mysqld ou algo parecido, para ver se ele inicializa o banco de dados mysql com mysql user.

    
por 28.03.2016 / 07:38
0

eu acho que mudar o usuário no mysql-config só tem efeito quando o mysqld é iniciado durante o processo de inicialização - veja aqui

    
por 10.10.2012 / 20:11
0

Como Jerome explicou, temos que mudar mais um arquivo

etc/init.d/mysql
su - mysql -s ... become su - bob -s ...

mas com o Ubuntu 18.04 também precisamos de alterar este ...

/etc/systemd/system/multi-user.target.wants/mysql.service
user=mysql become user=bob

    
por 07.06.2018 / 04:50

Tags