Manipulação de usuários MySQL

Dica básica, mas tem gente que se embanana com isso.

Cenário: Criar uma base de dados chamada mydb, criar um usuário chamado myuser com permissão de acesso total a esta base de dados e acesso somente a localhost.

Primeiramente conectamos ao mysql como root e criamos a base de dados mydb

mysql -u root -pMinhaSenhA
create database mydb;

Agora uma dica legal, da pra criar usuários mysql apenas adicionando permissões. basicamente quando tu manda um grant e o usuário não existe, o mysql cria ele automaticamente… sabendo usar isso é muito bom 😉

Agora criamos então o usuário e adicionamos permissão as interfaces loopback 127.0.0.1, localhost e ::1 (loopback ipv6)

mysql u root -pMinhaSenhA
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost' IDENTIFIED BY 'MinhaSenhA';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'127.0.0.1' IDENTIFIED BY 'MinhaSenhA';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'::1' IDENTIFIED BY 'MinhaSenhA';

Agora testamos o acesso, deve ser exibido somente a base mydb e information_schema (no meu caso aparece também uma base do capeta chamada test que o ubuntu criou automaticamente, mas nada qe um “drop database test;” não resolva)

mysql -u myuser -pMinhaSenhA
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 70
Server version: 5.5.20-0~ppa1~oneiric (Ubuntu)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb               |
| test               |
+--------------------+
3 rows in set (0.00 sec)

Agora sim, tudo criado e funcionando! 😉