O MariaDB é um sistema de gerenciamento de banco de dados de código aberto, usado com frequência como uma alternativa ao MySQL como a parte que representa o banco de dados 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:
apt
mariadb-server
usando o apt
. O pacote também traz ferramentas relacionadas para interagir com o MariaDB.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 20.04, verificará se ele está em funcionamento e se tem uma configuração inicial segura.
Para seguir este tutorial, você precisará de um servidor executando o Ubuntu 20.04. Cada servidor deverá ter um non-root user administrativo e um firewall configurado com o UFW. Configure isso seguindo o nosso Guia de configuração inicial de servidor para o Ubuntu 20.04.
No momento em que este tutorial está sendo escrito, os repositórios APT padrão do Ubuntu 20.04 incluem a versão 10.3 do MariaDB.
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.
Para novas instalações do MariaDB, o próximo passo será executar o script de segurança incluído. Esse script modifica algumas das opções padrão menos seguras referentes, por exemplo, a logins root remotos e usuários de exemplo.
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 atual do root do banco de dados. Como ainda não configuramos uma senha, pressione ENTER
para indicar “nenhuma”.
OutputNOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
O próximo prompt pergunta a você se deseja configurar uma senha root do banco de dados. 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. Digite N
e, em seguida, pressione ENTER
.
Output. . .
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] N
Mais tarde, vamos tratar de como configurar 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.
Com isso, você terminou a configuração inicial de segurança do MariaDB. O próximo passo é opcional, embora você deva segui-lo se preferir autenticar-se ao seu servidor MariaDB com uma senha.
Em sistemas Ubuntu executando o MariaDB 10.3, o root user do MariaDB é 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 as mesmas capacidades que a conta root, mas configurada para a autenticação por senha. Abra o prompt do MariaDB do seu terminal:
- sudo mariadb
Em seguida, crie um novo usuário com privilégios root e acesso baseado em senha. Certifique-se de alterar 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;
Recarregue 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.
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.3.22 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-05-12 13:38:18 UTC; 3min 55s ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 25914 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 31 (limit: 2345)
Memory: 65.6M
CGroup: /system.slice/mariadb.service
└─25914 /usr/sbin/mysqld
. . .
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 diz para se conectar ao MariaDB como root usando o soquete Unix e retornar a versão:
- sudo mysqladmin version
Você receberá um resultado semelhante a este:
Outputmysqladmin Ver 9.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Server version 10.3.22-MariaDB-1ubuntu1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 4 min 49 sec
Threads: 7 Questions: 467 Slow queries: 0 Opens: 177 Flush tables: 1 Open tables: 31 Queries per second avg: 1.615
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.
Neste guia, você instalou o sistema de gerenciamento de banco de dados relacional MariaDB e o protegeu usando o script mysql_secure_installation
que veio instalado com ele. Você também teve a opção de criar um novo usuário administrativo que utiliza a autenticação por senha antes de testar a funcionalidade do servidor MariaDB.
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:
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!