220.127.116.11. Starting and Stopping MySQL Automatically
Generally, you start the mysqld server in one of these ways:
- Invoke mysqld directly. This works on any platform.
- Run the MySQL server as a Windows service. The service can be set to start the server automatically when Windows starts, or as a manual service that you start on request. For instructions, see Section 18.104.22.168, “Starting MySQL as a Windows Service”.
- Invoke mysqld_safe, which tries to determine the proper options for mysqld and then runs it with those options. This script is used on Unix and Unix-like systems. See Section 4.3.2, “mysqld_safe — MySQL Server Startup Script”.
- Invoke mysql.server. This script is used primarily at system startup and shutdown on systems that use System V-style run directories, where it usually is installed under the name
mysql. The mysql.server script starts the server by invoking mysqld_safe. See Section 4.3.3, “mysql.server — MySQL Server Startup Script”.
If you use the Linux server RPM package (
MySQL-server-), the mysql.server script is installed in the
/etc/init.ddirectory with the name
mysql. You need not install it manually. See Section 2.12, “Installing MySQL from RPM Packages on Linux”, for more information on the Linux RPM packages.
Some vendors provide RPM packages that install a startup script under a different name such as mysqld.
If you install MySQL from a source distribution or using a binary distribution format that does not install mysql.server automatically, you can install it manually. The script can be found in the
support-filesdirectory under the MySQL installation directory or in a MySQL source tree.
To install mysql.server manually, copy it to the
/etc/init.ddirectory with the name mysql, and then make it executable. Do this by changing location into the appropriate directory where mysql.server is located and executing these commands:
shell>Older Red Hat systems use the
cp mysql.server /etc/init.d/mysqlshell>
chmod +x /etc/init.d/mysql
/etc/rc.d/init.ddirectory rather than
/etc/init.d. Adjust the preceding commands accordingly. Alternatively, first create
/etc/init.das a symbolic link that points to
shell>After installing the script, the commands needed to activate it to run at system startup depend on your operating system. On Linux, you can use
ln -s rc.d/init.d .
shell>On some Linux systems, the following command also seems to be necessary to fully enable the mysql script:
chkconfig --add mysql
shell>On FreeBSD, startup scripts generally should go in
chkconfig --level 345 mysql on
rc(8)manual page states that scripts in this directory are executed only if their basename matches the
*.shshell file name pattern. Any other files or directories present within the directory are silently ignored. In other words, on FreeBSD, you should install the
/usr/local/etc/rc.d/mysql.server.shto enable automatic startup.
As an alternative to the preceding setup, some operating systems also use
/etc/init.d/boot.localto start additional services on startup. To start up MySQL using this method, you could append a command like the one following to the appropriate startup file:
/bin/sh -c 'cd /usr/local/mysql; ./bin/mysqld_safe --user=mysql &'For other systems, consult your operating system documentation to see how to install startup scripts.
You can add options for mysql.server in a global
/etc/my.cnffile. A typical
/etc/my.cnffile might look like this:
[mysqld] datadir=/usr/local/mysql/var socket=/var/tmp/mysql.sock port=3306 user=mysql [mysql.server] basedir=/usr/local/mysqlThe mysql.server script supports the following options:
pid-file. If specified, they must be placed in an option file, not on the command line. mysql.server supports only
stopas command-line arguments.
The following table shows which option groups the server and each startup script read from option files.
[mysqld-means that groups with names like
[mysqld-5.0]are read by servers having versions 4.1.x, 5.0.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. However, you should update your option files to use the
[mysqld_safe]groups instead when using MySQL 5.0.
See Section 22.214.171.124, “Using Option Files”.