Logo após instalar o MySQL, você terá o
root
usuário disponível. Este é o usuário que você pode usar para tentar ver se o MySQL está funcionando, mas não deve ser o usuário para outros tipos de uso.
Por quê? Porque é muito poderoso .
Com grandes poderes vêm grandes responsabilidades (disse o tio do Homem-Aranha). E, em particular, grande perigo se você cometer erros.
Em vez disso, você deve criar usuários ad-hoc que tenham apenas permissões para realizar seu trabalho e nada mais. O mesmo para usar Linux ou qualquer sistema Unix, por exemplo:você não quer usar o
root
usuário, mas sua própria conta de usuário. Para criar um novo usuário, conecte-se ao MySQL usando o
root
do utilizador:mysql -u root -p
então use o comando
CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';
Por exemplo, para criar um usuário chamado
test_user
com senha test_password12A
execute o comando:CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'test_password12A';
O comando deve retornar uma linha dizendo
Query OK, 0 rows affected (X.XX sec)
:Se você usou uma senha inválida, o sistema informará algo como
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
. Neste caso, o erro diz que a senha não é complexa o suficiente, porque quando instalei o MySQL eu disse para usar uma determinada política de senhas. Isso é ótimo! Agora o usuário foi criado e podemos conectar usando esse usuário ao MySQL. Na linha de comando, você pode sair digitando
QUIT
, e digitando:mysql -u test_user -p
Agora, se eu tentar criar um banco de dados, obterei um erro dizendo
ERROR 1044 (42000): Access denied for user 'test_user'@'localhost' to database 'testing'
:Por quê? Porque o usuário não tem permissão para criar um novo banco de dados .
Veremos como trabalhar com permissões em outro tutorial.
Vale a pena mencionar o
@'localhost'
string que usamos para criar o usuário. Isso diz ao MySQL que o usuário só pode se conectar do localhost. O que é bom ao testar as coisas e quando qualquer aplicativo que se conectará ao MySQL estiver sendo executado no mesmo computador que executa o DBMS. Quando isso não for verdade, você precisa inserir manualmente o IP do qual o usuário se conectará ou usar o
%
curinga:CREATE USER 'test_user'@'%' IDENTIFIED BY 'test_password12A';
Quero encerrar este tutorial mostrando como remover o usuário que criamos:
DROP USER 'test_user'@'localhost';