Não é possível conectar ao servidor de banco de dados (mysql workbench)

87

Você poderia me ajudar a resolver esse problema?

Quando tento clicar em "consultar banco de dados" no menu de banco de dados no ambiente de trabalho Mysql. me dá um erro:

Cannot Connect to Database Server

Your connection attempt failed for user 'root' from your host to server at 
127.0.0.1:3306:Can't connect to mysql server on '127.0.0.1'(10061)

Please:

 1. Check that mysql is running on server 127.0.0.1
 2. Check that mysql is running on port 3306 (note: 3306 is the default, but this can 
    be changed)
 3. Check the root has rights to connect to 127.0.0.1 from your address (mysql rights 
    define what clients can connect to the server and from which machines) 
 4. Make sure you are both providing a password if needed and using the correct 
    password for 127.0.0.1 connecting from the host address you're connecting from
user948950
fonte
3
Essa resposta funcionou para mim. stackoverflow.com/questions/16129399/…
mcaleaa
No meu caso, ajuda de reinicialização simples - mas primeiro verifico @sergio sugestão - stackoverflow.com/a/7875732/6705161 .
dannydedog

Respostas:

105

O problema é provavelmente devido à autenticação de soquete sendo habilitada para o usuário root por padrão quando nenhuma senha é definida, durante a atualização para o ubuntu 16.04.

A solução é reverter para a autenticação de senha nativa. Você pode fazer isso fazendo login no MySQL usando autenticação de soquete, fazendo:

sudo mysql -u root

Uma vez conectado:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

que reverterá para a autenticação de senha nativa (padrão antigo).

Agora use password como senha sempre que exigido pelo MySQL.

Ayan
fonte
3
Funcionou para mim, estou surpreso, já configurei a senha estrita ao instalar o mysql e a mesma senha estrita usada com a consulta alter fornecida. Estou curioso para saber por que não funcionou na primeira tentativa em si
Vipul Patil
Muito obrigado! Este comportamento é criado apenas para o benefício do usuário root do Unix fazendo o login no mysql sem inserir a senha?
Igor de Lorenzi
1
Ótima solução. Obrigado mano!
Valney Faria
56

Tente abrir a services.mscpartir da caixa de pesquisa do menu iniciar e tente iniciar manualmente o serviço MySQL ou escrever diretamente services.msc na Runcaixa

