我们在Azure云(App服务/功能应用程序)中使用不同的服务连接到Ubuntu上的On-Premise MySql数据库。这种工作时间非常好,但有时甚至完全随机我们收到了以下错误。
详情:
连接工作时间最长,一切似乎都配置正确。仅有时例如每27个请求都会出错。我假设收到的错误消息可能是错误的。
我们日志中提取的示例:
2018-02-21 15:53:55.647 +00:00 [Error] Microsoft.EntityFrameworkCore.Database.Connection: An error occurred using the connection to database 'XXXXXXX' on server 'XXX.XXX.XXX.XXX'.
MySql.Data.MySqlClient.MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts.
at MySqlConnector.Core.ServerSession.<ConnectAsync>d__56.MoveNext() in C:\projects\mysqlconnector\src\MySqlConnector\Core\ServerSession.cs:line 212
我们从不同的站点连接到此数据库,但此错误仅出现在Azure云中。 我们多次仔细检查连接字符串,防火墙设置和传出IP。
连接字符串:
Persist Security Info=True;server=xxx.xxx.xxx.xxx;database=xxxxxx;uid=xxxxx;password=xxxxx;port=3306;
在某些日子里,我们没有收到此错误,但是在前几天每天多次并且完全随机。很高兴从您那里获得帮助以确定问题并尽快解决。非常感谢!
答案 0 :(得分:1)
没有代码示例很难提供帮助
你只能查看常见的东西:
- 连接字符串正确的顺序
“Server = TheServerAddress; Port = YourPortNumber; Database = YourDatabase; Uid = YourUsername; Pwd = YourPassword;”
- 添加默认端口。例:3306连接线
- 检查查询代码是否异步,以及其他应用程序中是否相同
您也可以尝试重试:
https://blogs.msdn.microsoft.com/bartr/2010/06/20/sql-azure-connection-retry-update/
http://peterkellner.net/2011/01/21/sqlazure-connection-retry-problem-using-best-practices/