Instalando o MySQL - UBUNTU 22.04 - 22.10
creditos:
Passo 1 — Instalando o MySQL
No Ubuntu 22.04, você pode instalar o MySQL usando o repositório de pacotes APT. No momento da redação deste artigo, a versão do MySQL disponível no repositório padrão do Ubuntu é a versão 8.0.28.
Para instalá-lo, atualize o índice de pacotes em seu servidor, caso não tenha feito isso recentemente:
Em seguida, instale o mysql-server
pacote:
Certifique-se de que o servidor esteja em execução usando o systemctl start
comando:
Esses comandos instalarão e iniciarão o MySQL, mas não solicitarão que você defina uma senha ou faça qualquer outra alteração na configuração. Como isso deixa sua instalação do MySQL insegura, trataremos disso a seguir.
Passo 2 — Configurando o MySQL
Para novas instalações do MySQL, você desejará executar o script de segurança incluído no sistema de gerenciamento de banco de dados. Este script altera algumas das opções padrão menos seguras para coisas como desabilitar logins root remotos e remover usuários de amostra.
Aviso : a partir de julho de 2022, ocorrerá um erro ao executar o mysql_secure_installation
script sem nenhuma configuração adicional. O motivo é que esse script tentará definir uma senha para a conta root do MySQL da instalação, mas, por padrão nas instalações do Ubuntu, essa conta não é configurada para se conectar usando uma senha.
Antes de julho de 2022, esse script falhava silenciosamente após tentar definir a senha da conta raiz e continuar com o restante dos prompts. No entanto, no momento em que escrevo, o script retornará o seguinte erro depois que você inserir e confirmar uma senha:
Output ... Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.
New password:
Isso levará o script a um loop recursivo do qual você só pode sair fechando a janela do terminal.
Como o mysql_secure_installation
script executa várias outras ações que são úteis para manter a instalação do MySQL segura, ainda é recomendável executá-lo antes de começar a usar o MySQL para gerenciar seus dados. No entanto, para evitar entrar nesse loop recursivo, você precisará primeiro ajustar como o usuário raiz do MySQL é autenticado.
Primeiro, abra o prompt do MySQL:
Em seguida, execute o seguinte ALTER USER
comando para alterar o método de autenticação do usuário raiz para um que use uma senha. O exemplo a seguir altera o método de autenticação para mysql_native_password
:
Depois de fazer essa alteração, saia do prompt do MySQL:
Depois disso, você pode executar o mysql_secure_installation
script sem problemas.
Depois que o script de segurança for concluído, você poderá reabrir o MySQL e alterar o método de autenticação do usuário raizauth_socket
de volta para o padrão, . Para autenticar como usuário root do MySQL usando uma senha, execute este comando:
Em seguida, volte a usar o método de autenticação padrão usando este comando:
Isso significa que você pode se conectar novamente ao MySQL como seu usuário root usando o sudo mysql
comando.
Execute o script de segurança com sudo
:
Isso o levará a uma série de prompts onde você pode fazer algumas alterações nas opções de segurança da instalação do MySQL. O primeiro prompt perguntará se você gostaria de configurar o plug-in Validate Password, que pode ser usado para testar a força da senha de novos usuários do MySQL antes de considerá-los válidos.
Se você optar por configurar o plug-in de validação de senha, qualquer usuário do MySQL que você criar e se autenticar com uma senha precisará ter uma senha que satisfaça a política selecionada:
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ê optar por configurar o plug-in de validação de senha, o próximo prompt será definir uma senha para o usuário root do MySQL . Digite e confirme uma senha segura de sua escolha:
OutputPlease set the password for root here.
New password:
Re-enter new password:
Observe que, embora você tenha definido uma senha para o usuário root do MySQL, esse usuário não está configurado para autenticar com uma senha ao conectar-se ao shell do MySQL.
Se você usou o plug-in de validação de senha, receberá feedback sobre a força de sua nova senha. Em seguida, o script perguntará se você deseja continuar com a senha que acabou de inserir ou se deseja inserir uma nova. Supondo que você esteja satisfeito com a força da senha que acabou de inserir, 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í, você pode pressionar Y
e ENTER
aceitar os padrões para todas as perguntas subsequentes. Isso removerá alguns usuários anônimos e o banco de dados de teste, desativará os logins root remotos e carregará essas novas regras para que o MySQL respeite imediatamente as alterações feitas.
Depois que o script for concluído, sua instalação do MySQL estará protegida. Agora você pode criar um usuário de banco de dados dedicado com o cliente MySQL.
Etapa 3 — Criando um usuário MySQL dedicado e concedendo privilégios
Após a instalação, o MySQL cria uma conta de usuário root que você pode usar para gerenciar seu banco de dados. Esse usuário tem privilégios totais sobre o servidor MySQL, o que significa que tem controle total sobre todos os bancos de dados, tabelas, usuários e assim por diante. Por isso, é melhor evitar usar essa conta fora das funções administrativas. Esta etapa descreve como usar o usuário root do MySQL para criar uma nova conta de usuário e conceder privilégios a ela.
Em sistemas Ubuntu executando o MySQL 5.7 (e versões posteriores), o usuário root do MySQL é configurado para autenticar usando o auth_socket
plug-in por padrão, em vez de uma senha. Este plug-in requer que o nome do usuário do sistema operacional que invoca o cliente MySQL corresponda ao nome do usuário MySQL especificado no comando, portanto, você deve invocar mysql
com sudo
privilégios para obter acesso ao usuário root do MySQL:
Nota: Se você instalou o MySQL com outro tutorial e habilitou a autenticação de senha para root , você precisará usar um comando diferente para acessar o shell do MySQL. O seguinte executará seu cliente MySQL com privilégios de usuário regulares e você só obterá privilégios de administrador no banco de dados autenticando:
Depois de ter acesso ao prompt do MySQL, você pode criar um novo usuário com uma CREATE USER
instrução. Estes seguem esta sintaxe geral:
Depois CREATE USER
de , você especifica um nome de usuário. Isso é imediatamente seguido por um @
sinal e, em seguida, o nome do host do qual esse usuário se conectará. Se você planeja acessar esse usuário apenas localmente a partir do seu servidor Ubuntu, pode especificar localhost
. Colocar o nome de usuário e o host entre aspas simples nem sempre é necessário, mas isso pode ajudar a evitar erros.
Você tem várias opções quando se trata de escolher o plug-in de autenticação do usuário. O auth_socket
plug-in mencionado anteriormente pode ser conveniente, pois fornece segurança forte sem exigir que usuários válidos digitem uma senha para acessar o banco de dados. Mas também evita conexões remotas, o que pode complicar as coisas quando programas externos precisam interagir com o MySQL.
Como alternativa, você pode omitir totalmente a parte da sintaxe para que o usuário seja autenticado com o plug-in padrão do MySQL, . A documentação do MySQL recomenda este plug-in para usuários que desejam fazer login com uma senha devido aos seus fortes recursos de segurança.WITH authentication_plugin
caching_sha2_password
Execute o seguinte comando para criar um usuário que se autentique com caching_sha2_password
. Certifique-se de alterar sammy
para seu nome de usuário preferido e password
para uma senha forte de sua escolha:
Nota : Há um problema conhecido com algumas versões do PHP que causa problemas com arquivos caching_sha2_password
. mysql_native_password
Se você planeja usar este banco de dados com um aplicativo PHP — phpMyAdmin, por exemplo — você pode querer criar um usuário que se autentique com o plug-in mais antigo, embora ainda seguro :
Se você não tiver certeza, sempre poderá criar um usuário que se autentique caching_sha2_plugin
e ALTER
posteriormente com este comando:
Depois de criar seu novo usuário, você pode conceder a ele os privilégios apropriados. A sintaxe geral para conceder privilégios de usuário é a seguinte:
O PRIVILEGE
valor nesta sintaxe de exemplo define quais ações o usuário tem permissão para executar no especificado database
e table
. Você pode conceder vários privilégios ao mesmo usuário em um comando, separando cada um com uma vírgula. Você também pode conceder privilégios de usuário globalmente inserindo asteriscos ( *
) no lugar dos nomes do banco de dados e da tabela. No SQL, os asteriscos são caracteres especiais usados para representar “todos” os bancos de dados ou tabelas.
Para ilustrar, o comando a seguir concede a um usuário privilégios globais para CREATE
, ALTER
, e DROP
bancos de dados, tabelas e usuários, bem como o poder para INSERT
, UPDATE
e DELETE
dados de qualquer tabela no servidor. Ele também concede ao usuário a capacidade de consultar dados com SELECT
, criar chaves estrangeiras com a palavra- REFERENCES
chave e executar FLUSH
operações com o RELOAD
privilégio. No entanto, você só deve conceder aos usuários as permissões de que precisam, portanto, sinta-se à vontade para ajustar os privilégios de seu próprio usuário conforme necessário.
Você pode encontrar a lista completa de privilégios disponíveis na documentação oficial do MySQL .
Execute esta GRANT
instrução, substituindo sammy
pelo seu próprio nome de usuário do MySQL, para conceder estes privilégios ao seu usuário:
Observe que esta declaração também inclui WITH GRANT OPTION
. Isso permitirá que seu usuário MySQL conceda quaisquer permissões que tenha a outros usuários no sistema.
Aviso : Alguns usuários podem querer conceder o ALL PRIVILEGES
privilégio ao usuário do MySQL, o que fornecerá a eles amplos privilégios de superusuário semelhantes aos privilégios do usuário root , da seguinte forma:
Esses privilégios amplos não devem ser concedidos levianamente , pois qualquer pessoa com acesso a esse usuário do MySQL terá controle total sobre todos os bancos de dados no servidor.
Depois disso, é uma boa prática executar o FLUSH PRIVILEGES
comando. Isso liberará qualquer memória que o servidor armazenou em cache como resultado das instruções CREATE USER
e anteriores GRANT
:
Então você pode sair do cliente MySQL:
No futuro, para fazer login como seu novo usuário MySQL, você usaria um comando como o seguinte:
O -p
sinalizador fará com que o cliente MySQL solicite sua senha de usuário do MySQL para autenticar.
Finalmente, vamos testar a instalação do MySQL.
Etapa 4 — Testando o MySQL
Independentemente de como você o instalou, o MySQL deve ter iniciado a execução automaticamente. Para testar isso, verifique seu status.
A saída será semelhante à seguinte:
Output● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-04-11 16:04:39 UTC; 2h 36min ago
Process: 2593 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 2601 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 1119)
Memory: 354.3M
CPU: 19.944s
CGroup: /system.slice/mysql.service
└─2601 /usr/sbin/mysqld
Se o MySQL não estiver em execução, você pode iniciá-lo com sudo systemctl start mysql
.
Para uma verificação adicional, você pode tentar conectar-se ao banco de dados usando a mysqladmin
ferramenta, que é um cliente que permite executar comandos administrativos. Por exemplo, este comando diz para conectar como um usuário do MySQL chamado sammy ( ), solicitar uma senha ( ) e retornar a versão. Certifique-se de alterar para o nome do seu usuário MySQL dedicado e digite a senha desse usuário quando solicitado:-u sammy
-p
sammy
Abaixo está um exemplo da saída:
Outputmysqladmin Ver 8.0.28-0ubuntu4 for Linux on x86_64 ((Ubuntu))
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
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.28-0ubuntu4
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 2 hours 31 min 57 sec
Threads: 2 Questions: 25 Slow queries: 0 Opens: 160 Flush tables: 3 Open tables: 79 Queries per second avg: 0.000
Isso significa que o MySQL está funcionando.
Comentários
Postar um comentário