Colin
fonte
1
não funcionou para mim. rodando diretamente da linha de comando ´C: \ Arquivos de programas \ MySQL \ MySQL Server 5.6 \ bin \ mysqld.exe --console´ (observe que o "d" entre "mysql" e ".exe" funcionou (ao abrir o linha de comando "como administrador"). Portanto, suponho que encontrar uma maneira de iniciar o serviço "como administrador" resolveria isso.
Adrien Be
5
Onde está a caixa de pesquisa do menu iniciar?
Everyone_Else
Minha solução foi executado Mysql-Workbench com sudo: sudo mysql-workbench . Não sabia onde encontrar services.msc
Luigi Lopez
33

Parece que há várias causas para esse erro.

Minha causa / solução

No meu caso, a causa foi que meu servidor foi configurado para aceitar apenas conexões de localhost. Corrigi-o seguindo este artigo: Como habilito o acesso remoto ao servidor de banco de dados MySQL? . Meu my.cnfarquivo não tinha skip-networkinglinha, então eu apenas mudei a linha

bind-address = 127.0.0.1

para

bind-address = 0.0.0.0

Isso permite conexões de qualquer IP, não apenas 127.0.0.1.

Em seguida, criei um usuário MySql que poderia se conectar a partir da minha máquina cliente executando os seguintes comandos de terminal:

# mysql -u root -p
mysql> CREATE USER 'username'@'1.2.3.4' IDENTIFIED BY 'password';
    -> GRANT ALL PRIVILEGES ON *.* TO 'username'@'1.2.3.4' WITH GRANT OPTION;
    -> \q

onde 1.2.3.4está o IP do cliente de onde você está tentando se conectar. Se você realmente tiver problemas, pode usar em '%'vez de '1.2.3.4'para permitir que o usuário se conecte de qualquer IP.

Outras Causas

Para obter uma lista bastante extensa, consulte Causas dos erros de acesso negado .

AJ Richardson
fonte
AFAIK, a criação do usuário é necessária porque o usuário root deve ser usado apenas para trabalho administrativo e sensatamente que deve ser limitado ao localhost. que usuário você cria além disso, depende de você!
user3791372
Link para causas de erros de acesso negado agora está quebrado.
Matt Coubrough
20

Você tentou determinar se este é um problema com o Workbench ou um problema geral de conexão? Experimente isto:

  1. Abra um terminal
  2. Tipo mysql -u root -p -h 127.0.0.1 -P 3306
  3. Se você conseguir se conectar com êxito, verá um prompt do mysql após digitar sua senha (digite quite Enter para sair).

Relate como isso funcionou.

Sergio
fonte
Oi, Diz que "mysql não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lote." Muito obrigado.
user948950
1
Você pode querer adicionar o diretório bin mysql (o bindiretório dentro do diretório MySQL principal) ao caminho do sistema . Então, o programa cliente mysql estará disponível em qualquer lugar. Ou você pode simplesmente executar esse comando após fazer o cd para o diretório bin do MySQL. Ambos devem funcionar.
Sergio
2
Ao conectar ao mysql com este comando $> mysql -u root -p -h 127.0.0.1 -P 3306 Digite a senha: ERROR 1045 (28000): Acesso negado para o usuário 'root' @ 'localhost' (usando senha: NÃO) [root @ localhost ~] # mysql -u root -p -h 127.0.0.1 -P 3306 Digite a senha: ERROR 1045 (28000): Acesso negado para o usuário 'root' @ 'localhost' (usando senha: SIM) [root @ localhost ~] # mysql -u admin -p -h 127.0.0.1 -P 3306 Digite a senha: ERROR 1045 (28000): Acesso negado para o usuário 'admin' @ 'localhost' (usando senha: SIM) [root @ localhost ~] #
Sumit Munot
15

Tive um problema semelhante no Mac OS e fui capaz de corrigi-lo desta forma:

No terminal, execute:

mysql -u root -p -h 127.0.0.1 -P 3306

Em seguida, fui solicitado a inserir a senha. Eu apenas pressionei enter, pois nenhuma senha foi configurada.

Recebi a seguinte mensagem:

Bem-vindo ao monitor MySQL. Os comandos terminam com; ou \ g. Seu ID de conexão MySQL é 181. Versão do servidor: 8.0.11 Homebrew.

Se você conseguiu entrar no mysql>, execute o seguinte comando:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Você deve receber uma mensagem como esta:

Consulta OK, 0 linhas afetadas (0,19 s)

Agora, sua senha é " senha " e seu nome de usuário é " root ".

Boa codificação :)

almawhoob
fonte
Provavelmente, isso não funcionará mais com instalações mais recentes, pois os logins anônimos estão desabilitados.
en_lorithai
9

Execute o comando ALTER USER. Certifique-se de alterar a senha para uma senha forte de sua escolha.

  1. sudo mysql # Faça login no mysql`

  2. Execute o comando abaixo

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
    

Agora você pode acessá-lo usando a nova senha.

Ref: https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04

Athira Ramachandran
fonte
7

Tive que iniciar o Workbench como administrador. Aparentemente, ele não tinha as permissões necessárias para se conectar ao processo do meu servidor de banco de dados localhost.

Clique com o botão direito no atalho do Workbench e selecione Run as Administrator. Na janela Propriedades do atalho, você pode clicar em "Avançado" e marcar a caixa ao lado de "Executar como administrador" para sempre executar o Workbench com privilégios de administrador.

Steven Ryssaert
fonte
5

