MySQL é um sistema de gerenciamento de banco de dados relacional (RDBMS) de código aberto, poderoso e amplamente utilizado que organiza os dados em tabelas de dados únicas ou múltiplas onde os tipos de dados podem estar relacionados a cada de outros. A Linguagem de Consulta Estruturada (SQL) trabalha com RDBMSes, e quando alguém deseja armazenar ou gerenciar um grande volume de dados, adquirirá o serviço de banco de dados relacional e SQL.
Este artigo mostra como configurar o MySQL em seu servidor Ubuntu 18.04. Ele também mostra como habilitar a autenticação, seguida pelo gerenciamento de serviço. No final, você também aprenderá a testar o serviço para verificar a configuração bem-sucedida.
Etapa 1: instalação do cliente MySQL
Instale o cliente mysql para se conectar remotamente com o servidor:
sudo apt install mysql-client -y
Verifique a versão do cliente para verificar se a instalação foi bem-sucedida:
mysql -V
Saída:
mysql Ver 8.0.28-0ubuntu0.20.04.3 para Linux em x86_64 ((Ubuntu))
Agora você pode usar o seguinte comando para estabelecer uma conexão remota com o servidor MySQL:
mysql -u -p -h HOSTNAME_OR_IP
Etapa 2: instalação do servidor MySQL
Antes de instalar o MySQL, certifique-se de que o servidor Ubuntu esteja instalado e configurado corretamente. O servidor Ubuntu 18.04, por padrão, contém a versão mais recente do MySQL 5.7 nos repositórios. Use o comando apt para atualizar os pacotes do sistema do repositório da seguinte forma:
sudo apt update
Agora use o seguinte comando para instalar o pacote do servidor MySQL:
sudo apt install mysql-server -y
Etapa 3: configuração do MySQL
Nesta era de ameaças persistentes de segurança cibernética, é um padrão alterar as opções padrão após a instalação bem-sucedida do servidor. Esta seção o orienta na configuração do servidor MySQL para eliminar opções padrão inseguras, como logins root remotos, contas de usuário padrão, etc. O MySQL facilita essa tarefa fazendo automaticamente todas as alterações com a ajuda de um script de segurança simples.
sudo mysql_secure_installation
O script solicita várias opções solicitando respostas Sim ou Não para alterar a segurança padrão do MySQL. Por exemplo, o primeiro prompt solicita se você deseja configurar um plug-in para validar senhas, responda sim E continue.
O próximo prompt pede para definir a senha da conta de usuário root do MySQL. Você pode notar que habilitar o plugin Validate Password permite definir a força da senha em relação a três níveis de política de segurança de senha e comprimento.
Digite o número que você deseja escolher para definir a força da senha. O sistema irá então pedir para definir a nova senha e redigitá-la para confirmação, da seguinte forma:
Você pode notar que após definir a senha, ele exibe a força e pergunta se você deseja continuar.
Agora ele fará perguntas subsequentes:
- Para remover o usuário de teste anônimo
- Desabilite o login remoto do usuário root
- Remova os bancos de dados de teste
- Recarregue a tabela de privilégios para salvar todas as alterações
Tipo S para continuar com as configurações padrão para definir as regras de segurança.
Versões mais antigas do MySQL (antes de 5.7.6) exigem que você inicialize manualmente o diretório do banco de dados. Enquanto para as versões posteriores, execute o seguinte comando:
mysqld –inicializar
Etapa 4: ajustes de autenticação do usuário MySQL
Independentemente de estabelecer uma senha para uma conta de usuário MySQL, a configuração de autenticação padrão desabilita o uso de senhas durante o estabelecimento da conexão. Em vez disso, ele autentica automaticamente o usuário com a ajuda do auth_socket plugar. O plugin é um ótimo recurso para usabilidade, porém, não é prático se você deseja acessar seu banco de dados a partir de um cliente remoto.
Como o acesso ao banco de dados sem senha dificulta o processo de trabalho quando acessado por um programa externo, esta seção resume duas maneiras de autenticar o usuário no estabelecimento da conexão:
1. Autenticação de usuário raiz com senha
Para garantir a autenticação do usuário via senha, você pode alterar o plugin de "auth_socket" para "mysql_native_password." Para isso, abra a tela de prompt do MySQL usando o sudo mysql comando e verifique o plug-in que está em uso para autenticação do usuário, conforme a seguir:
SELECT usuário, authentication_string, plugin, host FROM mysql.user;
A captura de tela acima mostra que o cliente raiz se autentica usando o plug-in "auth_socket". Para inicializar a autenticação do cliente root com uma senha, use a instrução ALTER USER para definir o plug-in "mysql_native_password".
ALTER USER 'root'@'localhost' IDENTIFICADO COM mysql_native_password BY 'password';
Salve as alterações acima da seguinte forma:
PRIVILÉGIOS FLUSH;
A instrução MySQL "FLUSH PRIVILEGES" salva as alterações nas tabelas do banco de dados feitas pelas cláusulas ALTER, INSERT, UPDATE e DELETE.
Agora, para verificar as estratégias de autenticação utilizadas por cada usuário e garantir que o plugin "auth_socket" não seja usado pelo cliente root, execute novamente o comando:
SELECT usuário, authentication_string, plugin, host FROM mysql.user;
Agora, o usuário root pode se conectar ao servidor autenticando-se através do seguinte comando:
sudo mysql -u root -p
2. Crie um usuário dedicado
Outra maneira de habilitar a autenticação sem usar mysql_native_password é criar um usuário dedicado da seguinte forma:
sudo mysql
Crie uma nova conta e conceda todos os privilégios para atribuir controle de nível administrativo ao novo usuário. Em seguida, saia do prompt do MySQL. Execute o seguintes consultas SQL um por um para conseguir isso:
CRIAR USUÁRIO 'ubuntu'@'localhost' IDENTIFICADO POR 'senha';
CONCEDER TODOS OS PRIVILÉGIOS EM *.* PARA 'ubuntu'@'localhost' COM OPÇÃO DE CONCESSÃO;
saída
Gerencie e teste o serviço MySQL com systemctl
Defina o serviço para ser executado na inicialização do servidor Ubuntu usando o systemctl habilitar comando da seguinte forma:
sudo systemctl habilitar mysql
Além disso, você pode testar o servidor para estar funcionando digitando:
sudo systemctl status mysql
Ou
sudo systemctl status mysql.service
O serviço é executado automaticamente após a instalação do MySQL, porém, se não, você pode iniciar o serviço usando o seguinte comando:
sudo systemctl start mysql
Começando com o MySQL Server no Ubuntu
MySQL é um sistema de gerenciamento de banco de dados de código aberto, amigável, escalável e robusto. Além disso, é parte integrante do modelo de pilha LAMP/LEMP ou das tecnologias de aplicação web. Este sistema de gerenciamento de banco de dados relacional (RDBMS) oferece instalação simples e fácil configuração em suas versões recentes.
Este artigo o orienta na construção de uma configuração básica do MySQL que o ajudará comece aprendendo como o MySQL funciona. Ele também abrange algumas medidas iniciais de segurança importantes em sua configuração para evitar as brechas na configuração padrão. Você pode aprender mais sobre como proteger o MySQL seguindo algumas dicas de segurança avançadas.
9 dicas avançadas de segurança do MySQL
Leia a seguir
Tópicos relacionados
- Linux
- base de dados
- SQL
- Aplicativos Linux
- Instalar software
- Ubuntu
Sobre o autor
Rumaisa é redatora freelancer na MUO. Ela já desempenhou muitos cargos, de matemática a entusiasta de segurança da informação, e agora está trabalhando como analista de SOC. Seus interesses incluem ler e escrever sobre novas tecnologias, distribuições Linux e qualquer coisa relacionada à Segurança da Informação.
Assine a nossa newsletter
Junte-se à nossa newsletter para dicas de tecnologia, análises, e-books gratuitos e ofertas exclusivas!
Clique aqui para assinar