我在 C# 和 PostgreSQL 中出现错误“Too Many Clients Already”,我做错了什么吗?
这是我的主要代码
public class NationalService
{
private NpgsqlConnection conn;
protected string query;
public NationalService()
{
this.conn = ConnectionService.GetConnection();
}
public string GetNamaWilayah(string kodePropinsi, string kodeKabupaten)
{
this.query = "select namakabupaten from dim_gab_wilayah where kodepropinsi='" + kodePropinsi + "' and kodekabupaten='" + kodeKabupaten + "' group by namakabupaten";
string namaKabupaten;
using (NpgsqlCommand command = new NpgsqlCommand(this.query, this.conn))
{
using (NpgsqlDataReader dr = command.ExecuteReader())
{
while (dr.Read())
{
namaKabupaten = dr["namakabupaten"].ToString();
return namaKabupaten;
}
} …Run Code Online (Sandbox Code Playgroud) 我有个问题。我写了这个方法来打开sql连接。但这没有用。为什么这不起作用。
public SqlConnection connection( )
{
string DBName = ConfigurationManager.AppSettings["DBName"].ToString();
string ServerName = ConfigurationManager.AppSettings["ServerName"].ToString();
string UserId = ConfigurationManager.AppSettings["UserId"].ToString();
string DBPassword = ConfigurationManager.AppSettings["DBPassword"].ToString();
EMVTool.OSSPwdProcessor PwdPass = new EMVTool.OSSPwdProcessor();
String sClearPwd = "";
if (DBPassword.Length > 40)
sClearPwd = PwdPass.DecryptPwd(DBPassword);
else
sClearPwd = DBPassword;
string ConnectionString = "Server=" + ServerName + ";Database =" + DBName + ";UID =" + UserId + ";PWD =" + sClearPwd + ";MultipleActiveResultSets=True;";
SqlConnection connect = new SqlConnection(ConnectionString);
return connect;
}
Run Code Online (Sandbox Code Playgroud)
我正在调用类似打开 sql 连接的方法。
connection().Open();
Run Code Online (Sandbox Code Playgroud) 我想使用 GUI mySQL 客户端连接数据库服务器 10.0.0.5,该服务器可通过 vpn 远程服务器 vpn.my_vpn_server.com 访问。我可以用我的控制台做到这一点
:~$ ssh my_user@vpn.my_vpn_server.com
:~$ Enter passphrase for key : xxxxxxxx
:~$ mysql -h 10.0.0.5 -u db_user -ppwd
Run Code Online (Sandbox Code Playgroud)
但我想要一个 GUI( phpmyadmin 或 mySqlworkbench )。有什么帮助吗?
注意:这是一个与设计相关的问题,我找不到令人满意的答案。所以才来这里问的。
我有一个部署在云(Cloud Foundry)中的 Spring Boot 应用程序。该应用程序连接到 Oracle 数据库以检索数据。应用程序使用连接池(HikariCp)来维护与数据库的连接。假设连接数设置为 5。现在应用程序能够根据负载自动扩展。所有实例将共享同一个数据库。在任何时刻,同一应用程序可能有 50 个实例在运行,这意味着数据库连接总数将为 250 个(即 5 * 50)。
现在假设数据库只能处理 100 个并发连接。在当前场景中,20 个实例将用完 100 个可用连接。如果接下来的 30 个实例尝试连接到数据库会发生什么?如果这是设计问题,如何避免?
请注意,为简单起见,问题中提供的数字是假设的。实际数字要高得多。
我收到这个错误
错误 CS0012:类型“DbConnection”是在未引用的程序集中定义的。您必须添加对程序集“System.Data,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”的引用。(CS0012)
我正在尝试这样做:
private void SetConnection()
{
sql_con = new SQLiteConnection("DataSource=kyriosDB.db;Version=3;New=False;Compress=True;");
}
public void ExecuteQuery(string txtQuery)
{
SetConnection();
sql_con.Open();
sql_cmd = sql_con.CreateCommand();
sql_cmd.CommandText = txtQuery;
sql_cmd.ExecuteNonQuery();
sql_con.Close();
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我吗?
我想知道是否应该尽量减少 db_session 的使用?让我们考虑这两个等效的例子:
A)
def do_stuff():
with db_session:
task = orm.make_proxy(Task.select().first())
task.mark_started()
...
this_function_might_take_a_long_time(task)
...
with db_session:
task.mark_done()
Run Code Online (Sandbox Code Playgroud)
二)
@db_session
def do_stuff():
task = Task.select().first()
task.mark_started()
commit()
...
this_function_might_take_a_long_time(task)
...
task.mark_done()
Run Code Online (Sandbox Code Playgroud)
通过阅读文档,我可以看出 Pony不鼓励对db_sessions 进行微观管理
With this code each of view function you will define will be wrapped with db_session so you should not care about them.
Run Code Online (Sandbox Code Playgroud)
然而,这里 表明打开它可能会产生成本(编辑:它没有,请阅读答案)
Before sending the first query, Pony gets a database connection from the connection pool.
Run Code Online (Sandbox Code Playgroud)
我是否正确地说,B 之外的任何内容都是过早优化,并且仅应在有限的数据库连接数场景中考虑 A?
python orm database-connection premature-optimization ponyorm
我正在为购买的软件编写 DLL。
该软件将对某些任务执行多线程计算。
我的工作是将相对结果输出到数据库中。
但由于软件支持有限,数据的多线程输出有点困难。
关键问题是没有有关 DLL 函数上次执行的信息。
因此,数据库连接不会被关闭。
请问如果我保持连接打开并终止进程,会出现什么潜在问题?
我的平台是winserver 2008,PostgreSQL 10。
我在 AWS RDS 控制台中创建了一个 Oracle 数据库。尽管遵循了 Amazon 开发人员指南中的所有说明(特别请参阅本网页中的第 3 项),我仍无法从 Oracle SQL Developer 程序连接到它。
我收到此错误: IO 错误:网络适配器无法建立连接(供应商代码 17002)。
我已在防火墙设置中打开端口 1521。
我的 SQL Developer 连接属性窗格和 AWS RDS 控制台中的数据库属性的屏幕截图:
编辑:
AWS 安全组规则更新: 我采纳了人们的建议,并确保将端口 1521 添加到安全组入站和出站规则中。
入站规则屏幕截图 对于入站,我尝试了多种操作,例如允许所有 IP 地址或仅允许我的 IP 地址使用该端口,但在安全组上允许它是唯一不会出现 SQL Developer 连接错误“侦听器拒绝连接,并出现以下错误:TNS:侦听器当前不知道连接器描述符中给出的 SID。供应商代码 12505”。
我认为我不应该在入站规则上设置任何打开端口 1521 的规则,因为默认设置接受所有流量,我认为其中将包括端口 1521。
出站规则屏幕截图 对于出站,我为我的 IP 地址添加了端口 1521。
尽管进行了所有这些更改,我仍然遇到相同的错误。
任何指导将不胜感激!谢谢!
oracle database-connection amazon-web-services amazon-rds oracle-sqldeveloper
我的目标如下:
module.exports连接方法,以便文件可以require获取此对象并启动连接。然后,生成的客户端被“传递”到其他模块。我可以让前两个工作。但是,我不确定如何在项目源的其他地方处理 Redis 的其他事件。
例子:
connect-once.js我正在连接,async以便调用函数可以await完成连接。
const redis = require('redis')
//
async function clientOperations(options) {
let connObject = {}
let redisClient = redis.createClient(options)
return new Promise((resolve, reject) => {
redisClient.on('error', (err) => {
connObject = {
cacheClient: {},
connected: false
}
reject(connObject)
})
//
redisClient.on('connect', () => {
connObject = {
cacheClient: redisClient,
connected: true
}
resolve(connObject)
})
})
}
//
async function connect(options) { …Run Code Online (Sandbox Code Playgroud) 我有一个托管在 AWS RDS 上的 MySQL 数据库实例。我试图使用 VBA 上的 ADODB 连接来连接到数据库。它有效,但当我在 VB6 上使用相同的代码时,它收到“运行时错误 -2147467259 (80004005)”。我尝试更换驱动程序,但没有任何变化。
这是我在 VBA 上运行但在 VB6 项目上出错的代码(我刚刚复制并粘贴了它):
Set cnn = New ADODB.Connection
cnn.ConnectionString = "DRIVER={MySQL ODBC 8.0 Unicode Driver};" & _
";Server=myserver.rds.amazonaws.com" & _
";Database=UserManage" & _
";Uid=admin" & _
";Pwd=mypassword"`
Run Code Online (Sandbox Code Playgroud)
PS:我使用MySQL连接器8.0连接到数据库。我的 MySQL 服务器和 MySQL Workbench 版本是 8.0.31。