Задать вопрос
@VadimRublev
Go, front-end (ванильный).

Как сделать два пула соединений (с разными БД)?

Как сделать два пула соединений (с разными БД)?
Так просто не даёт. Почему нельзя?

db, err := sql.Open("mysql", ConnDB_One) // Сначала к одной БД подключение.
db2, err := sql.Open("mysql", ConnDB_Two) // Ниже к другой БД подключение.
  • Вопрос задан
  • 120 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
EvgenyMamonov
@EvgenyMamonov Куратор тега Go
Senior software developer, system architect
Именно так, как вы и написали
db1, err := sql.Open("mysql", DSN1) // Сначала к одной БД подключение.
db2, err := sql.Open("mysql", DSN2) // Ниже к другой БД подключение.

// настраиваете пулы как вам нужно
db1.SetMaxIdleConns(10)
db1.SetMaxOpenConns(100)

db2.SetMaxIdleConns(10)
db2.SetMaxOpenConns(100)
Полный пример кода

package main

import (
    "database/sql"
    "log"

    _ "github.com/go-sql-driver/mysql"
)

func main() {
    db1, err := sql.Open("mysql", `user1:password1@/dbname1`) // Сначала к одной БД подключение.
    if err != nil {
        log.Fatal(err)
    }

    db2, err := sql.Open("mysql", `user2:password2@/dbname2`) // Ниже к другой БД подключение.
    if err != nil {
        log.Fatal(err)
    }

    // настраиваете пулы как вам нужно
    db1.SetMaxIdleConns(10)
    db1.SetMaxOpenConns(100)

    db2.SetMaxIdleConns(10)
    db2.SetMaxOpenConns(100)
}

Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы