mysql - 尝试使用 golang 插入表时出现 panic

标签 mysql sqlite go

我正在尝试使用 go lang 将数据插入到我使用 SQLite3 创建的数据库中。数据库名为 mydb,我的表名为 artists 并包含 3 列

这是我的代码:

package main

    import (
        "database/sql"
        "fmt"

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

    func main() {
        //create("testdb")
        db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/mydb")
        if err != nil {
            panic(err.Error())
        }
        defer db.Close()

        insert, err := db.Query("INSERT INTO artists (name,album,hits)values('x','y','z')")
        if err != nil {
            panic(err.Error())
        }
        defer insert.Close()
        fmt.Println("connected")
    }

这是我在运行 main.go

时遇到的错误
  panic: dial tcp 127.0.0.1:3306: connectex: No connection could be made because the target machine actively refused it.

goroutine 1 [running]:
main.main()
        C:/Users/HP/go/src/connectingToDb/main.go:20 +0x1e5
exit status 2

请注意,我已经在与 main.go 相同的文件中创建了数据库

最佳答案

你应该像这样打开连接到 sqlite: db, err := sql.Open("sqlite3", "my.db")

这是工作代码:

package main

import (
    "database/sql"
    "fmt"

    _ "github.com/mattn/go-sqlite3"
)

func main() {
    db, err := sql.Open("sqlite3", "my.db")
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

    _, err = db.Exec(`CREATE TABLE IF NOT EXISTS artists (`+
         ` id INTEGER PRIMARY KEY AUTOINCREMENT,`+
         ` name text,`+
         ` album text,`+
         ` hits text`+
    `)`)
    if err != nil {
        panic(err.Error())
    }

    insert, err := db.Query("INSERT INTO artists (name,album,hits) VALUES('x','y','z')")
    if err != nil {
        panic(err.Error())
    }
    defer insert.Close()
    fmt.Println("connected")
}

关于mysql - 尝试使用 golang 插入表时出现 panic ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53585476/

相关文章:

mysql - 如何在 ASP.NET 5 中将 Entity Framework 6 与 MySQL 一起使用?

PHP : could not find driver (PDO, MySql)

mysql - Golang数据库/SQL MYSQL 8数据库查询不一致

go - 如何在 Go 中将包分配给变量?

php - 从 mysql 中删除它喜欢数字的记录

Php和mysql pdo查询

ios - 更新现有 iOS 应用程序中的 sqlite 数据库

android - VACUUM 结果为 "Unable to open database file"

c - 当程序具有打开的数据库连接时,可以替换 sqlite 文件吗?

go - Go中的零检测