Existem duas maneiras de adicionar usuários: utilizando
        instruções GRANT ou manipulando as tabelas
        de permissões do MySQL diretamente. O método preferido é
        utilizar instruções GRANT, porque elas são
        mais concisas e menos propensas a erros. See
        Secção 4.4.1, “A Sintaxe de GRANT e REVOKE”.
      
        Existem vários programas de colaboradores (como o
        phpMyAdmin) que podem ser utilizados para
        criar e administrar usuários. See Apêndice B, Contribuição de Programas.
      
        Os exemplos abaixo mostram como usar o cliente
        mysql para configurar novos usuários. Estes
        exemplos assumem que privilégios são configurados de acordo
        com os padrões descritos na seção anterior. Isto significa
        que para fazer alterações, você deve se conectar na mesma
        máquina em que o mysqld está executando,
        você deve se conectar com o usuário root, e
        o usuário root deve ter os privilégios
        inster ao banco de dados
        mysql e o administrativo
        reload. Também, se você
        alterou a senha do usuário root, você deve
        especificá-la para os comandos mysql abaixo.
      
        Primeiro, use o programa mysql para se
        conectar ao servidor como o usuário root do
        MySQL:
      
shell> mysql --user=root mysql
        Você pode adicionar novos usuários utilizando instruções
        GRANT:
      
mysql>GRANT ALL PRIVILEGES ON *.* TO monty@localhostIDENTIFIED BY 'alguma_senha' WITH GRANT OPTION; mysql>GRANT ALL PRIVILEGES ON *.* TO monty@'%'IDENTIFIED BY 'alguma_senha' WITH GRANT OPTION; mysql>GRANT RELOAD,PROCESS ON *.* TO admin@localhost;mysql>GRANT USAGE ON *.* TO dummy@localhost;
        Estas instruções GRANT configuram três
        novos usuários:
      
            monty
          
            Um superusuário completo que pode conectar ao servidor de
            qualquer lugar, mas deve utilizar uma senha
            'alguma_senha' para fazer isto. Perceba
            que devemos utilizar instruções GRANT
            para monty@localhost e
            monty@"%". Se nós não adicionarmos a
            entrada com localhost, a entrada para o
            usuário anônimo para localhost que é
            criada por mysql_install_db toma
            precedência quando nos conectarmos da máquina local,
            porque ele contem um campo Host com um
            valor mais específico e também vem antes na ordenação da
            tabela user.
          
            admin
          
            Um usuário que possa conectar de
            localhost sem uma senha e que é
            concedido os privilégios administrativos
            reload e
            process. Isto permite ao
            usuário a execução dos comandos mysqladmin
            reload, mysqladmin refresh e
            mysqladmin flush-*, bem como o
            mysqladmin processlist. Nenhum
            privilégio a nível de bancos de dados é concedido.
            (Depois eles podem ser adicionados utilizando instruções
            GRANT adicionais.)
          
            dummy
          
            Um usuário que pode conectar sem uma senha, mas somente na
            máquina local. Não são concedidos nenhum privilégio---o
            tipo de privilégio USAGE permite a
            criação de um usuário sem privilégios. Ele tem o efeito
            de criar todos os privilégios globais com
            'N'. Considera-se que você irá conceder
            privilégios específicos a conta posteriormente.
          
        Também é possível adicionar a mesma informação de acesso do
        usuário diretamente, utilizando instruções
        INSERT e depois dizendo ao servidor para
        recarregar as tabelas de permissões:
      
