博文

目前显示的是 九月, 2018的博文

安装testlink遇到的大坑

    昨天想试用一下testlink。     之前看网上的文档就发现它的安装文档已经很久没更新了,看官方论坛上也是一堆的吐槽文档问题,但人家就是我自巍然不动╮(╯▽╰)╭     正所谓没有问题创造问题也要上!于是还是去官网上下了安装包和文档,开干。     文档第一个要求就说web服务器、PHP和数据库的问题,并推荐用xampp这样的套件。我一是对套件本能地不信任,二是怀疑套件和它自己都飞速地在升级,但是安装文档N久不升级,这样用靠谱么?所以俺做了第一个错误的决定:不用套件,自己来装依赖环境。     细节就不说了,总之花了点儿时间把apache2、php7、mysql5.7都给装上了,然后又想着testlink会比较费空间吧,于是又把mysql默认数据存放的位置给改到了一块单独的磁盘上,顺手改了root密码和访问权限...     然后照着testlink安装文档,解压安装包,放到web的htdocs目录下,打开http://hostname/testlink...还不错嘛,没碰到php版本不对之类的破事儿,页面打开得很顺利,选安装,再选同意用户协议,开始检查前置条件...嗯,mysql数据库也找到了,挺顺利,只有最后报有两个目录找不到,于是按照所要求的去创建了两个目录,并给赋了777,再继续,输入mysql的root和密码,点继续...悲剧了,报无法建立数据库连接@_#     从这里开始了昨天一下午的悲惨经历。当时想mysql都找到了,数据库连接这算个事儿啊!先想是不是远程访问的原因,排除;又想是不是域名解析的问题,排除;再想是不是PHP无法正确解析,写了个简单的连mysql的php,丢上去,再用浏览器访问,没问题;再想是不是用户的原因,换个mysql账号,排除...这就很尴尬了!我从浏览器所在的机器,mysql -h -u -p明明是访问得很溜的啊,一头问号啊!     于是上网求助...结果不搜不知道,一搜,全是因为这个问题在求助的帖子,而且几乎没有人找到解决办法。   ...

go用xorm去update数据库的一个坑

    最近写API服务比较多,一般试验性质的用python flask简单又快,需要稍微考虑点儿并发性能的,那还是用go来写咯。API服务一般都要落盘写库,随便选了个xorm来写mysql数据库。     但是最近碰到一个有点儿奇怪的现象,调用端报告偶有数据没有更新的现象。回头去查代码,写库这段逻辑如下:  if _, err = session.Where("col1 = ?", d.col1).Update(d); err != nil {     glog.Infof("has result col1:%s updated!", d.col1)     return }     一眼就能看明白的一个调用,看不出有啥毛病啊-_-b     试图重现也没能重现,于是只能加debug log以图能保存下次发生时的事发现场。结果过了一个月果然又出现了。确实是这段代码更新表中数据时出错了。     后来搜xorm文档时发现了这么一个Q&A: https://www.kancloud.cn/kancloud/xorm-manual-zh-cn/56018 我的struct里面包含bool类型,为什么它不能作为条件也没法用Update更新? 答:默认bool类型因为无法判断是否为空,所以不会自动作为条件也不会作为Update的内容。可以使用UseBool函数,也可以使用Cols函数 engine . Cols ( "bool_field" ) . Update ( & Struct { BoolField : true } ) // UPDATE struct SET bool_field = true       深受启发啊!我出问题的数据虽然不是bool,但是0!于是又去查了下文档,发现xorm的帮助文档在一个角落里果然提到了bool false, int 0, 空nil都 默认不会更新 !好坑啊!这种update默认方式的设计简直是反人类啊!    ...