Manager, Developer Education
O MySQL é um sistema de gerenciamento de banco de dados de código aberto, que é geralmente instalado como parte da pilha popular LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Ele implementa o modelo relacional e utiliza a linguagem SQL (Structured Query Language) para gerenciar seus dados.
Este tutorial de início rápido explicará como instalar a versão 8 do MySQL em um servidor Ubuntu 20.04.
Para seguir este tutorial, você vai precisar do seguinte:
Para instalar o MySQL, primeiro atualize o índice do pacote de seu servidor, se ainda não o tiver feito:
- sudo apt update
Depois disso, instale o pacote mysql-server
:
- sudo apt install mysql-server
Execute o script de segurança incluído do MySQL com o sudo
:
- sudo mysql_secure_installation
Isso levará você através de uma série de prompts onde é possível fazer algumas 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.
Se você escolher configurar o plug-in de validar senha, o script pedirá que escolha um nível de validação de senha, com o nível mais fraco sendo 0
e o mais forte sendo 2
:
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
O próximo prompt será para digitar e confirmar uma senha para o usuário root do MySQL:
OutputPlease set the password for root here.
New password:
Re-enter new password:
Então, o script perguntará se você deseja continuar com a senha que acabou de digitar, ou se prefere digitar uma nova. Se estiver satisfeito com sua senha, 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
A partir daí, pressione Y
e, depois, ENTER
para aceitar as configurações padrão para todas as perguntas subsequentes.
Para usar uma senha para se conectar ao MySQL como root, será necessário mudar o método do plug-in de autenticação padrão auth_socket
para outro, como o caching_sha2_password
ou o mysql_native_password
. Para fazer isso, abra o prompt do MySQL do seu terminal:
- sudo mysql
A partir daí, execute uma instrução ALTER USER
para alterar qual plug-in de autenticação ele utiliza e defina uma nova senha. Certifique-se de alterar a password
para uma senha forte de sua escolha. Sabia que este comando mudará a senha root que você definiu no Passo 2:
- ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
Nota: o caching_sha2_password
é o plug-in de autenticação preferencial do MySQL, pois ele fornece uma criptografia de senha mais segura do que o plug-in mais antigo (mas ainda assim bastante utilizado), o mysql_native_password
.
No entanto, muitos aplicativos PHP (phpMyAdmin, por exemplo) não funcionam de maneira confiável com o caching_sha2_password
. Se planeja utilizar este banco de dados com um aplicativo PHP você pode, em vez disso, querer definir o root para autenticar-se com o mysql_native_password
:
- ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Então, execute o comando FLUSH
o qual diz para o servidor recarregar as tabelas de permissões e colocar as suas alterações em vigor:
- FLUSH PRIVILEGES;
Verifique novamente os métodos de autenticação utilizados pelos seus usuários para confirmar que o raiz já não autentica utilizando o plug-in auth_socket:
- SELECT user,authentication_string,plugin,host FROM mysql.user;
Output+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| debian-sys-maint | $A$005$lS|M#3K #XslZ.xXUq.crEqTjMvhgOIX7B/zki5DeLA3JB9nh0KwENtwQ4 | caching_sha2_password | localhost |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| root | *3636DACC8616D997782ADD0839F92C1571D6D78F | caching_sha2_password | localhost |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
5 rows in set (0.00 sec)
Assim que confirmar isso no seu servidor, saia do shell MySQL:
- exit
De maneira alternativa, em vez do root, você poderia se conectar ao MySQL com um usuário dedicado. Para criar esse usuário, abra o shell do MySQL novamente:
- sudo mysql
Nota: se tiver a autenticação por senha habilitada para root (como descrito nos parágrafos anteriores), será necessário executar o seguinte:
- mysql -u root -p
A partir daí, crie um novo usuário e dê a ele uma senha forte:
- CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';
Então, conceda ao seu novo usuário os privilégios adequados. Por exemplo, é possível conceder os privilégios de usuário para todas as tabelas dentro do banco de dados, além do poder de adicionar, alterar e remover os privilégios de usuário, com este comando:
- GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;
Após isso, saia do shell do MySQL:
- exit
Agora, você tem uma configuração básica do MySQL instalada em seu servidor. Aqui estão alguns exemplos de passos seguintes:
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!