O MySQL é uma das bases de dados de código aberto mais populares. Destaca-se pelo seu de­sem­pe­nho, fi­a­bi­li­dade e es­ca­la­bi­li­dade e tem inúmeras áreas de aplicação, desde pequenos sistemas de alo­ja­mento web até grandes apli­ca­ções em­pre­sa­ri­ais. A seguir, mostramos passo a passo o processo de ins­ta­la­ção do MySQL no Ubuntu 20.04. Assim, terá um sistema de gestão de bases de dados fiável.

Quais são os re­qui­si­tos do MySQL que o Ubuntu 20.04 deve cumprir?

Em termos gerais, os re­qui­si­tos de sistema para utilizar o MySQL no Ubuntu 20.04 são re­la­ti­va­mente baixos e a maioria dos sistemas modernos de desktop ou servidor deve ser capaz de cumprir esses re­qui­si­tos. No entanto, é im­por­tante observar e ter em mente que os re­qui­si­tos podem variar de­pen­dendo do uso pre­ten­dido e do tamanho do banco de dados. Se, por exemplo, você estiver exe­cu­tando um apli­ca­tivo mais abran­gente que utiliza grandes bancos de dados ou consultas complexas, serão ne­ces­sá­rios re­qui­si­tos maiores de RAM e pro­ces­sa­dor para garantir um melhor de­sem­pe­nho. Ter uma grande ca­pa­ci­dade de disco rígido é ideal para facilitar o cres­ci­mento a longo prazo e permitir bancos de dados adi­ci­o­nais.

Para uma co­mu­ni­ca­ção fluida entre o servidor MySQL e os uti­li­za­do­res, também é ne­ces­sá­rio verificar de­ta­lha­da­mente a con­fi­gu­ra­ção da rede e do firewall. Além disso, o servidor MySQL deve ter um endereço IP estático para evitar problemas de conexão.

No que diz respeito ao hardware e software, o MySQL exige os seguintes re­qui­si­tos mínimos:

  • Pro­ces­sa­dor (CPU): ar­qui­te­tura x86-64, mín. 1 GHz (Dual-Core)
  • Memória (RAM): mín. 1 GB
  • Sistema operativo: Ubuntu 20.04, uti­li­za­dor sudo com direitos root
  • Firewall: porta 3306 do MySQL aberta
  • Espaço no disco rígido: mín. 500 MB
  • Conexão à Internet: para des­car­re­gar pacotes e conectar-se ao servidor MySQL

Ins­ta­la­ção do MySQL no Ubuntu 20.04: ins­tru­ções passo a passo

Para instalar o MySQL no Ubuntu 20.04, pode utilizar o sistema de gestão de pacotes APT (Advanced Package Tool). Após concluir o processo de ins­ta­la­ção, deve instalar e con­fi­gu­rar o MySQL antes de o utilizar de forma produtiva. Para isso, deve definir a palavra-passe de ad­mi­nis­tra­dor (root) e o acesso para uti­li­za­do­res externos, entre outros. No nosso guia, mostramos-lhe todos os passos que deve seguir durante o processo de ins­ta­la­ção.

Passo 1. Atualizar a lista de pacotes

Em primeiro lugar, recomenda-se atualizar a lista de pacotes. Para isso, execute o seguinte comando:

$ sudo apt update
bash

Passo 2. Instalar o servidor MySQL

Agora instale o pacote do servidor MySQL com o APT:

$ sudo apt install mysql-server
bash

Para verificar o fun­ci­o­na­mento do servidor, pode iniciá-lo ma­nu­al­mente com o comando systemctl:

$ sudo systemctl start mysql.service
bash

Passo 3. Con­fi­gu­rar o MySQL

Após instalar o MySQL, é im­por­tante ter em conta que ele ainda não cumpre as normas de segurança re­co­men­da­das. Para resolver isso, o MySQL fornece um script que altera o modo de con­fi­gu­ra­ção para proteger o servidor. Desta forma, ele se encarrega de definir a senha de ad­mi­nis­tra­ção (root), eliminar uti­li­za­do­res anónimos e res­trin­gir o acesso remoto, por exemplo.

