使用 sql.Open 进行 SQLite3 数据库连接

Posted

技术标签:

【中文标题】使用 sql.Open 进行 SQLite3 数据库连接【英文标题】:Go SQLite3 database connection using sql.Open 【发布时间】:2015-05-25 16:31:28 【问题描述】:

我是 golang 新手,我很难连接到本地计算机上托管的 SQLite3 数据库。我已经创建了 SQLite3 数据库,并且已经完成了一些我喜欢的教程,但它们不起作用。目前我的代码基于另一个post,但我仍然无法与我的数据库建立连接。我相信我的问题在于我使用“sql.Open”,因为即使在咨询the sql package 之后,我也不清楚我需要提供的信息。

代码构建良好,但报告

unable to open database file
error Two tripped

当我尝试运行下面的代码时

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
    _"github.com/mattn/go-sqlite3"
)

func main() 
       
    db, err := sql.Open("sqlite3", "myuser:mypassword@/myDBname") //not clear on what is needed for the user and password
    if err != nil 
        fmt.Println(err)
        fmt.Println("error one tripped")
        return
    
    defer db.Close()
    err = db.Ping()
    if err != nil 
        fmt.Println(err)
        fmt.Println("error Two tripped")
        return
    
    fmt.Println("Ping")
    
    return

我没有为我正在使用的数据库设置用户名或密码,该数据库托管在本地计算机上。我在“sql.Open”中尝试了几种我的计算机用户名/密码和没有用户名/密码的组合,但我仍然遇到同样的问题。

我已安装并导入包 code.google.com/p/go-sqlite/go1/sqlite3 我的数据库与我的 Go 代码在同一个文件夹中。

如何使用连接到 SQLite 数据库? sql.Open 命令我做错了什么?

【问题讨论】:

【参考方案1】:

对于没有用户名或密码的情况,只需将包含文件名的数据库的完整路径放入即可。

例如:

db, err := sql.Open("sqlite3", "/user/home/workspace/myDBname.db")

【讨论】:

以上是关于使用 sql.Open 进行 SQLite3 数据库连接的主要内容,如果未能解决你的问题,请参考以下文章

SQLite3使用笔记——插入

使用 SQLite3 进行单元测试

database/sql接口使用

简易SQLite3数据库学习

如何使用 sequelize 基于 sqlite3 中的“日期”列进行查询?

SQLite3数据库