
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
服务器意外断电后,Grafana能启动,但无法正常访问,日志里报“database is locked",问题原因是grafana.db这个文件在断电时出现了数据不一致的状态,修复方法:cd到grafana的db目录,用sqlite3命令打开grafana.db,进入交互式环境sqlite3 grafana.db输入命令:sqlite> .backup main grafana-new.db
centos8安装mongo时,报libcrypto.so.10和 libssl.so.10缺失的解决办法
Go语言中所有赋值操作都是值传递,如果结构中不含指针,则直接赋值就是深度拷贝;如果结构中含有指针(包括自定义指针,以及切片,map等使用了指针的内置类型),则数据源和拷贝之间对应指针会共同指向同一块内存,这时深度拷贝需要特别处理。目前,有三种方法,一是用gob序列化成字节序列再反序列化生成克隆对象;二是先转换成json字节序列,再解析字节序列生成克隆对象;三是针对具体情况,定制化拷贝。前两种方法虽
最简单的方法是用fs的writeFileSync和readFileSync如下所示:var fs = require('fs');var crypto = require('crypto');//产生32位随机字节var wbuf = crypto.randomBytes(32);console.log(wbuf);try {//把32位随机字节写到文件"binaryfile"fs.writeFi
uuid是谷歌开发的生成16字节UUID的模块,实现了RFC4122;对UUID的v1,v2,v3,v4,v5等各个版本都有实现。一般来说,如果只是要生成唯一序列号的话,通常用v4版本,示例如下:package mainimport ("fmt""github.com/google/uuid")func main() {for i := 0; i < 10; i+...
http.Client默认的User-Agent是“Go-http-client/1.1”,在做页面抓取的时候容易被服务端拒绝,需要在请求前重新设置一个模拟的User-Agent。具体代码如下:package mainimport ("fmt""io/ioutil""net/http""time")func main() {client := &http.Client{Timeout: 2
"ETIMEDOUT"当客户端请求未设超时,同时服务端也没设超时或者超时大于Linux kernel默认的20-second TCP socket connect timeout情况下,则达到20秒没连接成功,则报出"ETIMEDOUT"错误,形如{"code":"ETIMEDOUT","errno":"ETIMEDOUT","syscall":"connect","address":"...
ExpireAt和Expire类似,只是参数是过期的时间点。TTL查看key还有剩余多少秒才过期。incr,expire这两条命令不是原子操作,如果需要进行事务操作,可以使用Multi,Exec,详见《Go语言采用go-redis模块对Redis进行批量操作(MULTI和EXEC) 的示例及性能》package mainimport ("fmt""github.com/go-redis/redis
goroutine泄漏指的是goroutine启动之后没有退出导致goroutine的数量持续上升,或者是在实际应用中goroutine占用了很长时间才退出导致在一段时间内goroutine的数量急剧上升。通过可以采用Go自带的pprof工具来定位问题,如下面这个示例:这是一个简单的HTTP服务,当接收到请求时另起一个goroutine来输出日志,同时返回“Hello, World!\n”。在记录
报错机制:报这个错是因为,在$GOROOT和$GOPATH下都没有找到对应的包,于是就把这个path当成一个网络地址去下载,在下载前先CheckPath检查其合法性,其中一项检查就是域名,如“github.com/pochard/logrotator”,如果按“/”分隔后第一个元素里没有"."存在那就不是一个合法的域名,所以就报“missing dot in first path element”