No entanto, para executar o script cor­re­ta­mente, é ne­ces­sá­rio tomar certas pre­cau­ções, pois a aplicação pretende alterar a palavra-passe da conta root, que está de­sa­ti­vada por pre­de­fi­ni­ção no Ubuntu. Se quiser evitar erros, ajuste o método de au­ten­ti­ca­ção do uti­li­za­dor root.

Inicie o símbolo do sistema do MySQL:

$ sudo mysql
bash

Use a instrução ALTER USER para definir uma senha de ad­mi­nis­tra­ção (root):

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
bash

Feche o símbolo do sistema MySQL:

mysql> exit
bash

Execute o script de segurança:

$ sudo mysql_secure_installation
bash

Para se au­ten­ti­car como uti­li­za­dor root, introduza o seguinte comando:

$ mysql -u root -p
bash

Depois de concluir o script, pode voltar a alterar o método de au­ten­ti­ca­ção dis­po­ní­vel por pre­de­fi­ni­ção:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
bash

Assim, poderá ligar-se novamente com o comando sudo mysql.

Passo 4. Criar uti­li­za­dor MySQL

Ao instalar o MySQL, é criado um uti­li­za­dor root que tem todos os pri­vi­lé­gios para o servidor MySQL. Este também tem controlo total sobre qualquer base de dados, tabelas e uti­li­za­do­res. Para melhorar o nível de segurança, re­co­men­da­mos criar um uti­li­za­dor com direitos restritos.

Para isso, aceda ao símbolo do sistema MySQL:

$ sudo mysql
bash

Agora crie um novo uti­li­za­dor para o MySQL:

mysql> CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';
bash

Em «nome de uti­li­za­dor» e «host», introduza o seu nome de uti­li­za­dor e o nome do seu host, res­pe­ti­va­mente. Se estiver a executar o Ubuntu lo­cal­mente, escreva localhost. A expressão «WITH authen­ti­ca­tion_plugin» é opcional. O plugin «auth_socket» tem um elevado nível de segurança e não requer uma palavra-passe para iniciar sessão.

Caso nada mais seja es­pe­ci­fi­cado, o MySQL utiliza o plugin “caching_sha2_password” para au­ten­ti­ca­ção. No entanto, existem algumas versões do PHP com as quais ele não é com­pa­tí­vel. Em vez disso, também pode utilizar o plugin “mysql_native_password”, que é mais antigo, mas já foi testado:

mysql> CREATE USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
bash

Você também pode usar a função “ALTER” para um uti­li­za­dor existente:

mysql> ALTER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
bash

Passo 5. Ad­mi­nis­trar direitos

Determina os direitos do novo uti­li­za­dor. A sintaxe geral é a seguinte:

mysql> GRANT PRIVILEGE ON database.table TO 'username'@'host';
bash

A separação de múltiplos pri­vi­lé­gios é feita com uma vírgula. Para aplicar os pri­vi­lé­gios glo­bal­mente, troque “database.table” por um asterisco (*).

No exemplo a seguir, con­ce­de­mos a um uti­li­za­dor os direitos para criar (CREATE), modificar (ALTER), eliminar (DROP) e inserir (INSERT), se­le­ci­o­nar (SELECT), atualizar (UPDATE) e eliminar (DELETE) dados numa tabela.

mysql> GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT on *.* TO 'user'@'host' WITH GRANT OPTION;
bash

Através da opção «WITH GRANT OPTION», o uti­li­za­dor também pode trans­fe­rir os seus direitos para outras pessoas.

Em seguida, esvazie a cache com “FLUSH PRI­VI­LE­GES”:

mysql> FLUSH PRIVILEGES;
bash

Agora feche o símbolo do sistema MySQL:

mysql> exit
bash

Inicie sessão com o seu novo nome de uti­li­za­dor:

$ mysql -u username -p
bash

Passo 6. Verificar o fun­ci­o­na­mento do MySQL

Depois de concluir todas as etapas an­te­ri­o­res, verifique se o MySQL está a funcionar cor­re­ta­mente. Utilize, por exemplo, o gestor do sistema Systemd:

$ systemctl status mysql.service
bash

Como al­ter­na­tiva, pode ligar-se à base de dados MySQL. O comando seguinte leva-o ao início de sessão no MySQL e mostra-lhe a versão do servidor:

$ sudo mysqladmin -p -u username version
bash
Ir para o menu principal