标签: database-connection

C# 和 PostgreSQL 中已有太多客户端

我在 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)

c# postgresql database-connection connection-pooling

2
推荐指数
1
解决办法
6501
查看次数

连接未打开

我有个问题。我写了这个方法来打开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)

c# sql database-connection

2
推荐指数
1
解决办法
6805
查看次数

如何使用 GUI 客户端通过 VPN 隧道访问 mysql 数据库服务器

我想使用 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 )。有什么帮助吗?

vpn database-connection phpmyadmin mysql-workbench

2
推荐指数
1
解决办法
2万
查看次数

连接池和实例扩展

注意:这是一个与设计相关的问题,我找不到令人满意的答案。所以才来这里问的。

我有一个部署在云(Cloud Foundry)中的 Spring Boot 应用程序。该应用程序连接到 Oracle 数据库以检索数据。应用程序使用连接池(HikariCp)来维护与数据库的连接。假设连接数设置为 5。现在应用程序能够根据负载自动扩展。所有实例将共享同一个数据库。在任何时刻,同一应用程序可能有 50 个实例在运行,这意味着数据库连接总数将为 250 个(即 5 * 50)。

现在假设数据库只能处理 100 个并发连接。在当前场景中,20 个实例将用完 100 个可用连接。如果接下来的 30 个实例尝试连接到数据库会发生什么?如果这是设计问题,如何避免?

请注意,为简单起见,问题中提供的数字是假设的。实际数字要高得多。

oracle spring database-connection cloud-foundry spring-boot

2
推荐指数
1
解决办法
3142
查看次数

错误 CS0012:类型“DbConnection”是在未引用的程序集中定义的

我收到这个错误

错误 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)

有人可以帮助我吗?

c# database sqlite database-connection

2
推荐指数
1
解决办法
5670
查看次数

我应该尽量减少 Pony ORM 中 db_session 的使用吗?db_session 的目的是什么?

我想知道是否应该尽量减少 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

2
推荐指数
1
解决办法
1669
查看次数

如果一个进程建立了多个 PostgreSQL 连接并在没有关闭它们的情况下终止,会发生什么?

我正在为购买的软件编写 DLL。

该软件将对某些任务执行多线程计算。

我的工作是将相对结果输出到数据库中。

但由于软件支持有限,数据的多线程输出有点困难。

关键问题是没有有关 DLL 函数上次执行的信息。

因此,数据库连接不会被关闭。

请问如果我保持连接打开并终止进程,会出现什么潜在问题?

我的平台是winserver 2008,PostgreSQL 10。

windows postgresql database-connection libpq

2
推荐指数
1
解决办法
839
查看次数

无法从 Oracle SQL Developer 与 AWS RDS Oracle 数据库实例建立连接

我在 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

2
推荐指数
1
解决办法
6804
查看次数

NodeJS - Redis 连接事件

我的目标如下:

  • 仅在程序启动时连接到 Redis 实例一次。
  • 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)

events database-connection redis node.js

2
推荐指数
1
解决办法
8778
查看次数

MySQL 连接在 vb6 上出现“运行时错误 -2147467259 (80004005)”,但适用于 VBA Excel

我有一个托管在 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。

mysql database vb6 vba database-connection

2
推荐指数
1
解决办法
900
查看次数