上一篇文章中提到用pyodbc连接virtuoso服务器,但是pyodbc包对于中文数据库的支持不尽如人意,连接后sparql查询返回的数据是一堆乱码,尝试过encoding,decoding各种编码解码方式,但是都没有得到正确的结果,最后不断查找下,发现一个SPARQLWrapper的py包,可以连接virtuoso服务器,支持sparql查询并且返回结果是正确的中文结果,通过代码发现,SPARQLWrapper对于virtuoso数据库的连接是通过url实现的,未来如何对virtuoso数据库服务器加密是一个问题,
另外,前段时间题主的电脑因为win10更新,导致睡眠关机出现问题,这应该是华硕电脑的一个通病,一般情况下是BIOS版本问题造成的,正常的解决方案是winFlash刷BIOS,但是这一次刷BIOS发现,电脑上的BIOS驱动已经是最新版的了。。。而fx-pro最新版的BIOS驱动是三年前更新的。。。估计以后也不会再有更新了。。。年迈电脑系统更新需谨慎。。。
中间为了测试电脑是否修好,几次强制关机,电脑终于弄好之后发现,virtuoso服务器连不上了。。。又双叒叕连接不上了!??因为中间安装过一次phpStudy,所以以为是端口冲突造成的,然并卵。。。
查询日志文件,最后发现问题所在
在电脑正常关机的情况,Virtuoso会正常清理一个database文件夹里的一个文件virtuoso.lck,但是如果电脑异常关机或者Virtuoso进程以其他方式不正确地终止了,这个文件会延迟,并且不会被Virtuoso正常清理,因此下次启动Virtuoso文件会冲突,Virtuoso启动过程中无法正常创建virtuoso.lck文件,Virtuoso会无法正常启动。试了几次发现,手动删除virtuoso.lck之后应该还需要通过“正确”的手段重启电脑virtuoso才能正常启动。
备注:virtuoso.lck在virtuoso安装目录下的database文件夹中。