我有一个.NET应用程序,它在Amazon Aurora RDS中的MySQL数据库上执行查询.该数据库是MySQL 5.6数据库 – Aurora附带的版本.我对数据库中的模式(名称:flight)执行查询(名称:SSIMLoader).我正在使用MySQL 6.9.8.0库...
![](https://oss.womengda.net/imgfile/2310/1ER2I41E3P-53N9.jpg)
我有一个.NET应用程序,它在Amazon Aurora RDS中的MySQL数据库上执行查询.该数据库是MySQL 5.6数据库 – Aurora附带的版本.
我对数据库中的模式(名称:flight)执行查询(名称:SSIMLoader).我正在使用MySQL 6.9.8.0库.
edit:连接字符串指向群集中的主服务器,而不是指向特定服务器.
执行插入,选择和更新时会发生错误,因此没有真正的模式.即使简单的select语句也会随机失败
但是,通过MySQL工作台执行查询时,我们没有收到此类错误.
重新启动服务器后,错误消失了几天然后返回.
我们有一些非常激烈的查询,可以在长时间内将CPU提高到90%,但即使在CPU降低到10%之后,错误仍然存??在.
有没有其他人经历过这个,如果有的话,你是怎么过去的?
提前致谢.
>编辑:
终于再次得到错误:
MySql.Data.MySqlClient.MySqlException (0x80004005): Unknown database ‘flight’
at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
at MySql.Data.MySqlClient.NativeDriver.ReadOk(Boolean read)
at MySql.Data.MySqlClient.MySqlConnection.ChangeDatabase(String databaseName)
at MySql.Data.MySqlClient.MySqlConnection.Open()
at MySql.Data.MySqlClient.MySqlConnection.Open()
at Universal.Access.Database.BaseDatabaseConnection.EstablishFactoryConnection()
at Universal.Access.Database.BaseDatabaseConnection.ExecuteReader(CommandType commandType, CommandText commandText)
at Universal.Core.DataModel.ExecutableDatabaseConnection.ExecuteQuery(String sqlQuery) in C:\tc-projects\universal-platform\Universal.Core\DataModel\ExecutableDatabaseConnection.cs:line 65
这是正在运行的查询:
UP-DEV | Universal.Core.Data.Importer Error finding current record, SQL: SELECT aircraft_config,updated_by,asa_flight_id,atd_utc,bay,terminal,is_cancelled,flight_number,created_at,from_iata,flight_date_utc,std_local,takeoff_time_local,is_international,is_aerocare,cobt_local,customer_atd_local,takeoff_time_utc,std_utc,atd_local,asa_state,aircraft_type,customer_atd_utc,carrier_code,updated_at,gate,service_type,etd_local,cobt_utc,flight_status,etd_utc,aircraft_rego,created_by,id,flight_date,to_iata FROM flight.departure_flight WHERE carrier_code='JQ' AND flight_date_utc='2017-01-20T00:00:00' AND flight_number='57' AND from_iata='MEL'. Database returned: Unknown database 'flight'
解决方法:
虽然我不确定具体触发问题的原因(看起来开放连接可能会以某种方式在RDS集群端以破坏状态结束),但似乎这个问题因激进的连接池和重用而被激怒.客户端发生在MySQL .NET Connector中.
一旦出现问题,受影响的连接似乎只停留在池中,从池中任意选择并重复使用. (很可能与您如何看到问题在启动后继续随机发生有关.)
将Connection Lifetime=x添加到连接字符串,x是连接保持活动状态以便重复使用的时间(以秒为单位),似乎至少可以减少症状.
本文标题为:c# – AWS Aurora服务器有时会响应“未知数据库:…”
![](/xwassets/images/pre.png)
![](/xwassets/images/next.png)
- C#正则表达式实用大全(建议收藏!) 2023-07-18
- C#设计模式之Mediator中介者模式解决程序员的七夕缘分问题示例 2022-11-15
- 秒表计时器以及STOPWATCH(实例讲解) 2022-11-23
- WPF实现自带触控键盘的文本框 2023-07-04
- c# – 用于只读字典访问的最有效的内存数据结构 2023-09-19
- C#对桌面应用程序自定义鼠标光标 2023-06-21
- C#入门之定义类成员与接口实现 2023-06-05
- Unity实现批量Build打包详解 2023-05-11
- Unity3D基于OnGUI实时显示FPS 2023-02-02
- WPF实现绘制扇形统计图的示例代码 2023-07-04