英文:
Go SQLite3 database connection using sql.Open
问题
我是新手,正在学习使用golang,并且在连接本地主机上的SQLite3数据库方面遇到了困难。我已经创建了SQLite3数据库,并且按照一些教程进行了尝试,但是它们都没有起作用。目前我的代码是基于另一个帖子,但我仍然无法连接到我的数据库。我认为问题出在我对"sql.Open"的使用上,即使在sql包的帮助下,我仍然不清楚需要提供哪些信息。
代码可以正常构建,但报告了以下错误:
无法打开数据库文件
错误二触发
当我尝试运行下面的代码时:
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") //不清楚需要为用户和密码提供什么信息
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"命令中做错了什么?
英文:
I am new to golang and I am a having a hard time connecting to an SQLite3 database hosted on the local machine. I have the SQLite3 database created and have worked through a few tutorials I have fond but they are not working. currently my code is based on another post but I am still unable to make a connection with my database. I believe my problem is in my use of "sql.Open" as I am not clear on the information that I need to provide even after consulting the sql package.
the code builds fine but reports
unable to open database file
error Two tripped
when I try to run the code below
<!-- begin snippet: js hide: false -->
<!-- language: lang-html -->
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
}
<!-- end snippet -->
I have not set a username or password for the database I am using, which is hosted on the local machine. I tried several combinations of my computer username/password and no username/password in "sql.Open" but I still have the same problem.
I have installed and imported package code.google.com/p/go-sqlite/go1/sqlite3
and my DB is in the same folder as my Go code.
How do I use make the connection to the SQLite Database? what am I doing wrong with the sql.Open command?
答案1
得分: 3
如果没有用户名或密码,只需将完整路径(包括文件名)放入数据库中。
例如:
db, err := sql.Open("sqlite3", "/user/home/workspace/myDBname.db")
英文:
For the case when there is no username or password simply put in the full path to the DB including the file name.
ex:
db, err := sql.Open("sqlite3", "/user/home/workspace/myDBname.db")
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论