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.