add mysql config moudles
This commit is contained in:
parent
d59d2f9aac
commit
1f68bd94f3
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
/.idea/*
|
/.idea/*
|
||||||
|
*.log
|
||||||
|
29
cmd/config/config.go
Normal file
29
cmd/config/config.go
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package config
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/Unknwon/goconfig"
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
type MysqlConf struct {
|
||||||
|
User string
|
||||||
|
Passwd string
|
||||||
|
Conn string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *MysqlConf) GetMysqlConn() {
|
||||||
|
var cfg *goconfig.ConfigFile
|
||||||
|
cpath, _ := os.Getwd()
|
||||||
|
config, err := goconfig.LoadConfigFile(cpath + "/config/config.ini") //加载配置文件
|
||||||
|
if err != nil {
|
||||||
|
log.Println("get config file error")
|
||||||
|
os.Exit(-1)
|
||||||
|
}
|
||||||
|
cfg = config
|
||||||
|
|
||||||
|
glob, _ := cfg.GetSection("mysql") //读取全部mysql配置
|
||||||
|
m.User, _ = glob["username"]
|
||||||
|
m.Passwd, _ = glob["password"]
|
||||||
|
m.Conn, _ = glob["url"]
|
||||||
|
}
|
73
cmd/mmysql/servicelist.go
Normal file
73
cmd/mmysql/servicelist.go
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
package mmysql
|
||||||
|
|
||||||
|
import (
|
||||||
|
"../config"
|
||||||
|
"database/sql"
|
||||||
|
"log"
|
||||||
|
"strings"
|
||||||
|
//导入mysql的驱动
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ServiceList struct {
|
||||||
|
Id int32 `service id`
|
||||||
|
Name string `service name`
|
||||||
|
Host string `hostip`
|
||||||
|
area string `area`
|
||||||
|
port int `port`
|
||||||
|
Url string `monitor url`
|
||||||
|
user string `user`
|
||||||
|
sendto string `alter message send to`
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetServiceList(area string) (ss []ServiceList) {
|
||||||
|
var myconn config.MysqlConf
|
||||||
|
myconn.GetMysqlConn()
|
||||||
|
|
||||||
|
path := strings.Join([]string{myconn.User, ":", myconn.Passwd, "@tcp(", myconn.Conn, ")/", "services", "?charset=utf8"}, "")
|
||||||
|
|
||||||
|
//打开数据库,前者是驱动名,所以要导入: _ "github.com/go-sql-driver/mysql"
|
||||||
|
db, _ := sql.Open("mysql", path)
|
||||||
|
log.Printf("conn db %s", path)
|
||||||
|
//设置数据库最大连接数
|
||||||
|
db.SetConnMaxLifetime(100)
|
||||||
|
//设置上数据库最大闲置连接数
|
||||||
|
db.SetMaxIdleConns(10)
|
||||||
|
//验证连接
|
||||||
|
if err := db.Ping(); err != nil {
|
||||||
|
log.Print("opon database fail")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
rows, err := db.Query("select id,name,host,url FROM services.services_list where area=?", area)
|
||||||
|
//获取完毕释放rows,阻止更多的列举
|
||||||
|
defer rows.Close()
|
||||||
|
if err != nil {
|
||||||
|
log.Println("获取错误:", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
//如果有数据记录Next指针就不为true
|
||||||
|
var v []ServiceList
|
||||||
|
for rows.Next() {
|
||||||
|
var id int32
|
||||||
|
var name string
|
||||||
|
var host string
|
||||||
|
var url string
|
||||||
|
rows.Scan(&id, &name, &host, &url)
|
||||||
|
var s ServiceList
|
||||||
|
s.Id = id
|
||||||
|
s.Name = name
|
||||||
|
s.Host = host
|
||||||
|
s.Url = url
|
||||||
|
v = append(v, s)
|
||||||
|
//log.Println(s)
|
||||||
|
}
|
||||||
|
//Err返回可能的、在迭代时出现的错误。Err需在显式或隐式调用Close方法后调用。
|
||||||
|
err = rows.Err()
|
||||||
|
if err != nil {
|
||||||
|
log.Println("other error:", err)
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
|
//log.Println("return list with area", v)
|
||||||
|
return v
|
||||||
|
}
|
6
config/config.ini
Normal file
6
config/config.ini
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[mysql]
|
||||||
|
username=miles
|
||||||
|
password=aspect
|
||||||
|
url=192.168.100.30:3306
|
||||||
|
[redis]
|
||||||
|
address=192.168.100.30:6379
|
13
config/config.json
Normal file
13
config/config.json
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"date": "2019-04-30",
|
||||||
|
"mysql": {
|
||||||
|
"url": "192.168.100.30:3306",
|
||||||
|
"username": "miles",
|
||||||
|
"password": "aspect"
|
||||||
|
},
|
||||||
|
"redis": {
|
||||||
|
"host": "192.168.100.30",
|
||||||
|
"port": 6379,
|
||||||
|
"passwd": ""
|
||||||
|
}
|
||||||
|
}
|
68
server/server.go
Normal file
68
server/server.go
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"../cmd/mmysql"
|
||||||
|
"encoding/json"
|
||||||
|
"io"
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
Info *log.Logger
|
||||||
|
Warning *log.Logger
|
||||||
|
Error *log.Logger
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
errFile, err := os.OpenFile("errors.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalln("打开日志文件失败:", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
Info = log.New(os.Stdout, "Info:", log.Ldate|log.Ltime|log.Lshortfile)
|
||||||
|
Warning = log.New(os.Stdout, "Warning:", log.Ldate|log.Ltime|log.Lshortfile)
|
||||||
|
Error = log.New(io.MultiWriter(os.Stderr, errFile), "Error:", log.Ldate|log.Ltime|log.Lshortfile)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
type ServiceStatus struct {
|
||||||
|
id int32 `service id`
|
||||||
|
costtime int32 `monitor cost time second`
|
||||||
|
status bool `serivces status`
|
||||||
|
clientip string `monitor run client ip`
|
||||||
|
client_area string `client area`
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetServiceStatus(c *ServiceStatus) bool {
|
||||||
|
Info.Println("get message from client", c)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
func SaveServiceStatus() bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
Info.Println("run main")
|
||||||
|
//var m mmysql.ServiceList
|
||||||
|
vv := mmysql.GetServiceList("bj")
|
||||||
|
jsons, errs := json.Marshal(vv)
|
||||||
|
if errs != nil {
|
||||||
|
Error.Println(errs.Error())
|
||||||
|
}
|
||||||
|
Info.Println(string(jsons))
|
||||||
|
|
||||||
|
//Warning.Println(string(jsons))
|
||||||
|
//for i := 0; i < len(vv); i++ {
|
||||||
|
// Warning.Println(vv[i])
|
||||||
|
//}
|
||||||
|
//for k, v := range vv {
|
||||||
|
// Error.Println(k)
|
||||||
|
// Error.Println(v)
|
||||||
|
// Error.Println(v.Id)
|
||||||
|
//}
|
||||||
|
//Info.Println(vv)
|
||||||
|
//var myconn config.MysqlConf
|
||||||
|
//myconn.GetMysqlConn()
|
||||||
|
//Error.Printf("mmysql user %s,passwd %s,url %s", myconn.User, myconn.Passwd, myconn.Conn)
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user