Tutorial
Como instalar o MariaDB no Ubuntu 18.04
Introdução
O MariaDB é um sistema de gerenciamento de banco de dados de código aberto, usado com frequência como uma alternativa à parte MySQL da famosa pilha LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Ele foi criado como um substituto do MySQL.
A versão curta deste guia de instalação consiste nestes três passos:
- Atualize seu índice de pacotes usando o
apt
- Instale o pacote
mariadb-server
usando oapt
. O pacote também traz ferramentas relacionadas para interagir com o MariaDB. - Execute o script de segurança incluído,
mysql_secure_installation
, para restringir o acesso ao servidor.
- sudo apt update
- sudo apt install mariadb-server
- sudo mysql_secure_installation
Este tutorial explicará como instalar o MariaDB em um servidor Ubuntu 18.04, e verificar se ele está em funcionamento e tem uma configuração inicial segura.
Pré-requisitos
Para seguir este tutorial, você vai precisar do seguinte:
- Um servidor Ubuntu 18.04 configurado seguindo este guia de configuração inicial de servidor, incluindo um usuário não-root com privilégios
sudo
e um firewall.
Passo 1 — Instalando o MariaDB
No Ubuntu 18.04, a versão 10.1 do MariaDB está incluída nos repositórios de pacotes de APT por padrão.
Para instalá-lo, atualize o índice de pacotes em seu servidor com o apt
:
- sudo apt update
Depois disso, instale o pacote:
- sudo apt install mariadb-server
Estes comandos instalarão o MariaDB, mas não solicitarão que você defina uma senha ou faça outras alterações de configuração. Como a configuração padrão deixa sua instalação do MariaDB desprotegida, usaremos um script que o pacote mariadb-server
fornece para restringir o acesso ao servidor e remover contas não utilizadas.
Passo 2 — Configurando o MariaDB
Para novas instalações do MariaDB, o próximo passo será executar o script de segurança incluído. Este script altera algumas das opções padrão menos seguras. Usaremos o script para bloquear os logins remotos ao root e remover usuários de banco de dados não utilizados.
Execute o script de segurança:
- sudo mysql_secure_installation
Isso levará você a uma série de prompts onde é possível fazer algumas alterações nas opções de segurança de sua instalação do MariaDB. O primeiro prompt pedirá que digite a senha root do banco de dados atual. Como ainda não configuramos uma senha, pressione ENTER
para indicar “nenhuma”.
O próximo prompt pergunta a você se deseja definir uma senha root para o banco de dados. Digite N
e, em seguida, pressione ENTER
. No Ubuntu, a conta root para o MariaDB está intimamente ligada à manutenção automatizada do sistema. Desse modo, não se deve alterar os métodos de autenticação configurados para esta conta. Se isso fosse feito, uma atualização de pacotes poderia quebrar o sistema de banco de dados devido a remoção do acesso à conta administrativa. Mais tarde, vamos tratar de como configurar, de forma opcional, uma conta administrativa adicional para o acesso por senha caso a autenticação por soquete não seja apropriada para o seu caso de uso.
A partir daí, pressione Y
e, depois, 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 teste, desativará os logins remotos ao root e carregará essas novas regras para que o MariaDB respeite imediatamente as alterações que você fez.
Passo 3 — (Opcional) Ajustando a autenticação e os privilégios do usuário
Em sistemas Ubuntu executando o MariaDB 10.1, o usuário MariaDB root é configurado para autenticar-se usando o plug-in unix_socket
por padrão, em vez de fazê-lo com uma senha. Isso permite maior segurança e usabilidade na maioria dos casos, mas também pode complicar as coisas quando for necessário permitir direitos administrativos a um programa externo (por exemplo, o phpMyAdmin).
Como o servidor usa a conta root para tarefas como a rotação de registro e a inicialização e parada do servidor, é melhor não alterar os detalhes de autenticação da conta root. A alteração das credenciais no arquivo de configuração /etc/mysql/debian.cnf
pode funcionar inicialmente, porém, atualizações de pacotes podem resultar na substituição destas alterações. Em vez de modificar a conta root, os mantenedores de pacotes recomendam criar uma conta administrativa separada, para o acesso baseado em senha.
Para fazer isso, criaremos uma nova conta chamada admin
com os mesmos recursos da conta root, mas configurada para autenticação por senha. Para fazer isso, abra o prompt do MariaDB do seu terminal:
- sudo mysql
Agora, criaremos um novo usuário com privilégios root e acesso com senha. Altere o nome de usuário e senha para que correspondam às suas preferências:
- GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Descarregue os privilégios para garantir que eles estão salvos e disponíveis na sessão atual:
- FLUSH PRIVILEGES;
Em seguida, saia do shell do MariaDB:
- exit
Por fim, vamos testar a instalação do MariaDB.
Passo 4 — Testando o MariaDB
Quando o MariaDB é instalado dos repositórios padrão, ele normalmente é iniciado de maneira automática. Para testar isso, verifique o status dele.
- sudo systemctl status mariadb
Você receberá um resultado que é parecido com este:
Output● mariadb.service - MariaDB 10.1.44 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-03-25 16:51:16 UTC; 8min ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 22559 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 27 (limit: 1152)
CGroup: /system.slice/mariadb.service
└─22559 /usr/sbin/mysqld
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: mysql
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: performance_schema
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Phase 6/7: Checking and upgrading tables
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Processing databases
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: information_schema
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: performance_schema
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Phase 7/7: Running 'FLUSH PRIVILEGES'
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: OK
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22658]: Checking for insecure root accounts.
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22663]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables
Se o MariaDB não estiver em execução, inicie-o com o comando sudo systemctl start mariadb
.
Como verificação adicional, tente se conectar ao banco de dados usando a ferramenta mysqladmin
. Esta ferramenta é um cliente que permite que você execute comandos administrativos. Por exemplo, este comando faz você se conectar ao MariaDB como root e retornar a versão usando o socket Unix:
- sudo mysqladmin version
Você deve receber um resultado similar a este:
Outputmysqladmin Ver 9.1 Distrib 10.1.44-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Server version 10.1.44-MariaDB-0ubuntu0.18.04.1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 10 min 9 sec
Threads: 1 Questions: 445 Slow queries: 0 Opens: 167 Flush tables: 1 Open tables: 30 Queries per second avg: 0.730
Se você configurou um usuário administrativo separado com autenticação por senha, execute a mesma operação digitando:
- mysqladmin -u admin -p version
Isso significa que o MariaDB está em funcionamento e que seu usuário consegue autenticar-se com sucesso.
Conclusão
Neste guia, você instalou o MariaDB para agir como um servidor SQL. Durante o processo de instalação, você também protegeu o servidor. De maneira opcional, você também criou, separadamente, um usuário administrativo autenticado por senha.
Agora que você tem um servidor MariaDB funcionando e protegido, aqui estão alguns exemplos de passos que você pode seguir para trabalhar com o servidor:
Você também pode incorporar o MariaDB em uma pilha de aplicativos maior: