MySQL na CLI


MySQL é um sistema de gestão de base de dados, que usa a linguagem SQL. Parceiro inseparável de qualquer aplicação minimamente complexa executada a partir de um browser, é bastante popular  no conjunto LAMP. Há outros sistemas do género como o MariaDB (fork do MySQL), PostgreSQL, Microsoft SQL Server, entre outros.
Muitas vezes encontro aplicações que usam um acesso ao MySQL com a password root para acesso a uma base de dados… Para além de inseguro e altamente perigoso, deixa-me de cabelos em pé 🙂
No caso do Microsoft SQL Server, temos uma consola gráfica toda bonita para criar e gerir bases de dados.
No caso do MySQL ou instalamos o phpMyAdmin ou então temos a linha de comandos…
Quando estamos a instalar uma qualquer aplicação que usa o sistema LAMP, tipo WordPress, Webmin, Owncloud, etc, temos de configurar uma base de dados. Para isso devemos criar uma só para o que estamos a instalar e com direitos limitados sobre o resto do sistema. Assim, mesmo que descubram os acessos não deverão pôr em causa a segurança do resto do sistema. Como criar? Na consola começamos por entrar na consola MySQL:

mysql -u root -p

Vai ser pedida a password de admin do MySQL (definida na instalação do MySQL)
Vão ficar na CLI do MySQL:

mysql>

Não esqueçam que no fim de qualquer comando tem de terminar a linha com um ponto e virgula. No fim de cada linha cliquem no Enter.
Vamos então criar um utilizador local e definir a palavra-passe:

mysql> CREATE USER ‘utilizador‘@’localhost’ IDENTIFIED BY ‘123456789‘;

Alterem as palavras a bold para o que quiserem.
Agora vamos criar a base de dados:

mysql> CREATE DATABASE 123_nome;

Alterem a palavra a bold para o que quiserem.
Em seguida damos privilégios totais de administração desta nova base de dados para o novo utilizador:

mysql> GRANT ALL PRIVILEGES ON 123_nome.* TO ‘utilizador‘@’localhost’;

Mais um Enter e temos a configuração feita! Falta então aplicar o que fizemos:

mysql> FLUSH PRIVILEGES;

E pronto, podemos usar este utilizador na nossa aplicação, sem pôr em causa a segurança de outras bases de dados.
Para sair da CLI do MySQL executem o comando:

mysql> quit