Golang连接使用本地MySQL数据库

Golang连接使用本地MySQL数据库,第1张

下载mysql数据库

macos:mysql下载

设置环境变量

PATH="$PATH":/usr/local/mysql/bin
如果直接在终端运行,则关闭终端会失效,需要每次配置,建议写入.bash_profile中

运行mysql

终端运行: mysql -u root -p密码
同样可以 mysql -u root -p 回车 然后输入密码

如图,则表示成功。
可以使用简单的命令检测一下:
show databases;
或者
use sql;
show tables;

使用\q退出即可

Golang 连接数据库
import (
	"database/sql"
	"fmt"
	"strings"

	_ "github.com/go-sql-driver/mysql" // 必须引入
)

//数据库配置
const (
	userName = "root" // 用户 尽量不要使用root 防止误删
	password = "XXXXXX" // 密码 
	ip       = "127.0.0.1"
	port     = "3306"
	dbName   = "test_db" // 数据库中的表名 需要已经存在
)

//Db数据库连接池
var DB *sql.DB

//注意方法名大写,就是public
func InitDB() {
	//构建连接:"用户名:密码@tcp(IP:端口)/数据库?charset=utf8"
	path := strings.Join([]string{userName, ":", password, "@tcp(", ip, ":", port, ")/", dbName, "?charset=utf8"}, "")

	//打开数据库,前者是驱动名,所以要导入: _ "github.com/go-sql-driver/mysql"
	DB, _ = sql.Open("mysql", path)
	//设置数据库最大连接数
	DB.SetConnMaxLifetime(100)
	//设置上数据库最大闲置连接数
	DB.SetMaxIdleConns(10)
	//验证连接
	if err := DB.Ping(); err != nil {
		fmt.Println("open database fail")
		return
	}
	fmt.Println("connnect success")
}

其中数据库中dbName需要已经存在,则使用命令在终端先生成数据库

create database test_db;
use test_db;
创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
例如:
CREATE USER 'xubenqi'@'localhost' IDENTIFIED BY '123456';

增加权限

GRANT privileges ON databasename.tablename TO 'username'@'host';
例如:
GRANT ALL ON *.* TO 'xubenqi'@'localhost';
*.* 表示为所有数据库数据表增加权限 all 表示增加所有权限 包括 create、drop、select、insert、update...

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/995310.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存