Quais as boas práticas de configuração do MySQL?

De Wiki
Ir para: navegação, pesquisa

O MySQL é um sistema de gerenciamento de banco de dados relacional de código aberto, que usa a linguagem estruturada SQL para gerenciar os dados armazenados. Seguem sugestões de boas práticas para configuração do MySQL.

Executar o script "mysql_secure_installation"

1. Acesse o shell do linux como "root" e realize a configuração básica de segurança do MySQL:
[root@meu_servidor~]# mysql_secure_installation


2. O comando acima iniciará um questionário com algumas configurações básicas que devem ser realizadas:
Enter current password for root (enter for none): 
OK, successfully used password, moving on...


3. Como foi instalado apenas o pacote MySQL, o serviço permanece sem senha. Sendo assim, pressione "Enter" e, em seguida, realize as seguintes configurações:
Set root password? [Y/n] y


4. Após selecionar “y”, o MySQL configurará uma nova senha para o usuário root do serviço.
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

Acessar a administração do banco de dados via shell

1. Para acessar a administração do banco de dados via shell, execute o seguinte comando:
[root@meu_servidor~]# mysql -u root -p 
Enter password:
IMPORTANTE: Para que sua senha não seja gravada no histórico do Linux, não inclua a senha na linha de comando ao acessar o banco (Ex.: mysql -u root -p <senha>).

Criar uma base de dados e definir o(s) e usuário(s) que poderão acessá-la

1. Para criar uma base de dados e definir o(s) usuário(s) que terão acesso a ela, execute o comando abaixo:
[root@meu_servidor~]# mysql -u root -p
Enter password:

mysql> CREATE DATABASE <NomedaBase>;

mysql> CREATE USER '<SeuUsuário>'@'<IPOrigem>' IDENTIFIED BY '<SuaSenha>'; GRANT <Privilégios> ON `<NomedaBase>`.* TO '<SeuUsuário>'@'<IPOrigem>';


NOTAS:
  • Substitua “SeuUsuário” pelo usuário que se conecta ao banco, ou seja, o usuário da aplicação que se conecta à base de dados.
  • Substitua <IPOrigem> pelo endereço IP que terá acesso ao servidor, como por exemplo, seu endereço IP externo ou de um servidor de VPN. Para acesso a partir do mesmo servidor, use ‘localhost’. Caso não deseje restringir o acesso por IP deixe as áspas simples sem conteúdo (‘’).
  • Substitua "Privilégios" pelas operações liberadas (Ex.: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, etc). Para tornar o usuário um administrador, use ALL PRIVILEGES para liberar todos os privilégios.
2. Para aplicar permissões aos bancos de dados, execute o comando a seguir:
mysql> FLUSH PRIVILEGES;