软件版本:ubuntu14.04,mysql5.5,mysql5.6
背景:为了在机器上重现mysql5.5不能在一个表中有两个时间字段同时自动更新,而mysql5.6可以。比如表中一般有插入时间,更新时间两个字段,如果在mysql5.5,下面sql是会报错,而mysql5.6可以正常通过。
`create_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP COMMENT '插入时间时间',
`update_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
在做这个实验的过程中,卸载mysql5.6,重新安装mysql5.5的过程中报错。我先卸载mysql5.6,再执行安装mysql5.5一共两条语句,执行安装5.5的时候报错了。
卸载mysql5.6的语句:
evan@evan:~$ sudo apt-get autoremove mysql-server-5.6
安装mysql5.5语句:
evan@evan:~$ sudo apt-get install mysql-server
报错内容如下:
Errors were encountered while processing:
/var/cache/apt/archives/mysql-server-5.5_5.5.52-0ubuntu0.14.04.1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
解决办法:
执行清理残留数据,再重新安装就可以了
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
evan@evan:~$ sudo apt-get install mysql-server
为了复原错误现象,我先卸载mysql5.5,再安装5.6不用执行清除数据库语句,也可以正常安装使用。估计是可以在低版本数据上安装高版本,而高版本卸载再安装低版本会出现这问题。
在askubuntu网站上,找到ubuntu上卸载mysql一个答案,我试了试也是好使的。
This will uninstall all mysql related packages.
sudo apt-get remove --purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean