117.info
人生若只如初见

怎样在CentOS上使用Golang数据库

在CentOS上使用Golang与数据库进行交互是一个常见的任务,尤其是在构建Web应用程序时。以下是一些步骤和库,可以帮助你在CentOS上使用Golang连接和操作数据库。

安装Golang

首先,确保你的CentOS系统上已经安装了Golang。你可以按照以下步骤进行安装:

  1. 下载最新版本的Golang二进制文件:
wget https://golang.org/dl/go1.17.2.linux-amd64.tar.gz
  1. 解压下载的二进制文件到 /usr/local 目录下:
sudo tar -C /usr/local -xzf go1.17.2.linux-amd64.tar.gz
  1. 设置Golang的环境变量。编辑 /etc/profile 文件,并添加以下内容:
export PATH=$PATH:/usr/local/go/bin
  1. 使环境变量生效:
source /etc/profile

现在,你可以使用 go version 命令验证安装是否成功。

安装数据库

在CentOS上,你可以安装多种数据库,如MySQL、PostgreSQL等。以下是安装MySQL的示例步骤:

安装MySQL

  1. 安装MySQL的依赖项:
sudo yum install -y mysql-devel
  1. 下载并安装MySQL:
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo yum localinstall mysql80-community-release-el7-3.noarch.rpm
  1. 启动MySQL服务并设置开机自启动:
sudo systemctl start mysqld
sudo systemctl enable mysqld
  1. 运行安全安装脚本以配置MySQL:
sudo mysql_secure_installation

按照提示设置root密码和其他安全选项。

使用Golang连接MySQL

在CentOS上使用Golang连接MySQL数据库,你可以使用一些流行的库,如 gormgo-sql-driver/mysql。以下是使用 gorm 连接MySQL的示例:

  1. 安装 gormmysql 驱动:
go get -u gorm.io/gorm
go get -u gorm.io/driver/mysql
  1. 编写Golang代码连接MySQL:
package main

import (
    "fmt"
    "gorm.io/driver/mysql"
    "gorm.io/gorm"
)

type User struct {
    ID   uint
    Name string
    Age  int
}

func main() {
    dsn := "user:password@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
    db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
    if err != nil {
        panic("failed to connect database")
    }

    // Migrate the schema
    db.AutoMigrate(&User{})

    // Create
    db.Create(&User{Name: "John", Age: 30})

    // Read
    var user User
    db.First(&user, 1) // find user with id 1
    db.First(&user, "name = ?", "John") // find user with name "John"

    // Update - update user's age
    db.Model(&user).Update("Age", 25)

    // Delete - delete user
    db.Delete(&user, 1)
}

安装PostgreSQL

以下是安装PostgreSQL的示例步骤:

  1. 安装PostgreSQL的yum仓库:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
  1. 使用yum命令安装PostgreSQL服务器:
sudo yum install -y postgresql15-server postgresql15-contrib
  1. 初始化数据库并启动PostgreSQL服务:
/usr/pgsql-15/bin/postgresql-15-setup initdb
sudo systemctl start postgresql-15
sudo systemctl enable postgresql-15
  1. 允许远程连接并配置访问权限:
sudo vi /var/lib/pgsql/15/data/postgresql.conf
# 修改 listen_addresses 为 '*'
sudo vi /var/lib/pgsql/15/data/pg_hba.conf
# 添加允许远程连接的配置
  1. 重启服务并设置PostgreSQL用户和密码:
sudo systemctl restart postgresql-15
sudo -i -u postgres psql
# 设置密码
ALTER USER postgres PASSWORD 'your_password';
\q

使用Golang连接PostgreSQL

以下是使用 database/sql 包连接PostgreSQL的示例:

  1. 安装 database/sqllib/pq
go get -u github.com/lib/pq
  1. 编写Golang代码连接PostgreSQL:
package main

import (
    "database/sql"
    "fmt"
    _ "github.com/lib/pq"
)

type User struct {
    ID   int
    Name string
    Age  int
}

func main() {
    psqlInfo := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable",
        "localhost", 5432, "postgres", "your_password", "mydb")
    db, err := sql.Open("postgres", psqlInfo)
    if err != nil {
        panic(err)
    }
    defer db.Close()

    // Ping database to see if it's still alive
    err = db.Ping()
    if err != nil {
        panic(err)
    }

    fmt.Println("Successfully connected!")
}

通过以上步骤,你可以在CentOS上成功安装和使用Golang与数据库进行交互。根据你的具体需求,选择合适的数据库和相应的Golang库进行开发。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe4dfAzsKBQdSBl0.html

推荐文章

  • CentOS Swap对系统性能有何影响

    在CentOS系统中,Swap(交换空间)是一种虚拟内存技术,它在物理内存不足时将部分数据从内存移动到硬盘上,以释放物理内存空间供其他程序使用。虽然Swap可以在某...

  • CentOS SFTP支持哪些协议

    SFTP(Secure File Transfer Protocol)是一种基于SSH协议的安全文件传输协议。它提供了端到端的加密和身份验证,确保数据在传输过程中的安全性。SFTP利用SSH的安...

  • SSH在CentOS上的权限如何设置

    在CentOS上设置SSH权限,主要涉及以下几个方面: 用户权限: 确保只有授权的用户可以访问SSH。可以通过编辑/etc/ssh/sshd_config文件来配置允许登录的用户。

  • 如何在CentOS上进行Java跨平台编译

    在CentOS上进行Java跨平台编译,通常是指使用一个平台的工具来编译出可以在另一个平台上运行的Java代码。由于Java是一种跨平台的编程语言,你可以在任何支持Java...

  • 怎样优化CentOS SSH性能

    要优化CentOS系统的SSH性能,可以采取以下几种方法:
    修改SSH配置文件 备份配置文件:在进行任何修改之前,建议先备份原始的sshd_config文件。cp /etc/ssh/...

  • centos apache如何解决权限问题

    在 CentOS 系统中,Apache 服务器可能会遇到权限问题。以下是一些建议来解决这些问题: 更改文件和目录权限:
    确保 Apache 用户(通常是 apache 或 www-dat...

  • CentOS env变量设置步骤是什么

    在CentOS系统中设置环境变量的步骤如下:
    临时设置环境变量 打开终端: 使用快捷键 Ctrl + Alt + T 打开终端。 编辑当前会话的环境变量: 对于单个用户,可...

  • GIMP在Linux中有哪些隐藏功能

    GIMP是一个功能强大的图像编辑器,在Linux系统中它有许多隐藏功能,以下是一些介绍:
    基于GTK3的用户界面
    GIMP 3.0带来了基于GTK3的用户界面的重新打造...