O erro ocorre porque o servidor mysql não está iniciando em seu computador. Você deve iniciá-lo manualmente. Execute as seguintes etapas:

  1. Baixe e instale o servidor wamp de acordo com a sua versão bit (32 bits ou 64 bits) no seu computador ( http://wampserver-64bit.en.softonic.com/ ) este link permite que você baixe o servidor wamp para 64 bits.

  2. Assim que instalá-lo, você pode clicar duas vezes e executá-lo .. (você pode ver um ícone no lado direito da barra de tarefas. Ele pode estar oculto. Então você pode clicar na seta que mostra os aplicativos ocultos em execução). clique no ícone e vá para o Mysql

  3. Em seguida, vá para Serviço e lá você pode encontrar Iniciar / Reiniciar Serviços, clique nele.

  4. E agora está feito. Abra o mysql workbench e veja. Vai funcionar ..

Sanjaya
fonte
4

Lutei com esse problema por um tempo e fiz várias reinstalações do MySQL antes de descobrir isso.

Eu sei que o servidor MySQL estava funcionando bem porque pude acessar todos os meus bancos de dados usando a linha de comando.

Espero que funcione para voce.

No MySQL Workbench (5.2.47 CE)

clique em Gerenciar Instâncias de Servidor (canto inferior direito)

clique em Conexão

na caixa Conexão , selecione:

Instância local ($ ServerName) - [email protected]: 3306 '<' Padrão (TCP / IP)>

clique em Editar Selecionado ...

em Parâmetros, nome do host, altere localhost ou 127.0.0.1 para o seu nome NetBIOS

clique em Testar Conexão

Se isso funcionar para você, ótimo. Se não, altere o nome do host de volta ao que era.

KuBand12
fonte
1
o que é um nome NetBIOS?
UserYmY
2
ISSO funcionou para mim. O nome NetBIOS é o nome do computador, você pode lê-lo nas propriedades do sistema, guia 'Nome do computador', 'nome completo do computador'.
NeonMan 01 de
3

Para aqueles que ignoraram que a mensagem de erro inicial exibida é a seguinte:

O nome org.freedesktop.secrets não foi fornecido por nenhum arquivo .service

Certifique-se de instalar o gnome-keyring usando o seguinte

sudo apt install gnome-keyring
Bruno Kos
fonte
2

Meu motivo foi que tentei usar o mais recente MySQL Workbench 8.x para me conectar ao MySQL Server 5.1 (ambos rodando no Windows Server 2012).

Quando eu desinstalei o MySQL Workbench 8.xe instalei o MySQL Workbench 6.3.10, ele se conectou com sucesso ao localhostbanco de dados

alex
fonte
1

Para estar atualizado para versões superiores e visitantes posteriores:

Atualmente estou trabalhando em um win7 de 64 bits com diferentes ferramentas, incluindo o python 2.7.4 como pré-requisito para o google android ...

Quando eu atualizei de WB 6.0.8-win32 para versões superiores para ter desempenho de 64 bits, tive alguns problemas, por exemplo, em 6.3.5-winx64, tive um bug na exibição de detalhes das tabelas (exibição desordenada) que me fez fazer o downgrade para 6.2. 5-winx64.

Como um usuário GUI, a engenharia de avanço / retrocesso fácil e os itens relativos do servidor de banco de dados estavam funcionando bem, mas quando tentarmos Database>Connect to Database, teremos Not connectede teremos um erro de python se tentarmos executar uma consulta, no entanto, o serviço do servidor de banco de dados está totalmente executado e funcionando bem e este problema não é do servidor e sim do ambiente de trabalho. Para resolver isso, devemos usarQuery>Reconnect to Server para escolher a conexão DB explicitamente e então quase tudo parece bom (isso pode ser devido às minhas múltiplas conexões db e não consegui encontrar uma solução para definir a conexão db padrão no workbench).

Como uma observação: como estou usando a versão mais recente do Xampp (mesmo em linux de forma viciante :)), recentemente o Xampp usa mariadb 10 em vez de mysql 5.x faz com que a versão do arquivo mysql seja 10 pode causar alguns problemas, como engenharia de encaminhamento de procedimentos que pode ser resolvido via mysql_upgrade.exemas ainda quando tentarmos verificar uma conexão db o wb informará sobre a versão errada, porém não é crítica e funciona bem.

Conclusão: Assim, às vezes, os problemas de conexão do banco de dados no ambiente de trabalho podem ser causados ​​por ele mesmo e não pelo servidor (se você não tiver outros problemas relativos à conexão do banco de dados).

Alix
fonte
1

No meu caso, acabei de instalar o MySQL Workbench, mas depois de desinstalar o MySQL Workbench e instalar o instalador do MySQL e é o mesmo para 32 e 64 bits, em seguida, funcionando como um encanto. Espero que possa ser útil.

