Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Failover da cadeia de conexão do MySQL c #


A documentação do MySQL diz que vários hosts podem ser separados por vírgulas:

Infelizmente, esse comportamento foi interrompido no Connector/NET 8.0.18 e anterior (foi fixado em 8.0.19 ).

O Connector/NET 8.0.19 tentará vários hosts ao acaso a menos que você especifique uma priority atributo para cada host. Por exemplo:
// hosts will be tried at random
host=10.10.10.10:3306,192.101.10.2:3305,localhost:3306;uid=test;password=xxxx;

// hosts will be tried in descending priority order
server=(address=192.10.1.52:3305,priority=60),(address=localhost:3306,priority=100);

Se você não puder atualizar para 8.0.19, há um provedor OSS MySQL ADO.NET alternativo que suporta vários hosts delimitados por vírgulas:MySqlConnector no GitHub , NuGet . Além disso, possui um Load Balance opção de string de conexão que permite especificar o tipo exato de balanceamento de carga desejado:RoundRobin , FailOver , Random , LeastConnections .