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:
- Pare o servidor se estiver em execução (use
mysqladmin shutdown
). - 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 comouser_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. - 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 Unixuser_name
antes de aceitar qualquer conexão. - 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çõesmy.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.)