O MySQL é um sistema de gerenciamento de banco de dados de código aberto, que é geralmente instalado como parte da pilha popular LEMP (Linux, Nginx, MySQL/ MariaDB, PHP/Python/Perl). Ele implementa o modelo relacional e a Linguagem de Consulta Estruturada (SQL) para gerenciar e consultar dados.
Este tutorial explica como instalar a versão 8 do MySQL em um servidor CentOS 8.
Para completar este tutorial, será necessário um servidor executando o CentOS 8. Este servidor deve ter um usuário não raiz com privilégios administrativos e um firewall configurado com o firewalld
. Para configurar isso, consulte nosso Guia de configuração inicial de servidor para o CentOS 8.
No CentOS 8, a versão 8 do MySQL está disponível nos repositórios padrão.
Execute o seguinte comando para instalar o pacote mysql-server
, bem como um número das dependências:
- sudo dnf install mysql-server
Quando solicitado, pressione y
e, depois, ENTER
para confirmar que deseja continuar.
Output. . .
Install 49 Packages
Total download size: 46 M
Installed size: 252 M
Is this ok [y/N]: y
Com isso, o MySQL está instalado em seu servidor, mas ele ainda não está em funcionamento. O pacote que acabou de instalar configura o MySQL para executar como um serviço do systemd
chamado de mysqld.service
. Para usar o MySQL, será necessário iniciá-lo com o comando systemctl
:
- sudo systemctl start mysqld.service
Para verificar que o serviço está funcionando corretamente, execute o seguinte comando a seguir. Note que para muitos comandos systemctl
— incluindo o start
e, como mostrado aqui, o status
— você não precisa incluir .service
após o nome do serviço.
- sudo systemctl status mysqld
Caso o MySQL tenha sido iniciado com sucesso, o resultado mostrará que o serviço do MySQL está ativo:
Output● mysqld.service - MySQL 8.0 database server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2020-03-12 14:07:41 UTC; 1min 7s ago
Main PID: 15723 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 5056)
Memory: 474.2M
CGroup: /system.slice/mysqld.service
└─15723 /usr/libexec/mysqld --basedir=/usr
Mar 12 14:07:32 cent-mysql-3 systemd[1]: Starting MySQL 8.0 database server...
Mar 12 14:07:32 cent-mysql-3 mysql-prepare-db-dir[15639]: Initializing MySQL database
Mar 12 14:07:41 cent-mysql-3 systemd[1]: Started MySQL 8.0 database server.
Em seguida, defina o MySQL para iniciar sempre que o servidor for iniciado com o seguinte comando:
- sudo systemctl enable mysqld
Nota: caso queira alterar este comportamento e desativar o MySQL de inicializar na inicialização do servidor, execute:
- sudo systemctl disable mysqld
O MySQL está instalado, em execução e habilitado em seu servidor. Em seguida, vamos ver como fortalecer a segurança do seu banco de dados usando um script do shell que veio pré-instalado com sua instância do MySQL.
O MySQL inclui um script de segurança que permite que você altere algumas opções de configuração padrão, de forma a melhorar a segurança do MySQL.
Para usar o script de segurança, execute o seguinte comando:
- sudo mysql_secure_installation
Isso levará você por uma série de prompts, perguntando se deseja fazer certas alterações nas opções de segurança de sua instalação do MySQL. O primeiro prompt perguntará se você gostaria de definir o plug-in de validar senha, que pode ser usado para testar a força de sua senha do MySQL.
Caso você escolha configurar o plug-in de validar senha, o script solicitará que você escolha um nível de validação de senha. O nível mais forte — que você seleciona ao digitar 2
— exigirá que sua senha tenha pelo menos oito caracteres de tamanho e inclua uma mistura de caracteres em maiúsculo, minúsculo, numérico e especial:
OutputSecuring the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
Independentemente de você escolher configurar o plug-in de validar senha, o próximo prompt será o de definir uma senha para o usuário root do MySQL. Digite e, em seguida, confirme uma senha segura de sua escolha:
OutputPlease set the password for root here.
New password:
Re-enter new password:
Caso tenha usado o plug-in de validar senha, você receberá o feedback da força dela. Então, o script perguntará se você deseja continuar com a senha que acabou de digitar, ou se quer digitar uma nova. Supondo que esteja satisfeito com a força da senha que acabou de digitar, digite Y
para continuar o script:
OutputEstimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y
Seguindo isso, pressione Y
e então ENTER
para aceitar as configurações padrão para todas as perguntas subsequentes. Isso removerá alguns usuários anônimos e o banco de dados de teste, desativará os logins remotos para a raiz e carregará essas novas regras para que o MySQL respeite imediatamente as alterações que você fez.
Com isso, você instalou e protegeu o MySQL em seu servidor CentOS 8. Como um passo final, vamos testar que o banco de dados está acessível e funcionando como esperado.
Você pode verificar sua instalação e obter informações a respeito dela se conectando à ferramenta mysqladmin
, um cliente que permite que execute comandos administrativos. Use o seguinte comando para conectar ao MySQL como root (-u root
), solicitar uma senha (-p
) e retornar a versão da instalação:
- mysqladmin -u root -p version
Você verá um resultado parecido com este:
mysqladmin Ver 8.0.17 for Linux on x86_64 (Source distribution)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Server version 8.0.17
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 2 hours 52 min 37 sec
Threads: 2 Questions: 20 Slow queries: 0 Opens: 131 Flush tables: 3 Open tables: 48 Queries per second avg: 0.001
Isso indica que sua instalação foi bem-sucedida.
Caso queira se conectar ao MySQL e começar a adicionar dados a ele, execute o seguinte:
- mysql -u root -p
Assim como o comando mysqladmin
anterior, este comando inclui a opção -u
, que permite que você especifique o usuário a que gostaria de se conectar (root neste caso) e a opção -p
, que diz ao comando para solicitar a senha do usuário que você definiu no passo anterior.
Após digitar sua senha root do usuário do MySQL, você verá o prompt do MySQL:
-
A partir daí, comece a usar sua instalação do MySQL para criar e carregar bancos de dados e começar a executar consultas.
Ao seguir este tutorial, você instalou e protegeu o MySQL em um servidor CentOS 8. A partir daqui, você pode instalar o Nginx e o PHP para ter uma pilha LEMP totalmente operacional em seu servidor.
Para aprender mais sobre como usar o MySQL, recomendamos que você revise a documentação oficial.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!