被Mysql的启动机制搞囧了……

也许自己技术太菜,第一次遇到这么囧的问题。。

本来将自己的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你的启动机制到底是那般啊。。

About Mucid

My life is brilliant !
This entry was posted in Technology and tagged , , , , , , . Bookmark the permalink.

74 Responses to 被Mysql的启动机制搞囧了……

  1. yming0221 says: Google Chrome 10.0.648.205 Google Chrome 10.0.648.205 GNU/Linux GNU/Linux

    那是由于你把最后一个括号一块给注释掉了

    start on (net-device-up
    and local-filesystems)
    # and runlevel [2345])
    stop on runlevel [0123456]
    OK!

  2. gb120 says: Unknown Unknown Unknown Unknown

    写的不错 以后常来

  3. hljbyw says: Unknown Unknown Unknown Unknown

    你的博客很不错 我会关注你的

  4. Lazyyyyyy says: Unknown Unknown Unknown Unknown

    你的测试背景图怎么这么萌~

  5. vastar says: Unknown Unknown Unknown Unknown

    竟然这么萌的背景。。。

  6. TTkea says: Unknown Unknown Unknown Unknown

    看到美女啊,呵呵,

  7. dengmin says: Unknown Unknown Unknown Unknown

    我是很少用msyql ,因为工作中都是用xml文件存数据的。你直接把init.d下的mysql 那个启动文件删掉不行吗

  8. diyidu says: Unknown Unknown Unknown Unknown

    主题很大气,文章很深奥,哈哈。

  9. 卢松松 says: Unknown Unknown Unknown Unknown

    折腾段时间你啥都会了。

  10. freetstar says: Unknown Unknown Unknown Unknown

    写个脚本自己手动起mysql吧 :???:

  11. Solo says: Unknown Unknown Unknown Unknown

    这个嘛,MySQL是用作服务的,当然需要开机自启动,可能是MySQL官方没有考虑到手动启动吧,我记得Windows下好像可以手动的,为什么。

  12. 婉秋 says: Unknown Unknown Unknown Unknown

    没接触过mysql
    蛮佩服你的钻研精神的 :grin:

  13. 小羿 says: Unknown Unknown Unknown Unknown

    我决定也要去学着搭建

  14. 猪猪懒人窝 says: Unknown Unknown Unknown Unknown

    有的时候就是麻烦

  15. Lambert says: Unknown Unknown Unknown Unknown

    在init.d文件夹下的服务程序是不是都自动启动的

  16. 小松 says: Unknown Unknown Unknown Unknown

    悲剧呀,很麻烦 :arrow: