Documentation Home
MySQL Installation Guide
Related Documentation Download this Excerpt

MySQL Installation Guide  /  Postinstallation Setup and Testing  /  Starting and Stopping MySQL Automatically

9.5 Starting and Stopping MySQL Automatically

This section discusses methods for starting and stopping the MySQL server.

Generally, you start the mysqld server in one of these ways:

systemd, the mysqld_safe and mysql.server scripts, Solaris SMF, and the OS X Startup Item (or MySQL Preference Pane) can be used to start the server manually, or automatically at system startup time. systemd, mysql.server, and the Startup Item also can be used to stop the server.

The following table shows which option groups the server and startup scripts read from option files.

Table 9.1 MySQL Startup Scripts and Supported Server Option Groups

Script Option Groups
mysqld [mysqld], [server], [mysqld-major_version]
mysqld_safe [mysqld], [server], [mysqld_safe]
mysql.server [mysqld], [mysql.server], [server]

[mysqld-major_version] means that groups with names like [mysqld-5.6] and [mysqld-5.7] are read by servers having versions 5.6.x, 5.7.x, and so forth. This feature can be used to specify options that can be read only by servers within a given release series.

For backward compatibility, mysql.server also reads the [mysql_server] group and mysqld_safe also reads the [safe_mysqld] group. To be current, you should update your option files to use the [mysql.server] and [mysqld_safe] groups instead.

For more information on MySQL configuration files and their structure and contents, see Using Option Files.


User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
  Posted by Mike G on February 25, 2016
CAVEAT: If you are trying to run mysql as a user in a non-standard location, and a '/etc/my.cnf' exists that is readable by your user, the 'my_print_defaults' program used in the sample init script will set precedence to the '/etc/my.cnf' file, such that any configuration files you provide will be secondary.

to remedy this in the init script, simply run this sed one-liner:

sed -i 's@extra_args="-e $basedir/my.cnf"@extra_args="-c $basedir/my.cnf"@' PATH_TO_YOUR_INIT_SCRIPT

This will force my_print_defaults to look in $basedir for a my.cnf first.

Personally I see this as a flaw - this behavior precludes anyone from using the mysql init scripts to run more than one mysql instance on a machine that happens to have a global installation as well. my_print_defaults should prioritize $basedir/my.cnf over /etc/my.cnf.