execute o servidor MySQL independente e como um usuário

1

Eu gostaria de rodar um servidor MySQL em uma máquina na qual eu não tenho / poucas permissões, então eu gostaria que todos os dados e todos os sockets estivessem contidos em um único diretório, e eu obviamente gostaria de rodar como usuário em vez de como um serviço. Tudo isso está no linux.

Como eu faria isso?

    
por codersarepeople 20.08.2012 / 16:44

1 resposta

2

Há muitas informações sobre como fazer isso por aí, se você usar o Google para isso. (Ou visite a página man .)

Na página de documentação on-line do MySQL :

No Unix, o mysqld do servidor MySQL pode ser iniciado e executado por qualquer usuário. No entanto, você deve evitar a execução do servidor como o usuário raiz do Unix por motivos de segurança. Para alterar mysqld para ser executado como um usuário Unix normal não privilegiado user_name , você deve fazer o seguinte:

  1. Pare o servidor se estiver em execução (use mysqladmin shutdown ).
  2. Altere os diretórios e arquivos do banco de dados para que user_name tenha privilégios para ler e gravar arquivos neles (talvez seja necessário fazer isso como o usuário raiz do Unix): shell> chown -R user_name /path/to/mysql/datadir Se você não fizer isso, o servidor não será possível acessar bancos de dados ou tabelas quando ele for executado como user_name. Se diretórios ou arquivos dentro do diretório de dados do MySQL forem links simbólicos, chown -R pode não seguir links simbólicos para você. Se isso não acontecer, você também precisará seguir esses links e alterar os diretórios e arquivos para os quais eles apontam.
  3. Inicie o servidor como usuário user_name. Outra alternativa é iniciar o mysqld como usuário root do Unix e usar a opção --user=user_name . mysqld é inicializado e, em seguida, alterna para executar como usuário Unix user_name antes de aceitar qualquer conexão.
  4. Para iniciar o servidor como o usuário especificado automaticamente no momento da inicialização do sistema, especifique o nome de usuário adicionando uma opção de usuário ao arquivo de opções [mysqld] group do /etc/my.cnf ou o arquivo de opções my.cnf no diretório de dados do servidor . Por exemplo:

[mysqld]

user=user_name

Se sua própria máquina Unix não estiver segura, você deve atribuir senhas às contas-raiz do MySQL nas tabelas de permissões. Caso contrário, qualquer usuário com uma conta de login nessa máquina pode executar o cliente mysql com uma opção --user=root e executar qualquer operação. (É uma boa idéia atribuir senhas a contas do MySQL em qualquer caso, mas especialmente quando existem outras contas de login no host do servidor.)

    
por 20.08.2012 / 17:10

Tags