使用适用于MySQL集群的AWS Elastic Load Balancer

时间:2019-12-16 01:42:15

标签: mysql amazon-web-services load-balancing amazon-elb

我有一个连接到MySQL群集(即Galera群集)的Web服务器...该群集工作正常(如果我在MySQL的第一个实例上更新记录,则在第二个实例上自动更新)。问题是我需要Web服务器和MySQL实例之间的负载平衡器...

所以我要做的是设置一个AWS Network Load Balancer(NLB在网络层上工作,在我的情况下为TCP)...我已将2个MySQL实例添加到NLB的Target组(它们的私有IP)中。

enter image description here

现在,我继续更新Web服务器中的连接字符串以连接到NLB:

<add name="MyDB" connectionString="Server=my-nlb-ap-southeast-2.amazonaws.com; Port=3306; Database=mydb; Uid=user1; Pwd=mypassword; Protocol=TCP" providerName="MySql.Data.MySqlClient"/>

但是出现以下错误:

  

[MySqlException(0x80004005):无法连接到任何   指定的MySQL主机。] MySql.Data.MySqlClient.NativeDriver.Open()   +1734 MySql.Data.MySqlClient.Driver.Open()+60 MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder   设置)+309
  MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()+18
  MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()+290
  MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()+151
  MySql.Data.MySqlClient.MySqlPool.GetConnection()+60
  MySql.Data.MySqlClient.MySqlConnection.Open()+1588
  MySql.Data.MySqlClient.MySqlProviderServices.GetDbProviderManifestToken(DbConnection   连接)+182
  System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken(DbConnection   连接)

当我尝试从Web服务器连接到MySQL时,得到以下信息:

enter image description here

enter image description here

这表明Web服务器可以通过NLB访问MySQL实例,但是我不知道为什么连接字符串不起作用。

我已经打开了端口3306上的所有IP,并且可以从不在VPC中的本地计算机通过NLB连接到MySQL:

enter image description here

但是Web服务器连接字符串不起作用...


我不确定是否可以为此目的使用NLB?

0 个答案:

没有答案