也许自己技术太菜,第一次遇到这么囧的问题。。
本来将自己的Ubuntu10.10搭建成了LMAP+Python环境。
但是呢,Apache和Mysql 这两个家伙好像有点“自做多情”——每次开机都自动启动。
所以我就想着如何禁止他们开机自动启动。毕竟我的Ubuntu的LMAP+Python环境是用来测试的,平日还喜欢用Ubuntu玩点游戏,所以不喜欢开多余的服务。
当然Apache还是比较好对付。
一句 sudo update-rc.d -f apache2 remove 就OK了。
于是,我按照同样的方法来一句
sudo update-rc.d -f mysql remove
开机之后我来一句 pgrep mysql 来检测Mysql进程是否存在……
才发现——Mysql依旧“蛋定”的启动了。
囧,后来到处google,才知道,原来新版的Mysql用的新的安全框架。
如果要禁止其开机自动启动需要这样搞:
sudo gedit /etc/init/mysql.conf
将里面的:
start on (net-device-up
and local-filesystems
and runlevel [2345])
stop on runlevel [016]
改为如下:
start on (net-device-up
and local-filesystems
# and runlevel [2345])
stop on runlevel [0123456]
也就是将“ and runlevel [2345] ”这句加个#号注释掉。
然后将“ stop on runlevel ”改为“ [0123456] ”。
好吧,先不急着改,本人先将未禁止开机自动启动的Mysql测试一番。
对Mysql的关闭,重启,进程查看进行一番测试,如图:
发现Mysql一切正常。
问题是,按照上面的方法将Mysql禁止开机启动后……
却出现了怪异问题 —— 无法手工启动Mysql了!
问题详细报告与分析:
第一次通过修改 /etc/init/mysql.conf 来禁止Mysql启动后,
开机后,是可以通过 sudo start mysql 命令正常启动Mysql的。
但是前几天,我通过 sudo start mysql 命令来启动mysql的时候……
却报出如下错误:
“ start: Unknown job: mysql ”
于是我尝试这样启动Mysql:
sudo /etc/init.d/mysql start
或者:
sudo service mysql start
都是报出这样的错误:
“ start: Unknown job: mysql ”
如图:
这个错误应该就是 —— “ 启动,未知服务:Mysql ”,这样的意思吧。
我囧啊,不是明明已经安装了Mysql嘛,怎么会是未知服务呢。。
到底是哪里出问题了呢,Mysql损坏么?
额,如果真是哪里损坏了的话,这个我可无能为力……
但是,我想到一个万能的方法 —— 彻底卸载Mysql,然后全新安装。
于是乎,打下如下命令:
sudo apt-get autoremove –purge mysql-server
sudo apt-get autoremove –purge mysql-common
然后再:
sudo apt-get install mysql-server
重装好Mysql套件后再次通过修改 /etc/init/mysql.conf 配置文件来禁止Mysql开机自动启动。
可是……问题依旧——如果禁止了Mysql开机自动启动,开机后依然无法通过 sudo start mysql 命令启动Mysql。
没办法,只有再次修改 /etc/init/mysql.conf ,将里面改回原样。
虽然mysql又变为开机自动启动了。
但是却可以正常的对mysql进行关闭,启动,重启等操作。。
囧啊,Mysql你的启动机制到底是那般啊。。
那是由于你把最后一个括号一块给注释掉了
start on (net-device-up
and local-filesystems)
# and runlevel [2345])
stop on runlevel [0123456]
OK!
@yming0221 , 谢谢的说,确实是这样,不过第二天才发现
写的不错 以后常来
你的博客很不错 我会关注你的
你的测试背景图怎么这么萌~
竟然这么萌的背景。。。
@vastar , 她叫姬子,是小说《水仙》里面的,很悲情的小说,很坚强的女人!
@Mucid , 呵呵,背景MM好看。
看到美女啊,呵呵,
@TTkea , 额,她叫姬子,小说《水仙》里面的!
我是很少用msyql ,因为工作中都是用xml文件存数据的。你直接把init.d下的mysql 那个启动文件删掉不行吗
@dengmin , 删了怎么启动啊。。
主题很大气,文章很深奥,哈哈。
@diyidu , 额我的黑黑的主题!
折腾段时间你啥都会了。
@卢松松 , 一切才刚刚开始!
写个脚本自己手动起mysql吧
@freetstar , 怎么写啊。。鸭梨很大。。
@Mucid , 脚本里就一句, 直接加可执行文件的路径启动…
@freetstar , 额,我试试看直接启动看看。。
@Mucid ,
@freetstar , 没这么简单,还要通过脚本传递变量。。不过我已经解决啦!
@Mucid , 等待下一篇日志哈
@freetstar , 马上写,不过下篇日志你看了会吐血的
@Mucid , 那我就准备吐血
@freetstar , 文已完毕,尽情吐血吧!
这个嘛,MySQL是用作服务的,当然需要开机自启动,可能是MySQL官方没有考虑到手动启动吧,我记得Windows下好像可以手动的,为什么。
@Solo , 谁说服务就不能手工启动啦。。囧,用windwos考虑linux,windows好多视窗工具呢。。
没接触过mysql
蛮佩服你的钻研精神的
@婉秋 , 竟然说自己没接触Mysql,那你的WP是用的啥啊 ,o(∩∩)o…哈哈,I’am crazy !
我决定也要去学着搭建
@小羿 , 不要犹豫,马上去哈!
有的时候就是麻烦
@猪猪懒人窝 , 习惯就好啊!
在init.d文件夹下的服务程序是不是都自动启动的
@Lambert , init.d下面的是服务控制,rc.d里面才是与启动相关的!
悲剧呀,很麻烦
@小松 , 很简洁啊!