在CentOS系统中,使用Golang连接数据库的方法与在其他Linux发行版中使用的方法相同。以下是使用Golang连接MySQL和PostgreSQL数据库的示例。
首先,确保你已经在CentOS上安装了Golang。如果尚未安装,请按照以下步骤操作:
wget https://golang.org/dl/go1.16.5.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.16.5.linux-amd64.tar.gz
echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc
source ~/.bashrc
对于MySQL,我们将使用go-sql-driver/mysql
驱动。对于PostgreSQL,我们将使用pq
驱动。要安装这些驱动,请运行以下命令:
go get -u github.com/go-sql-driver/mysql
go get -u github.com/lib/pq
创建一个名为main.go
的文件,并添加以下代码以连接到MySQL和PostgreSQL数据库。
对于MySQL:
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
dsn := "username:password@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
db, err := sql.Open("mysql", dsn)
if err != nil {
panic(err)
}
defer db.Close()
err = db.Ping()
if err != nil {
panic(err)
}
fmt.Println("Connected to MySQL!")
}
对于PostgreSQL:
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
func main() {
connStr := "user=username dbname=dbname password=password sslmode=disable"
db, err := sql.Open("postgres", connStr)
if err != nil {
panic(err)
}
defer db.Close()
err = db.Ping()
if err != nil {
panic(err)
}
fmt.Println("Connected to PostgreSQL!")
}
请确保将username
、password
、localhost
、3306
(MySQL)或5432
(PostgreSQL)、dbname
替换为你的实际数据库凭据和设置。
在终端中,导航到包含main.go
文件的目录,并运行以下命令:
go run main.go
如果一切正常,你应该看到类似于以下的输出:
Connected to MySQL!
或
Connected to PostgreSQL!
这表明你已经成功地在CentOS上使用Golang连接到了数据库。