Com o WebMatrix, como faço para conectar-me a um banco de dados MySQL na máquina de um colega? [fechadas]

2

Eu vasculhei o Google tentando descobrir como fazer isso, mas essencialmente quero me conectar ao banco de dados MySQL de um colega para trabalhar em conjunto em uma instalação do Wordpress.

Não estou tendo sorte e continuo recebendo um erro sobre a impossibilidade da conexão:

Unable to connect to any of the specified MySQL hosts.

MySql.Data.MySqlClient.MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts.
   at MySql.Data.MySqlClient.NativeDriver.Open()
   at MySql.Data.MySqlClient.Driver.Open()
   at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
   at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
   at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
   at MySql.Data.MySqlClient.MySqlPool.GetConnection()
   at MySql.Data.MySqlClient.MySqlConnection.Open()
   at Microsoft.WebMatrix.DatabaseManager.MySqlDatabase.MySqlDatabaseProvider.TestConnection(String connectionString)
   at Microsoft.WebMatrix.DatabaseManager.IisDbManagerModuleService.TestConnection(DatabaseConnection databaseConnection, String configPathState)
   at Microsoft.WebMatrix.DatabaseManager.Client.ClientConnection.Test(ManagementConfigurationPath configPath)
   at Microsoft.WebMatrix.DatabaseManager.Client.DatabaseHierarchyInfo.EnsureLoaded()

Os detalhes da conexão são copiados da string de conexão do meu colega, com a exceção do servidor que está sendo modificado para corresponder ao endereço IP da sua máquina.

Eunãotenhocertezaseexisteumaportadefirewallqueeutenhoqueabrirouumarquivodeconfiguraçãoqueeutenhoquemodificar,maseunãoestoutendomuitasorteatéagora.

(Háumastrongchancedeque,porpadrão,owebmatrix/iisexpressnãoconfigureobancodedadosmysqlqueelecriaparaaceitarconexõesremotas.Sealguémsoubercomomudarisso,issoseriaótimo!)

Alguémtemalgumaideia?

EDIT:PortaAberta

Euabriaporta3306noFirewalldoWindowsnamáquinadomeucolega.

Agoratenhooseguinteerro:

Host'DESKTOP019-PC'isnotallowedtoconnecttothisMySQLserverMySql.Data.MySqlClient.MySqlException(0x80004005):Host'DESKTOP019-PC'isnotallowedtoconnecttothisMySQLserveratMySql.Data.MySqlClient.MySqlStream.ReadPacket()atMySql.Data.MySqlClient.NativeDriver.Open()atMySql.Data.MySqlClient.Driver.Open()atMySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuildersettings)atMySql.Data.MySqlClient.MySqlPool.GetPooledConnection()atMySql.Data.MySqlClient.MySqlPool.TryToGetDriver()atMySql.Data.MySqlClient.MySqlPool.GetConnection()atMySql.Data.MySqlClient.MySqlConnection.Open()atMicrosoft.WebMatrix.DatabaseManager.MySqlDatabase.MySqlDatabaseProvider.TestConnection(StringconnectionString)atMicrosoft.WebMatrix.DatabaseManager.IisDbManagerModuleService.TestConnection(DatabaseConnectiondatabaseConnection,StringconfigPathState)atMicrosoft.WebMatrix.DatabaseManager.Client.ClientConnection.Test(ManagementConfigurationPathconfigPath)atMicrosoft.WebMatrix.DatabaseManager.Client.DatabaseHierarchyInfo.EnsureLoaded()

Euachoqueprecisoconcederminhaspermissõesdenomedehostparaesseusuário,mascomonãoseiondeobancodedadosestáoucomoacessá-lovialinhadecomando(nãohápastadoMySQLadequadanosarquivosdeprograma),provardifícil.

EDIT:FoundMySQLClient

Localizadoem

Start>AllPrograms>MySQL>MySQLServer%version%>MySQLCommandLineClient

link

EDIT: conceder privilégios de usuário

Depois de encontrar o cliente sql, a correção da conexão foi feita inserindo o seguinte comando:

GRANT ALL PRIVILEGES ON databasename.* to ‘databaseuser’@'hostname' IDENTIFIED BY 'databasepassword';

link

Obrigado ao DKNUCKLES pelo push do porto. Eu estava ficando louco procurando por arquivos de configuração e coisas para o IIS express, mas uma abertura de porta e permissões de usuário garantidas bastaram!

EDIT: acesso negado na instalação do Wordpress.

Agora eu conectei, recebo acesso negado via wordpress. Eu estava recebendo "Erro ao estabelecer conexão com o banco de dados", que foi um erro muito vago.

Eu fiz uma pesquisa e encontrei uma página que pode testar a conexão:

testconnection.php

<?php
    $link = mysql_connect('databaseip_or_localhost', 'databaseuser', 'databasepassword');
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
    echo 'Connected successfully';
    mysql_close($link);
?>

Eu coloquei as credenciais corretas, adicionei a página à minha instalação do wordpress e a visitei.

Recebi a mensagem:

Could not connect: Access denied for user 'wordpressuser457'@'DESKTOP019-PC' (using password: YES)

Descobri que eu tinha escrito o nome de usuário errado também (eu estava tendo um dia muito longo) - deveria ter sido wordpress457user NÃO wordpressuser457 .

Odeie quando uma coisa estúpida leva séculos para você encontrar.

Espero que isso ajude qualquer pessoa que queira fazer o mesmo no futuro.

    
por Ash Clarke 13.12.2012 / 17:52

1 resposta

3

Sem nenhuma informação adicional, meu melhor palpite é que o servidor não está permitindo conexões remotas. Isso pode ser causado por várias razões

  1. O computador de seus colegas tem um firewall bloqueando o tráfego. Você pode tentar desabilitá-lo para solucionar rapidamente
  2. A instância do MySQL não está configurada para permitir conexões remotas. Você pode tentar telnet para o computador de seus amigos e ver se ele permite o tráfego.

    telnet 192.168.100.32 3306

  3. Também pode ser um problema de permissões - Consulte este link para uma possível causa

por 13.12.2012 / 18:01