Ошибка при создании соединения с phpmyadmin с использованием golang "не синхронизированных команд c. Вы запускали несколько операторов одновременно?" - PullRequest
0 голосов
/ 11 июля 2020

У меня возникла проблема при извлечении данных из базы данных MySQL с использованием golang. Ниже приведен мой код и ошибка, с которой я столкнулся

package main

import (
    "database/sql"
    "fmt"

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

func ConnectMsqlDb() (db *sql.DB, err error) {
    db, err = sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s:"+sqlDbPort+")/"+sqlDB, sqlUserName, sqlPassword, dbServerIP))
    if err != nil {
        return nil, err
    }
    //defer db.Close()
    err = db.Ping()
    if err != nil {
        return nil, err
    }
    return db, nil
}
func GetSqlData() (err error, data interface{}) {
    db, err := ConnectMsqlDb()
    if err != nil {
        // here it will returning me the error
        return err, nil
    }
    rows, err := db.Query("SELECT * FROM users")
    if err != nil {
        return err, nil
    }
    for rows.Next() {
    }
    defer db.Close()
    fmt.Println(rows)
    return err, rows
}
func main() {
    err, data := GetSqlData()
    fmt.Println("data", data, "err", err)
}

ошибка

data commands out of sync. Did you run multiple statements at once?

Кто-нибудь может сказать мне, почему я столкнулся с этой проблемой

1 Ответ

0 голосов
/ 11 июля 2020

Если ошибка возникает при открытии соединения с mysqld, возможно, что MySQL сервер (mysqld) блокирует подключение хоста к нему. Это означает, что mysqld получил много запросов на соединение от данного хоста, которые были прерваны посередине.

Чтение почему ? Чтобы убедиться, что вы также можете просмотреть журналы БД. Таким образом, способ разблокировать его - это пропустить sh кэшированные хосты с помощью MySQL CLI:

mysql> FLUSH HOSTS;

И затем снова попытаться подключиться.

Плюс, дайте это ответ тоже прочтите. Может помочь.

Вы можете проверить состояние сокета, используемого mysqld, используя (Для Linux):

netstat -nt

Проверьте, нет ли ранее зависшего соединения от хоста к mysqld. Если да, то убейте его и попробуйте снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...