【问题标题】:Connection to Azure MySQL server fails due to incorrect connection string由于连接字符串不正确,连接到 Azure MySQL 服务器失败
【发布时间】:2017-05-17 22:24:56
【问题描述】:

尝试从 mysql 客户端连接到我在 Azure 中的 MySQL 服务器时,我收到以下错误,即使我使用了正确的用户名和服务器名称。我该如何解决这个问题?

连接字符串可能不正确。请访问门户以获取参考。

【问题讨论】:

    标签: mysql azure azure-database-mysql


    【解决方案1】:

    连接到 Azure Database for MySQL 的服务器实例时,无论是从 mysqlexe 客户端还是 MySQL 工作台,都需要遵循 <username@hostname> 格式。我们建议您从 Azure 门户获取客户端的完整连接字符串,并在连接到 MySQL 服务器时使用它。

    阅读How to get Connection Information,了解更多关于如何从各种客户端连接到您的 MySQL 服务器的信息。

    【讨论】:

      【解决方案2】:

      我也有同样的问题,看来这与 MySQL Shell 有关。不是经典的 mysql.exe 命令行工具。我尝试从 MySQL Shell 中连接到我的 MySQL Azure 数据库,如下所示:

      mysql-sql> \sql
      mysql-sql> \connect -c myuser@myserver.mysql.database.azure.com
      Creating a Classic Session to 'myuser@myserver.mysql.database.azure.com'
      Enter password: *********
      ERROR: 2001 (28000): The connection string may not be right. Please visit portal for references.
      mysql-sql>
      

      根据 Azure 文档(如上所述),用户名应为“username@servername”,但无法使用 MySQL Shell 指定。

      有没有人通过 MySQL Shell 成功连接到 Azure MySQL 数据库?

      我可以补充一点,我已经使用经典的 mysql.exe 测试了相同的连接信息,并且以下工作正常:

      mysql.exe -u myuser@myserver -h myserver.mysql.database.azure.com -p
      

      我的猜测是,真正的问题是 MySQL Shell 不能接受用户名中的 at 符号 (@)。

      【讨论】:

      • MS对此还不是很清楚,这篇文章澄清了这一点。所以谢谢。为了限定我对“不清楚”的意思,这是我的观察。假设我的帐户是; myuser@mytestsql.mysql.database.azure.com 在大多数情况下,用户名字段中的 myuser@mytestsql 都可以使用,例如在 MySQL 工作台中。登录:myuse@mytestsql 有效!但有时我需要使用完全限定的主机来完全限定用户名,例如登录:myuser@mytestsql.mysql.database.azure.com IntelliJ 内置的 MySQL 客户端就是这种情况。
      【解决方案3】:

      在用户名部分使用 username@hostname 对我有用。

      【讨论】:

        猜你喜欢
        • 2020-03-06
        • 1970-01-01
        • 2021-09-20
        • 2021-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-30
        相关资源
        最近更新 更多