开发环境为macOS 10.13.4,所以暂时不涉及到Windows下的操作。
1. 安装mySql
首先从官网下载 mySql,我选择的是“macOS 10.13 (x86, 64-bit), DMG Archive”这个版本。点击下载后他提示需要登录,但其实点击左下角的“No thanks, just start my download”就可以直接下载了。
下载完成后点击安装即可
两种密码加密方式都可,如果没有其他原因,建议选择上面Strong的加密方式 设置root账户的密码安装完毕后启动mySql服务
一些mySql的基本配置都在这里 此处mySql服务已启动
添加环境变量。
如果以下操作有疑义,直接用文本编辑软件打开“你的用户/.bash_profile”文件,添加“PATH=$PATH:/usr/local/mysql/bin”到文件尾,并在terminal中执行“source ~/.bash_profile”。
//terminal终端中,打开.bash_profile文件
vim ~/.bash_profile
//文件编辑中,添加以下文本到文件末尾
PATH=$PATH:/usr/local/mysql/bin
//terminal终端中,刷新配置
source ~/.bash_profile
以上操作都完成后,在终端中输入
mysql --version
如果看到以下输出,则代表mySql安装成功
mysql Ver 8.0.11 for macos10.13 on x86_64 (MySQL Community Server - GPL)
2. go语言的mySql驱动安装
Go-MySQL-Driver
直接在终端中输入
go get -u github.com/go-sql-driver/mysql
进行安装。
3. 数据库连接
新建dbClient.go文件(以下代码用到了其他文件中定义的常量与struct,自己运行需要稍作修改)
package base
//_"third/go-sql-driver/mysql" 仅导入,促使内部初始化
import (
"database/sql"
_"third/go-sql-driver/mysql"
"config"
)
var defaultDBClient *DBClient;
///默认数据库连接
func DefaultDBClient() *DBClient {
if defaultDBClient != nil {
return defaultDBClient;
}
defaultDBClient = &DBClient{config.DataBaseURL,config.DataBaseUserName,config.DataBasePassword,config.DataBaseDBName,nil};
return defaultDBClient;
}
//--------------------------------------------------------------------
type DBClient struct {
///数据库地址
dataBaseURL string
///用户名
userName string
///密码
password string
//数据库名称
dataBaseName string
///数据库实例
DB *sql.DB
}
///连接数据库
func (client *DBClient) Connect() *Error {
db,err := sql.Open("mysql",client.userName+":"+client.password+"@tcp("+client.dataBaseURL+")/");
if err != nil {
return MakeErrorWithText(ERROR_DATABASE_CONNECT,err.Error());
}
//open不会去获得数据库连接有效性,当执行数据库操作的时候才会去连接,可以通过ping来验证数据库连接的有效性
err2 := db.Ping();
if err2 != nil {
return MakeErrorWithText(ERROR_DATABASE_CONNECT,err2.Error());
}
client.DB = db;
return nil;
}
///断开数据库连接
func (client *DBClient) Disconnect() *Error {
if client.DB == nil {
return MakeError(ERROR_DATABASE_DISCONNECT);
}
err := client.DB.Close();
if err != nil {
return MakeErrorWithText(ERROR_DATABASE_DISCONNECT,err.Error());
}
client.DB = nil;
return nil;
}
在main函数中调用
func main() {
var error = base.DefaultDBClient().Connect();
if error != nil {
println(error.Error());
} else {
println("连接成功");
}
}
运行后就可以看到控制台输出“连接成功”。
网友评论