编辑:端口已打开

编辑:端口已打开

我搜索了 Google 试图找到如何做到这一点,但本质上我想连接到同事的 MySQL 数据库以便在 Wordpress 安装上进行共同工作。

我运气不佳,一直收到无法连接的错误:

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()

连接详细信息是从我同事的连接字符串中复制而来的,但服务器被修改以匹配他的机器的 IP 地址。

WebMatrix MySQL 连接

我不确定是否必须打开防火墙端口或修改配置文件,但到目前为止我运气不佳。

(默认情况下,web matrix/iis express 很可能不会将其创建的 mysql 数据库设置为接受远程连接。如果有人知道如何改变这一点,那就太好了!)

有人有主意吗?

编辑:端口已打开

我在同事的机器上的 Windows 防火墙上打开了端口 3306。

现在我出现了以下错误:

Host 'DESKTOP019-PC' is not allowed to connect to this MySQL server

MySql.Data.MySqlClient.MySqlException (0x80004005): Host 'DESKTOP019-PC' is not allowed to connect to this MySQL server
   at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
   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()

我想我需要为该用户授予我的主机名权限,但鉴于我不知道数据库在哪里或如何通过命令行访问它(程序文件中没有正确的 MySQL 文件夹),这会很困难。

编辑:找到 MySQL 客户端

位于

Start > All Programs > MySQL > MySQL Server %version% > MySQL Command Line Client

http://forums.iis.net/t/1173668.aspx

编辑:授予用户权限

找到 SQL 客户端后,通过输入以下命令来修复连接:

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

http://31bit.com/technology/86-mysql-database/302-how-to-grant-remote-access-to-a-mysql-database

感谢 DKNUCKLES 推动端口。我疯狂地寻找 IIS express 的配置文件和内容,但只需打开端口并授予用户权限就足够了!

编辑:Wordpress 安装时拒绝访问。

现在我已经连接上了,但是我通过 wordpress 访问时被拒绝。我收到“建立数据库连接时出错”的错误,这是一个相当模糊的错误。

我进行了搜索并找到了一个可以测试连接的页面:

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);
?>

我输入了正确的凭证,将该页面添加到我的 wordpress 安装并访问了它。

我收到消息:

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

事实证明我也写错了用户名(我那天真的很忙) - 应该是wordpress457user 不是 wordpressuser457

当你花很长时间去寻找一件愚蠢的事情时,你会感到很讨厌。

希望这能帮助其他想要在未来做同样事情的人。

答案1

在没有任何附加信息的情况下,我最好的猜测是服务器不允许远程连接。这可能由多种原因造成

  1. 您的同事的计算机有防火墙阻止流量。您可以尝试禁用它以快速解决问题
  2. MySQL 实例未设置为允许远程连接。您可以尝试远程登录到您朋友的计算机,看看它是否允许流量。

    远程登录 192.168.100.32 3306

  3. 这也可能是一个权限问题 - 请参阅此链接可能的原因

相关内容