Shaik Elias
fonte
0

Eu também lutei com esse problema por um bom tempo.

Eu encontrei este tópico interessante do fórum do MySQL: http://forums.mysql.com/read.php?11,11388,11388#msg-11388

Eu também encontrei (obviamente) alguns bons SO Q / A.

Parece que a mensagem mencionada na pergunta do "user948950" pode vir de uma ampla gama de razões: arquivo de log muito grande, valores incorretos do arquivo mysql.ini, espaços no caminho do arquivo, problema de segurança / acl, entradas antigas no registro e assim por diante.

Então, depois de tentar por 3h consertar isso ... abandonei e resolvi fazer uma boa e velha reinstalação.

Este é o lugar onde este post de (novamente) este tópico do MySQL veio a ser útil , cito:

Gary Williams escreveu: Olá pessoal,

Tive exatamente o mesmo problema e foi assim que o fiz funcionar, começando com uma instalação que não funciona.

  1. Pare o serviço do Windows para qualquer instalação existente do mysql.

  2. Desinstale o Mysql.

Como acontece com a maioria das desinstalações, os arquivos antigos são deixados para trás. Se o seu diretório for C: \ mysql \ etc, exclua os arquivos innob, etc, mas deixe os próprios diretórios, bem como quaisquer bancos de dados existentes em 'dados'. Se o seu diretório for C: \ Arquivos de programas \ etc, exclua todos os diretórios mysql.

  1. Agora vale a pena executar o regedit para garantir que as entradas antigas do registro também sejam excluídas pela desinstalação. Se não, exclua-os.

  2. Não há problema em usar o novo instalador .msi (somente arquivos essenciais), no entanto ....

  3. Não use o caminho de instalação padrão! Algum gênio traçou um caminho com espaços! Escolha a instalação personalizada e selecione um caminho adequado, ou seja, C: \ mysql (nota de Adrien: C: \ mysqldata para ... os dados)

  4. Não opte por alterar as configurações de segurança. Desmarque a caixa relevante e a instalação será concluída sem a necessidade de definir uma senha de root.

Acho que me lembrei de tudo.

Boa sorte

Gary

Tive problemas ao simplesmente copiar / colar os bancos de dados que tinha em meu diretório de "dados" anterior para o novo. Então, a solução que encontrei foi exportar cada banco de dados (eu sei ... muito divertido) e, em seguida, reimportá-los um por um.

Para sua informação: usei o seguinte comando para importar C:/<MySQLInstallDir>/My SQL Server x.x/bin/mysql -u root -p <dbName> < "<dirPathOfDump>\<dumpName>.sql", ou seja, por exemploC:/mysql/MySQL Server 5.6/bin/mysql -u root -p mySupaCoolDb < "C:\mySupaCoolDbDump20130901.sql"

Adrien Be
fonte
0

Eu estava em situações semelhantes antes e da última vez descobri que era algum problema de atualização do Windows (não tenho certeza). Desta vez, abri o ambiente de trabalho MySQL e não encontrei nenhuma conexão com meu banco de dados local. Não consigo ver minhas tabelas, mas ontem consegui me conectar ao banco de dados.

Descobri que minha causa é que, depois de deixar meu computador hibernar por algum tempo e acordá-lo novamente, o serviço mysql não está funcionando. Minha solução: reinicie o serviço chamado "mysql" e execute novamente o ambiente de trabalho. Reiniciar o serviço demora um pouco, mas funciona.

WesternGun
fonte
0

Meu problema era que o servidor MySQL não estava realmente instalado. Eu executei o MySQL Installer, mas não instalei o servidor MySQL.

Eu executei novamente o instalador, clique em "Adicionar" e, em seguida, adicionei o servidor MySQL à lista. Agora funciona bem.

Pikamander2
fonte
0

O problema é que o servidor MYSQL não está instalado. Você pode obter o instalador aqui

Então assista a este tutorial de instalação de 6 minutos .

Se a criação de uma nova conexão no MYSQL Workbench não funcionar, certifique-se de executar essa conexão como root, conforme mostrado abaixo:

insira a descrição da imagem aqui

Se você não encontrar seu arquivo .ini, verifique esta resposta.

Justice Bringer
fonte