Primeiramente acesseo shell do mysql rodando o comando

mysql -u root -p

Agora rode o comando para criar um novo usuário, onde newuser e password são parametros

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Agora, vamos dar os previlégios de acesso

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

Sempre depois de moficiar, atualize os previlégios (reaload)

FLUSH PRIVILEGES;

Aqui vai uma lista de outros tipos de previlégio que você pode usar:

ALL PRIVILEGES- as we saw previously, this would allow a MySQL user all access to a designated database (or if no database is selected, across the system)

CREATE- Permite criar novas tabelas ou bancos de dados

DROP- Permite deletar tabelas ou bancos de dados

DELETE- Permite deletar linhas de tabelas

INSERT- Permite inserir linhas em tabelas

SELECT- Permite usar o comando SELECT para fazer consultas

UPDATE- Permite que atualize linhas de registro

GRANT OPTION- Permite que dê ou remova permissões de outros usuários

Para adicionar permissões em um usuário específico ultilize:

GRANT [type of permission] ON [database name].[table name] TO ‘[username]’@'localhost’;

Se quiser dar permissão de qualquer tabela ou banco de dados lembre-se de colocar um * (asteristico) no nome da tabela ou banco. Não esqueça de dar um realod nas permissões após fazer mudanças:

FLUSH PRIVILEGES;

Se desejar remover as permissões de um usuário a sintaxe é parecida:

REVOKE [type of permission] ON [database name].[table name] FROM ‘[username]’@‘localhost’;

Assim como se usa DROP para deletar uma base de dados você também pode deletar usuários

DROP USER 'demo'@'localhost';

Para testar o novo usuário adicionado faça logout do usuário root:

quit

Agora logue novamente com o novo usuário:

mysql -u [username]-p

Por Marcos Mendes @marcoshmendes