go语言连接数据库?go语言怎么和mysql数据库进行链接
本篇文章给大家谈谈go语言连接数据库,以及go语言怎么和mysql数据库进行链接对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
GO语言(三十):访问关系型数据库(上)
本教程介绍了使用 Godatabase/sql及其标准库中的包访问关系数据库的基础知识。
您将使用的database/sql包包括用于连接数据库、执行事务、取消正在进行的操作等的类型和函数。
在本教程中,您将创建一个数据库,然后编写代码来访问该数据库。您的示例项目将是有关老式爵士乐唱片的数据存储库。
首先,为您要编写的代码创建一个文件夹。
1、打开命令提示符并切换到您的主目录。
在 Linux或 Mac上:
在 Windows上:
2、在命令提示符下,为您的代码创建一个名为 data-access的目录。
3、创建一个模块,您可以在其中管理将在本教程中添加的依赖项。
运行go mod init命令,为其提供新代码的模块路径。
此命令创建一个 go.mod文件,您添加的依赖项将在其中列出以供跟踪。
注意:在实际开发中,您会指定一个更符合您自己需求的模块路径。有关更多信息,请参阅一下文章。
GO语言(二十五):管理依赖项(上)
GO语言(二十六):管理依赖项(中)
GO语言(二十七):管理依赖项(下)
接下来,您将创建一个数据库。
在此步骤中,您将创建要使用的数据库。您将使用 DBMS本身的 CLI创建数据库和表,以及添加数据。
您将创建一个数据库,其中包含有关黑胶唱片上的老式爵士乐录音的数据。
这里的代码使用MySQL CLI,但大多数 DBMS都有自己的 CLI,具有类似的功能。
1、打开一个新的命令提示符。
在命令行,登录到您的 DBMS,如下面的 MySQL示例所示。
2、在mysql命令提示符下,创建一个数据库。
3、切到您刚刚创建的数据库,以便您可以添加表。
4、在文本编辑器的 data-access文件夹中,创建一个名为 create-tables.sql的文件来保存用于添加表的 SQL脚本。
将以下 SQL代码粘贴到文件中,然后保存文件。
在此 SQL代码中:
(1)删除名为album表。首先执行此命令可以让您更轻松地稍后重新运行脚本。
(2)创建一个album包含四列的表:title、artist和price。每行的id值由 DBMS自动创建。
(3)添加带有值的四行。
5、在mysql命令提示符下,运行您刚刚创建的脚本。
您将使用以下形式的source命令:
6、在 DBMS命令提示符处,使用SELECT语句来验证您是否已成功创建包含数据的表。
接下来,您将编写一些 Go代码进行连接,以便进行查询。
现在你已经有了一个包含一些数据的数据库,开始你的 Go代码。
找到并导入一个数据库驱动程序,该驱动程序会将您通过database/sql包中的函数发出的请求转换为数据库可以理解的请求。
1、在您的浏览器中,访问SQLDrivers wiki页面以识别您可以使用的驱动程序。
2、使用页面上的列表来识别您将使用的驱动程序。为了在本教程中访问 MySQL,您将使用 Go-MySQL-Driver。
3、请注意驱动程序的包名称-此处为github.com/go-sql-driver/mysql.
4、使用您的文本编辑器,创建一个用于编写 Go代码的文件,并将该文件作为 main.go保存在您之前创建的数据访问目录中。
5、进入main.go,粘贴以下代码导入驱动包。
在此代码中:
(1)将您的代码添加到main包中,以便您可以独立执行它。
(2)导入 MySQL驱动程序github.com/go-sql-driver/mysql。
导入驱动程序后,您将开始编写代码以访问数据库。
现在编写一些 Go代码,让您使用数据库句柄访问数据库。
您将使用指向结构的指针sql.DB,它表示对特定数据库的访问。
编写代码
1、进入 main.go,在import您刚刚添加的代码下方,粘贴以下 Go代码以创建数据库句柄。
在此代码中:
(3)使用 MySQL驱动程序Config和FormatDSN类型以收集连接属性并将它们格式化为连接字符串的 DSN。
该Config结构使代码比连接字符串更容易阅读。
(4)调用sql.Open初始化db变量,传递 FormatDSN。
(5)检查来自的错误sql.Open。例如,如果您的数据库连接细节格式不正确,它可能会失败。
为了简化代码,您调用log.Fatal结束执行并将错误打印到控制台。在生产代码中,您会希望以更优雅的方式处理错误。
(6)调用DB.Ping以确认连接到数据库有效。在运行时, sql.Open可能不会立即连接,具体取决于驱动程序。您在Ping此处使用以确认 database/sql包可以在需要时连接。
(7)检查来自Ping的错误,以防连接失败。
(8)Ping如果连接成功,则打印一条消息。
文件的顶部现在应该如下所示:
3、保存 main.go。
1、开始跟踪 MySQL驱动程序模块作为依赖项。
使用go get添加 github.com/go-sql-driver/mysql模块作为您自己模块的依赖项。使用点参数表示“获取当前目录中代码的依赖项”。
2、在命令提示符下,设置Go程序使用的DBUSER和DBPASS环境变量。
在 Linux或 Mac上:
在 Windows上:
3、在包含 main.go的目录中的命令行中,通过键入go run来运行代码。
连接成功了!
接下来,您将查询一些数据。
go语言怎么连接oracle数据库
//假设的GOPATH指向C:\gohome
0.执行 go get github.com/wendal/go-oci8,然后肯定是报错了,没关系,代码会下载下来.
1.首先,你需要安装mingw到C:\mingw
2.然后,到Oracle官网,下载OCI及其SDK,解压到instantclient_11_2--当前最新版
3.从我的go-oci8库的windows文件夹,拷贝pkg-config.exe到C:\mingw\bin\,拷贝oci8.pc到C:\mingw\lib\pkg-config\
4.设置环境变量 PATH,值为原有PATH;C:\instantclient_11_2;C:\mingw\bin;
5.设置环境变量 PKG_CONFIG_PATH,值为 C:\mingw\lib\pkg-config
6.接下来,就最重要的,就是再执行一次,这次应该能成功的: go get github.com/wendal/go-oci8
7.测试一下:
cd%GOPATH%/src/github.com/wendal/go-oci8/example
go run oracle.go
#提醒一句, oracle.go里面的写的密码是system/123456,实例名XE
go语言怎么和mysql数据库进行链接
在网上找了一大堆例子,最后简化一下把,一下会从安装mysql开始,与大家分享一下如何用go链接服务器上的mysql我用的是ubuntu系统 1,安装mysql:sudo apt-get install mysql-server(记住root的密码假设密码为root123) 2,进入mysql:mysql-uroot-p然
在网上找了一大堆例子,最后简化一下把,一下会从安装mysql开始,与大家分享一下如何用go链接服务器上的mysql
我用的是ubuntu系统
1,安装mysql:sudo apt-get install mysql-server(记住root的密码假设密码为root123)
2,进入mysql:mysql-uroot-p然后输入密码
3,,创建一个数据库:create database people;
4,给数据库people添加用户:GRANT ALL PRIVILEGES ON people.* TO peo@localhost IDENTIFIED BY"peo123";
5,调整数据库配置以便于远程访问:GRANT ALL PRIVILEGES ON people.* TO peo@“%” IDENTIFIED BY"peo123";然后推出mysql执行:sudo nano/etc/mysql/my.cnf
修改bind-address=127.0.0.1到bind-address=机器的IP(就是安装mysql的机器的ip)
6,重启mysql:sudo/etc/init.d/mysql restart
7,建表:首先进入mysql:mysql-u peo-p
进入数据库下:use people
创建表:create table hello(age int, name varchar(10));
插入一条数据:insert into hello(age, name) values(19,"hello world");
至此数据库方面的工作已经做好,接下来是go语言了
8,首先下载mysql的驱动包(应该是这样叫)执行 go get github.com/go-sql-driver/mysql代码会下载到你的gopath下(执行export可以查看gopath)
接着就是下面的代码了
package main
import"database/sql"
import _"github.com/go-sql-driver/mysql"
import"encoding/json"
import"fmt"
type User struct{
Age int `json:"age"`
Name string `json:"name"`
}
func main(){
fmt.Println("start")
db, err:= sql.Open("mysql","peo:peo123@tcp(192.168.0.58:3306)/people?charset=utf8")
if err!= nil{
panic(err)
}
rows, err:= db.Query("select age,name from hello")
if err!= nil{
panic(err)
}
defer rows.Close()
for rows.Next(){
user:=&User{}
err= rows.Scan(&user.Age,&user.Name)
if err!= nil{
painc(err)
}
b, _:= json.Marshal(user)
fmt.Println(string(b))
}
println("end")
}
至此结束
go语言连接数据库和go语言怎么和mysql数据库进行链接的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!