温馨提示×

Golang在Debian上的数据库操作

小樊
41
2025-11-29 07:56:41
栏目: 编程语言

在Debian上使用Golang进行数据库操作,首先需要选择一个数据库。这里以MySQL为例,介绍如何在Debian上使用Golang连接和操作MySQL数据库。

  1. 安装MySQL数据库

在Debian上安装MySQL数据库,可以使用以下命令:

sudo apt-get update
sudo apt-get install mysql-server

安装完成后,运行以下命令以确保MySQL服务正在运行:

sudo systemctl status mysql
  1. 安装Golang MySQL驱动

在Golang项目中,需要使用一个MySQL驱动来连接和操作数据库。这里我们使用go-sql-driver/mysql驱动。在项目目录下运行以下命令安装:

go get -u github.com/go-sql-driver/mysql
  1. 编写Golang代码

创建一个名为main.go的文件,并编写以下代码以连接到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 the database!")

	// 创建表
	_, err = db.Exec("CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT)")
	if err != nil {
		panic(err)
	}
	fmt.Println("Table created!")

	// 插入数据
	_, err = db.Exec("INSERT INTO users (name, age) VALUES (?, ?)", "John Doe", 30)
	if err != nil {
		panic(err)
	}
	fmt.Println("Data inserted!")

	// 查询数据
	rows, err := db.Query("SELECT id, name, age FROM users")
	if err != nil {
		panic(err)
	}
	defer rows.Close()

	for rows.Next() {
		var id int
		var name string
		var age int
		err = rows.Scan(&id, &name, &age)
		if err != nil {
			panic(err)
		}
		fmt.Printf("ID: %d, Name: %s, Age: %d\n", id, name, age)
	}

	// 检查查询过程中的错误
	err = rows.Err()
	if err != nil {
		panic(err)
	}
}

请将dsn变量中的usernamepassworddbname替换为实际的MySQL数据库用户名、密码和数据库名。

  1. 运行Golang代码

在项目目录下运行以下命令编译并运行Golang代码:

go run main.go

如果一切正常,您将看到与MySQL数据库的连接、创建表、插入数据和查询数据的输出。

这只是一个简单的示例,您可以根据需要修改代码以执行其他数据库操作。更多关于Golang和MySQL的信息,请参考以下资源:

0