mysql添加自增索引后一个报错解

现在有一个mysql数据库表,需要给主键加上自增。很容易可以找到命令类似于下面这样

alter table `table_name` 
change column `id` 
`id` int(10) unsigned auto_increment not null ;

但是,一直没问题的代码这次失效了,报错如下:

ERROR 1062: ALTER TABLE causes auto_increment resequencing, 
resulting in duplicate entry '1' for key 'PRIMARY'

(more…)

Qt 下 ibus 托盘跟随问题

经常使用一些QT的程序。因为这玩意儿是跨平台的,所以很受大家喜欢。 但是,作为一个使用ibus+qt的中文使用者,常常遇到这样悲剧的问题--输入中文的时候,ibus成功打开,输入也没啥大问题,除了,每次输入中文,那个托盘总是在左下角晃荡--我了个去,锻炼我的眼球么? 在网上常常可以看到各种解决,不过大多认为是ibus的问题,建议我们安装ibus-qt这玩意儿。安装完毕,没有任何效果。以为要重启ibus,依然失败,重启整个系统,依旧。或许这东西对后面的步骤有用,但总而言之,至少说明,光是安装这东西是没啥用的。 然后在继续找,然后发现了这篇博文。 (more…)

audacious 怎样在后台运行?

audacious 可能是我最喜欢的播放器之一。加上 gnome 的一些插件后,播放各种音乐超爽。但是有个小问题,因为一般情况下,音乐是常驻的,所以希望能点击关闭后在后台运行。 很多人有各种建议,比如加这个参数那个参数的。 其实 audacious 自带后台运行功能的。 (more…)

java插入mysql一条数据,如何返回自增的ID?

在实际操作中,我们常常有一些各种古怪的需求,比如现在这个。数据库的table中有一个自增的id字段,插入数据库后,要求返回刚刚插入那条数据的id。 在单线程情况下,这当然是一个很简单的问题。首先获得数据库的最大id,给将要插入的语句id赋值为MAX+1,然后插入即可。 Oracle也很容易实现,给这个table建立一个sequence,每次都向这个sequence获取下一个id,效率也是价格公道童叟无欺。 但是,给多线程下的mysql返回刚刚插入的id,这似乎有点小为难。一个立刻可以想到的方法是,给插入操作加个锁,插入后查询MAX id,然后解开锁。但是这个显然是不怎么讲究了。 (more…)

mysql修改存储路径参考

linux下存储数据,mysql无疑是个很不错的选择。mysql的默认存储路径为/var/lib/mysql。以前数据库一直不是很大,总共十个G左右的大小,放在默认路径毫无压力。但是今天,因为新导入一个数据库,光是导入数据就是30+G,瞬间就悲剧了,因为我并没有为/目录准备足够的硬盘分区空间。所以,修改配置,迁移数据库存储路径到合适的地方成了最省力的选择。 (more…)

grub2下修改启动次序

Linux 一般使用 grub2 来引导操作系统, 它不但可以管理各个内核, 而且可以同时管理 Windows 和 Linux. 最近换了个新的机器,虽然是个很不爽的回忆,但总而言之,家里希望能使用我的旧机器.那么,默认启动linux的grub似乎不太合适了(windows都还没搞明白,让我搞linux?你是故意的吧!老妈咆哮.).那么,修改下启动次序,表示下诚意吧. 很多方法[1]可以修改,不过我觉得修改grub.d可能是最合适的. (more…)

mozjs185 在哪里?

安装某个东西,cmake的时候,报错如下

-- checking for module 'mozjs185'
--   package 'mozjs185' not found

如往常,copy这个module的名字,然后

# yum search mozjs185

结果是Not Found (废话,如果不是not found,还写这个干啥...) 直接杀到网上找结果。 (more…)

Java compiler level does not match the version of the installed Java project facet

有个 Eclipse 下的 Java 项目, 虽然已经把所有的错误都调通了, 但是在工程的左下角还是有个鲜红色的叉. 检查 Problems, 可以观察到唯一一个错误如下:

Java compiler level does not match the version of the installed Java project facet. .. Unknown Faceted Project Problem (Java Version Mismatch)

这是什么意思呢? 字面意思, Java 版本不匹配. 实际意思? 不懂, 求助 google 去. (more…)

做个图结构

STL库提供了很多很好用的容器,但是没有图.但实际上,我们是常常要用到图的. 前几天居然做梦用写了个图,为了响应心的呼唤,所以写了个带有一些基本功能的图,以后有需求再扩充. 图使用vector作为容器,存放采用邻接表的格式.而图的内容采用模板,这样可以自定义一些奇怪的类型放到里面. 这样,可以给图的每个节点定义一个Node,Node包括位置(这儿写死了是一个二维的int类型的坐标)和一个存放数据的使用模板的data. (more…)

管道文件的使用:读取命令的输出

stdlib 库有个很多人用过的函数:system.

如果希望这段代码能够跨平台,而希望让程序能等个1秒,一个很好的方法就是,system("sleep 1");这样,无论是windows还是linux,我们都可以很好的执行"等待1秒",而不必多写好多参数什么的.

但是,有时候,我们希望能够得到这个命令的输出,而不是只是"执行它".那么,我们需要点新的东西了. (more…)

XmlMixed信息的解析和获取

java下处理一个xml文档,常常使用DOM(Document Object Model,SAX(Simple API for XML)什么的,但是,当文档很复杂的时候,我们其实可以使用一些偷懒的方法的,JAXB是我最习惯的偷懒大法.当文档大小适中(100MB下都是小文件,嗯.),直接把这个文档丢jaxb,然后从jaxb中寻找需要的信息.实在是一个好办法. 但是,有时候,我们会遇到一些奇怪的格式. 比如下面这么段XML. (more…)