Currently, my MySQL server starts on every server boot. For a couple reasons, this is undesirable behavior. Is there a way to disable this behavior?
There are two Guis I can think of. From Applications -> Ubuntu Software Center search for "boot up manager". After installing you will find it in the System -> Administration -> BootUP-Manager. Another is Webmin. Webmin uses your browser. After installing point your browser to https://localhost:10000/ Look for services and work it from there.
To prevent mysql from starting on boot:
Open the terminal: Ctrl+Alt+T
Comment out the
start online near the top of the file, the
start onmight be spread across two lines, so comment out both. (comment adding
#at the beginning)
If you want to manually start mysql, use the following command:
service mysql start
Taken liberally from here.
Since 15.04 you can simply do:
sudo systemctl disable mysql
Things have changed quite a bit in Ubuntu now. I think from version 11 onwards. MySQL is handled by Upstart while Apache still uses traditional SysV init scripts
For MySQL, you can use the new override feature in Upstart to modify the starting behaviour:
sudo echo "manual" >> /etc/init/mysql.override
For more info, see the section "Disabling a Job from Automatically Starting" in the Upstart Cookbook.
As Apache still uses the traditional SysV init scripts you can use
sudo update-rc.d -f apache2 remove
to remove the links from
/etc/rcX.d or, alternatively use
sudo update-rc.d apache2 disable
which "disables" the script by changing it from a start script to a stop script. This is reversible by
sudo update-rc.d apache2 enable
Most of this information I got from here: https://askubuntu.com/a/40077/24678
In Ubuntu 18.04,
sudo systemctl disable mysql will prevent
mysql-server from autostarting on boot.
For linux, there are 3 main init systems:
SysV. Although nearly all Linux systems run on Systemd. The other two init systems might also co-exist in your system.
Systemd, use command
sudo systemctl disable mysql;
echo manual >> /etc/init/mysql.override;
SysV, run the following command
sudo update-rc.d mysql disable
If you'd like to find which init system is running on your server, please read this answer.
Or if your really laze like me you could just open a Terminal session and then type:
sudo perl -pi.orig -e 's/start\s+on/#start\s+on/' /etc/init/mysql.conf && sudo perl -pi.orig -e 's/and\s+/#and/g' /etc/init/mysql.conf
You can then just issue a reboot command then your system will boot-up without mysql started.
Actually, there is also another method to accomplish this, via the sysv-rc-conf tool.
You can install it by typing
sudo apt-get install sysv-rc-conf
It allows you to take control over all available services, including running/stopping them in place and configuring services' operation per runlevel.
Edit: You have to run tis tool as root:
You can use
chkconfig tool package
$ chkconfig --level 345 mysqld off