Tentou
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
Obtendo
ERROR 1064 (42000): você tem um erro na sintaxe SQL; verifique o manual que corresponde à versão do seu servidor MySQL para obter a sintaxe correta para usar próximo a 'IDENTIFIED BY' root 'WITH GRANT OPTION' na linha 1.
Nota: O mesmo funciona quando tentado em versões anteriores.
Também tentei
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Obtendo
ERROR 1410 (42000): Você não tem permissão para criar um usuário com GRANT
O nome de usuário / senha do MySQL (8.0.11.0) é root / root.
mysql
mysql-error-1064
mysql-8.0
Praveen
fonte
fonte
mysql -u root -p
, em seguida, inserindo a senha de root. Então tenteiGRANT GRANT OPTION ON *.* TO 'root'@'%';
e recebi o erroERROR 1410 (42000): You are not allowed to create a user with GRANT
Respostas:
A partir do MySQL 8, você não pode mais (implicitamente) criar um usuário usando o
GRANT
comando. Em vez disso, use CREATE USER , seguido pela instrução GRANT :Cuidado com os riscos de segurança
WITH GRANT OPTION
, consulte:fonte
SELECT User, Host FROM mysql.user;
vez disso, corra .ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
1) Isso funcionou para mim. Primeiro, crie um novo usuário. Exemplo: usuário
foo
com senhabar
2) Substitua o código abaixo por um nome de usuário com 'foo'.
3) Faça login como usuário foo
Senha: bar
4) Certifique-se de que sua conexão inicial do Sequelize está configurada para foo com pw bar.
fonte
Eu vejo muitas respostas (erradas), é tão simples quanto isto:
Nota: em vez de um auto-criado,
user
você pode usarroot
para se conectar ao banco de dados. No entanto, usar a conta raiz padrão para permitir que um aplicativo se conecte ao banco de dados não é a forma preferida.Privilégios alternativos (tenha cuidado e lembre-se do princípio do privilégio mínimo):
Se, de alguma forma, você encontrasse o seguinte erro:
Você precisa adicionar / alterar as duas linhas a seguir
/etc/mysql/my.cnf
e reiniciar o mysql:fonte
GRANT ALL ON
para MySQL 8.0. Além disso, acredito que em vez de desativarbind-address
você pode vincular127.0.0.1
e incluir--protocol=tcp
em qualquer comando. O desempenho a longo prazo também é melhor do que comlocalhost
.Minhas especificações:
O que funcionou para mim:
Resposta em ambas as consultas:
NB: Eu criei um banco de dados (db_name) anteriormente e estava criando uma credencial de usuário com todos os privilégios concedidos a todas as tabelas no banco de dados em vez de usar o usuário root padrão que li em algum lugar é uma prática recomendada.
fonte
O usuário especificado simplesmente não existe em seu MySQL (portanto, o MySQL está tentando criá-lo com GRANT como fazia antes da versão 8, mas falha com as limitações, introduzidas nesta versão).
O MySQL é muito burro neste ponto, então se você tiver 'root' @ 'localhost' e tentar conceder privilégios para 'root' @ '%', ele os tratará como usuários diferentes, ao invés de noção generalizada para usuário root em qualquer host, incluindo localhost.
A mensagem de erro também é enganosa.
Então, se você está recebendo a mensagem de erro, verifique seus usuários existentes com algo assim
e, em seguida, crie o usuário ausente (como Mike aconselhou) ou ajuste o comando GRANT para a especificação do usuário existente.
fonte
Apenas meus 2 centavos sobre o assunto. Eu estava tendo exatamente o mesmo problema ao tentar me conectar do MySQL Workbench. Estou executando uma máquina virtual bitnami-mysql para configurar uma área restrita local para desenvolvimento.
O tutorial de Bitnami dizia para executar o comando 'Conceder todos os privilégios':
Isso claramente não estava funcionando, finalmente consegui fazer funcionar usando a resposta de Mike Lischke.
O que eu acho que aconteceu foi que o usuário root @% tinha as credenciais erradas associadas a ele. Portanto, se você tentou modificar os privilégios do usuário e sem sorte, tente:
No console Mysql:
Listar usuários (útil para ver todos os seus usuários):
Abandone o usuário desejado:
Criar usuário e conceder permissões:
Execute este comando:
Localize seu arquivo de configuração mysql 'my.cnf' e procure por uma linha semelhante a esta:
e comente usando um '#':
Em seguida, reinicie o serviço mysql.
Espero que isso ajude alguém com o mesmo problema!
fonte
Isso funcionou para mim:
fonte
Verifique se o seu nome de usuário e domínio é o mesmo criado antes. Mysql seleciona a conta pelas duas colunas na tabela do usuário. Se for diferente, mysql pode pensar que você deseja criar uma nova conta por concessão, que não é suportada após a versão 8.0.
fonte
Minhas especificações:
O que funcionou para mim:
fonte
Bem, eu simplesmente tive o mesmo problema. Mesmo se a rota tivesse '%', não poderia se conectar remotamente. Agora, dando uma olhada no
my.ini
arquivo (arquivo de configuração no Windows), obind-address
instrução foi perdida.Então ... coloquei isso
bind-address = *
depois[mysqld]
e reiniciei o serviço. Agora funciona!fonte
1. conceder privilégios
mysql> GRANT ALL PRIVILEGES ON. PARA 'root' @ '%' COM OPÇÃO DE CONCESSÃO;
mysql> FLUSH PRIVILEGES
2. verifique a tabela do usuário:
mysql> use mysql
mysql> selecione host, usuário a partir do usuário
3. Modifique o arquivo de configuração
mysql default bind ip : 127.0.0.1, se quisermos visitar serviços remotamente, apenas delete config
4. finalmente reinicie os serviços
brew services reiniciar mysql
fonte
Isso pode funcionar:
fonte
Eu tive esse mesmo problema, que me trouxe até aqui. Em particular, para o desenvolvimento local, eu queria poder viver
mysql -u root -p
semsudo
. Não quero criar um novo usuário. Desejo usarroot
de um aplicativo da web PHP local.A mensagem de erro é enganosa, pois não havia nada de errado com o padrão
'root'@'%'
privilégios de usuário .Em vez disso, como várias pessoas mencionaram nas outras respostas, a solução foi simplesmente definir em
bind-address=0.0.0.0
vez debind-address=127.0.0.1
na minha/etc/mysql/mysql.conf.d/mysqld.cnf
configuração. De outra forma, nenhuma mudança foi necessária.fonte
Tive o mesmo problema no CentOS e funcionou para mim (versão: 8.0.11):
fonte