sql >> データベース >  >> RDS >> Mysql

Golang、mysql:エラー1040:接続が多すぎます

    sql.Openは、データベースへの接続を実際には開きません。

    sql.DBは、データベースへの接続のプールを維持します。データベースにクエリを実行するたびに、プログラムはこのプールから接続を取得しようとするか、そうでない場合は新しい接続を作成しようとします。これらの接続は、閉じるとプールに戻されます。

    これがrows.Close()です does.Your db.QueryRow("...") Scan(...)を呼び出すと、内部的に同じことを行います 。

    基本的な問題は、作成するクエリが多すぎて、それぞれに接続が必要であるが、接続を十分に速く閉じていないことです。このように、プログラムはクエリごとに新しい接続を作成する必要があります。

    SetMaxOpenConns を呼び出すことにより、プログラムが使用する接続の最大数を制限できます。 sql.DBで。

    http://go-database-sql.org/surprises.html を参照してください。 詳細については。



    1. DBCCCLONEDATABASEの用途の拡大

    2. MSAccessチームのスペシャルゲストミハルバーと一緒に参加しましょう!

    3. MySQLでデータベースとテーブルを作成および削除する方法

    4. postgresqlの文字列リテラルとエスケープ文字