dokumentacja MySQL mówi, że wiele hostów można oddzielić przecinkami:
Niestety, to zachowanie zostało zepsute w Connector/NET 8.0.18 i wcześniejszych (było to naprawione w 8.0.19 ).
Connector/NET 8.0.19 wypróbuje wiele hostów losowo
chyba że określisz priority
atrybut dla każdego hosta. Na przykład:
// 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);
Jeśli nie możesz zaktualizować do wersji 8.0.19, istnieje alternatywny dostawca OSS MySQL ADO.NET, który obsługuje wiele hostów oddzielonych przecinkami:MySqlConnector na GitHub
, NuGet
. Dodatkowo posiada Load Balance
opcja ciągu połączenia
który pozwala określić dokładny rodzaj równoważenia obciążenia, jaki chcesz:RoundRobin
, FailOver
, Random
, LeastConnections
.