shell>mysql --user=root mysqlmysql>INSERT INTO user VALUES('localhost','monty',PASSWORD('alguma_senha'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); mysql>INSERT INTO user VALUES('%','monty',PASSWORD('alguma_senha'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); mysql>INSERT INTO user SET Host='localhost',User='admin',Reload_priv='Y', Process_priv='Y'; mysql>INSERT INTO user (Host,User,Password)VALUES('localhost','dummy',''); mysql>FLUSH PRIVILEGES;
        Dependendo da sua versão do MySQL, você pode precisar utilizar
        um número diferente de valores 'Y' acima.
        (Versões anteriores à versão 3.22.11 tem menos campos de
        privilégios, e posteriores a 4.02 têm mais). Para o usuário
        admin, a maior sintaxe legível de
        INSERT usando SET que
        está disponível a partir da versão 3.22.11 é a utilizada.
      
        Note que para configurar um superusuário, você só precisar
        criar uma entrada na tabela user com os
        campos de privilégios configurados para 'Y'.
        Não é necessário gerar entradas nas tabelas
        db ou host.
      
        Na última instrução INSERT (para o
        usuário dummy), apenas as colunas
        Host, User e
        Password nos registros da tabela
        user tem valores atribuídos. Nenhuma das
        colunas de privilégios são definidas explicitamente, assim o
        MySQL atribui a todas o valor padrão de 'N'.
        Isto é a mesma coisa que o GRANT USAGE faz.
      
        O seguinte exemplo adiciona um usuário
        custom que pode acessar o banco de dados
        bankaccout apenas do
        localhost, o banco de dados
        expenses somente de
        whitehouse.gov e o banco de dados
        customer de todas de
        server.domain. Ele deseja utilizar a senha
        obscure das três máquinas.
      
        Para configurar os privilégios deste usuário utilizando
        instruções GRANT, execute estes comandos:
      
shell>mysql --user=root mysqlmysql>GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP->ON bankaccount.*->TO custom@localhost->IDENTIFIED BY 'obscure';mysql>GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP->ON expenses.*->TO custom@'whitehouse.gov'->IDENTIFIED BY 'obscure';mysql>GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP->ON customer.*->TO custom@'server.domain'->IDENTIFIED BY 'obscure';
        Para configurar os privilégios do usuário modificiando as
        tabelas de permissões diretamente, utilize estes comandos
        (perceba o FLUSH PRIVILEGES no final):
      
shell>mysql --user=root mysqlmysql>INSERT INTO user (Host,User,Password)->VALUES('localhost','custom',PASSWORD('obscure'));mysql>INSERT INTO user (Host,User,Password)->VALUES('whitehouse.gov','custom',PASSWORD('obscure'));mysql>INSERT INTO user (Host,User,Password)->VALUES('server.domain','custom',PASSWORD('obscure'));mysql>INSERT INTO db->(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,->Create_priv,Drop_priv)->VALUES->('localhost','bankaccount','custom','Y','Y','Y','Y','Y','Y');mysql>INSERT INTO db->(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,->Create_priv,Drop_priv)->VALUES->('whitehouse.gov','expenses','custom','Y','Y','Y','Y','Y','Y');mysql>INSERT INTO db->(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,->Create_priv,Drop_priv)->VALUES('server.domain','customer','custom','Y','Y','Y','Y','Y','Y');
        Como no exemplo anterior que usaram as instruções
        INSERT, você pode precisar de usar um
        número diferentes de valores 'Y', dependendo
        de sua versão do MySQL.
      
        As primeiras três instruções INSERT
        adicionam entradas na tabela user que permite
        ao usuário custom conectar a partir de
        várias máquinas com a senha determinada, mas não concede
        permissões ao mesmo (todos os privilégios são configurados
        com o valor padrão de 'N'). As próximas
        três instruções INSERT adicionam entradas
        na tabela db que concedem privilégios à
        custom para os bancos de dados
        bankaccount, expenses e
        customer, mas só quando acessados à partir
        das máquinas apropriadas. Normalmente, depois de modificar as
        tabelas de permissões diretamente, você deve dizer ao servidor
        para recarregá-las (com FLUSH PRIVILEGES)
        para que as alterações nos privilégios tenham efeito.
      
        Se você deseja fornecer a um usuário específico acesso de
        qualquer máquina em um determinado domínio (por exemplo,
        meudomínio.com), você pode utilizar uma
        instrução GRANT como a seguir:
      
mysql>GRANT ...->ON *.*->TO myusername@'%.mydomain.com'->IDENTIFIED BY 'mypassword';
Para realizar a mesma coisa modificando diretamente as tabelas de permissões, faça isto:
mysql>INSERT INTO user VALUES ('%.meudominio, 'meunomedeusuario'PASSWORD('minhasenha'),...); mysql>FLUSH PRIVILEGES;
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

