Table of Contents
This section describes mysqld, the MySQL server, and several programs that are used to start the server.
mysqld, also known as MySQL Server, is the main program that does most of the work in a MySQL installation. MySQL Server manages access to the MySQL data directory that contains databases and tables. The data directory is also the default location for other information such as log files and status files.
When MySQL server starts, it listens for network connections from client programs and manages access to databases on behalf of those clients.
The mysqld program has many options that can be specified at startup. For a complete list of options, run this command:
shell> mysqld --verbose --help
MySQL Server also has a set of system variables that affect its operation as it runs. System variables can be set at server startup, and many of them can be changed at runtime to effect dynamic server reconfiguration. MySQL Server also has a set of status variables that provide information about its operation. You can monitor these status variables to access runtime performance characteristics.
For a full description of MySQL Server command options, system variables, and status variables, see The MySQL Server. For information about installing MySQL and setting up the initial configuration, see Installing and Upgrading MySQL.
mysqld_safe is the recommended way to start a mysqld server on Unix. mysqld_safe adds some safety features such as restarting the server when an error occurs and logging runtime information to an error log file. A description of error logging is given later in this section.
As of MySQL 5.7.6, for MySQL installation using an RPM distribution, server startup and shutdown is managed by systemd on several Linux platforms. On these platforms, mysqld_safe is no longer installed because it is unnecessary. For more information, see Managing MySQL Server with systemd.
mysqld_safe tries to start an executable
named mysqld. To override the default
behavior and specify explicitly the name of the server you want
to run, specify a --mysqld
or --mysqld-version option
to mysqld_safe. You can also use
--ledir to indicate the
directory where mysqld_safe should look for
the server.
Many of the options to mysqld_safe are the same as the options to mysqld. See Server Command Options.
Options unknown to mysqld_safe are passed to
mysqld if they are specified on the command
line, but ignored if they are specified in the
[mysqld_safe] group of an option file. See
Using Option Files.
mysqld_safe reads all options from the
[mysqld], [server], and
[mysqld_safe] sections in option files. For
example, if you specify a [mysqld] section
like this, mysqld_safe will find and use the
--log-error option:
[mysqld] log-error=error.log
For backward compatibility, mysqld_safe also
reads [safe_mysqld] sections, but to be
current you should rename such sections to
[mysqld_safe].
mysqld_safe accepts options on the command line and in option files, as described in the following table. For information about option files used by MySQL programs, see Using Option Files.
Table 4.1 mysqld_safe Options
| Format | Description | Introduced |
|---|---|---|
| --basedir | Path to MySQL installation directory | |
| --core-file-size | Size of core file that mysqld should be able to create | |
| --datadir | Path to data directory | |
| --defaults-extra-file | Read named option file in addition to usual option files | |
| --defaults-file | Read only named option file | |
| --help | Display help message and exit | |
| --ledir | Path to directory where server is located | |
| --log-error | Write error log to named file | |
| --malloc-lib | Alternative malloc library to use for mysqld | |
| --mysqld | Name of server program to start (in ledir directory) | |
| --mysqld-safe-log-timestamps | Timestamp format for logging | 5.7.11 |
| --mysqld-version | Suffix for server program name | |
| --nice | Use nice program to set server scheduling priority | |
| --no-defaults | Read no option files | |
| --open-files-limit | Number of files that mysqld should be able to open | |
| --pid-file | Path name of process ID file | |
| --plugin-dir | Directory where plugins are installed | |
| --port | Port number on which to listen for TCP/IP connections | |
| --skip-kill-mysqld | Do not try to kill stray mysqld processes | |
| --skip-syslog | Do not write error messages to syslog; use error log file | |
| --socket | Socket file on which to listen for Unix socket connections | |
| --syslog | Write error messages to syslog | |
| --syslog-tag | Tag suffix for messages written to syslog | |
| --timezone | Set TZ time zone environment variable to named value | |
| --user | Run mysqld as user having name user_name or numeric user ID user_id |
Display a help message and exit.
The path to the MySQL installation directory.
The size of the core file that mysqld should be able to create. The option value is passed to ulimit -c.
The path to the data directory.
--defaults-extra-file=
file_name
The name of an option file to be read in addition to the usual option files. This must be the first option on the command line if it is used. If the file does not exist or is otherwise inaccessible, the server will exit with an error.
The name of an option file to be read instead of the usual option files. This must be the first option on the command line if it is used.
If mysqld_safe cannot find the server, use this option to indicate the path name to the directory where the server is located.
Write the error log to the given file. See The Error Log.
This option controls the format for timestamps in log output
produced by mysqld_safe. The following
list describes the permitted values. For any other value,
mysqld_safe logs a warning and uses
UTC format.
UTC, utc
ISO 8601 UTC format (same as
--log_timestamps=UTC for
the server). This is the default.
SYSTEM, system
ISO 8601 local time format (same as
--log_timestamps=SYSTEM
for the server).
HYPHEN, hyphen
YY-MM-DD h:mm:ss format, as in
mysqld_safe for MySQL 5.6.
LEGACY, legacy
YYMMDD hh:mm:ss format, as in
mysqld_safe prior to MySQL 5.6.
This option was added in MySQL 5.7.11.
The name of the library to use for memory allocation instead
of the system malloc() library. As of
MySQL 5.7.15, the option value must be one of the
directories /usr/lib,
/usr/lib64,
/usr/lib/i386-linux-gnu, or
/usr/lib/x86_64-linux-gnu. Prior to
MySQL 5.7.15, any library can be used by specifying its path
name, but there is a shortcut form to enable use of the
tcmalloc library that is shipped with
binary MySQL distributions for Linux in MySQL
5.7. It is possible that the shortcut form will
not work under certain configurations, in which case you
should specify a path name instead.
As of MySQL 5.7.13, MySQL distributions no longer include
a tcmalloc library.
The --malloc-lib option
works by modifying the LD_PRELOAD
environment value to affect dynamic linking to enable the
loader to find the memory-allocation library when
mysqld runs:
If the option is not given, or is given without a value
(--malloc-lib=),
LD_PRELOAD is not modified and no
attempt is made to use tcmalloc.
If the option is given as
--malloc-lib=tcmalloc,
mysqld_safe looks for a
tcmalloc library in
/usr/lib and then in the MySQL
pkglibdir location (for example,
/usr/local/mysql/lib or whatever is
appropriate). If tmalloc is found,
its path name is added to the beginning of the
LD_PRELOAD value for
mysqld. If
tcmalloc is not found,
mysqld_safe aborts with an error.
If the option is given as
--malloc-lib=,
that full path is added to the beginning of the
/path/to/some/libraryLD_PRELOAD value. If the full path
points to a nonexistent or unreadable file,
mysqld_safe aborts with an error.
For cases where mysqld_safe adds a
path name to LD_PRELOAD, it adds the
path to the beginning of any existing value the variable
already has.
On systems that manage the server using systemd,
mysqld_safe is not available. Instead,
specify the allocation library by setting
LD_PRELOAD in
/etc/sysconfig/mysql.
Linux users can use the
libtcmalloc_minimal.so included in
binary packages by adding these lines to the
my.cnf file:
[mysqld_safe] malloc-lib=tcmalloc
Those lines also suffice for users on any platform who have
installed a tcmalloc package in
/usr/lib. To use a specific
tcmalloc library, specify its full path
name. Example:
[mysqld_safe] malloc-lib=/opt/lib/libtcmalloc_minimal.so
The name of the server program (in the
ledir directory) that you want to start.
This option is needed if you use the MySQL binary
distribution but have the data directory outside of the
binary distribution. If mysqld_safe
cannot find the server, use the
--ledir option to
indicate the path name to the directory where the server is
located.
As of MySQL 5.7.15, this option can be given only on the command line and not in an option file.
This option is similar to the
--mysqld option, but you
specify only the suffix for the server program name. The
base name is assumed to be mysqld. For
example, if you use
--mysqld-version=debug,
mysqld_safe starts the
mysqld-debug program in the
ledir directory. If the argument to
--mysqld-version is
empty, mysqld_safe uses
mysqld in the ledir
directory.
As of MySQL 5.7.15, this option can be given only on the command line and not in an option file.
Use the nice program to set the server's
scheduling priority to the given value.
Do not read any option files. This must be the first option on the command line if it is used.
The number of files that mysqld should be able to open. The option value is passed to ulimit -n.
You must start mysqld_safe as
root for this to function properly.
The path name of the process ID file.
In MySQL 5.7.2 and later, mysqld_safe
creates a PID file named
mysqld_safe.pid in the MySQL data
directory when starting up (Bug #16776528).
The path name of the plugin directory.
The port number that the server should use when listening
for TCP/IP connections. The port number must be 1024 or
higher unless the server is started by the
root system user.
Do not try to kill stray mysqld processes at startup. This option works only on Linux.
The Unix socket file that the server should use when listening for local connections.
--syslog causes error
messages to be sent to syslog on systems
that support the logger program.
--skip-syslog suppresses the use of
syslog; messages are written to an error
log file.
When syslog is used, the
daemon.err facility/severity is used for
all log messages.
Using these options to control mysqld
logging is deprecated as of MySQL 5.7.5. Use the server
log_syslog system variable
instead. To control the facility, use the server
log_syslog_facility system
variable. See The Error Log.
For logging to syslog, messages from
mysqld_safe and mysqld
are written with identifiers of
mysqld_safe and
mysqld, respectively. To specify a suffix
for the identifiers, use
--syslog-tag=,
which modifies the identifiers to be
tagmysqld_safe-
and
tagmysqld-.
tag
Using this option to control mysqld
logging is deprecated as of MySQL 5.7.5. Use the server
log_syslog_tag system
variable instead. See The Error Log.
Set the TZ time zone environment variable
to the given option value. Consult your operating system
documentation for legal time zone specification formats.
Run the mysqld server as the user having
the name user_name or the numeric
user ID user_id.
(“User” in this context refers to a system
login account, not a MySQL user listed in the grant tables.)
If you execute mysqld_safe with the
--defaults-file or
--defaults-extra-file option
to name an option file, the option must be the first one given
on the command line or the option file will not be used. For
example, this command will not use the named option file:
mysql> mysqld_safe --port=port_num --defaults-file=file_name
Instead, use the following command:
mysql> mysqld_safe --defaults-file=file_name --port=port_num
The mysqld_safe script is written so that it normally can start a server that was installed from either a source or a binary distribution of MySQL, even though these types of distributions typically install the server in slightly different locations. (See Installation Layouts.) mysqld_safe expects one of the following conditions to be true:
The server and databases can be found relative to the
working directory (the directory from which
mysqld_safe is invoked). For binary
distributions, mysqld_safe looks under
its working directory for bin and
data directories. For source
distributions, it looks for libexec and
var directories. This condition should
be met if you execute mysqld_safe from
your MySQL installation directory (for example,
/usr/local/mysql for a binary
distribution).
If the server and databases cannot be found relative to the
working directory, mysqld_safe attempts
to locate them by absolute path names. Typical locations are
/usr/local/libexec and
/usr/local/var. The actual locations
are determined from the values configured into the
distribution at the time it was built. They should be
correct if MySQL is installed in the location specified at
configuration time.
Because mysqld_safe tries to find the server and databases relative to its own working directory, you can install a binary distribution of MySQL anywhere, as long as you run mysqld_safe from the MySQL installation directory:
shell>cdshell>mysql_installation_directorybin/mysqld_safe &
If mysqld_safe fails, even when invoked from
the MySQL installation directory, specify the
--ledir and
--datadir options to
indicate the directories in which the server and databases are
located on your system.
mysqld_safe tries to use the sleep and date system utilities to determine how many times per second it has attempted to start. If these utilities are present and the attempted starts per second is greater than 5, mysqld_safe waits 1 full second before starting again. This is intended to prevent excessive CPU usage in the event of repeated failures. (Bug #11761530, Bug #54035)
When you use mysqld_safe to start mysqld, mysqld_safe arranges for error (and notice) messages from itself and from mysqld to go to the same destination.
There are several mysqld_safe options for controlling the destination of these messages:
--log-error=:
Write error messages to the named error file.
file_name
--syslog: Write error
messages to syslog on systems that
support the logger program.
--skip-syslog:
Do not write error messages to syslog.
Messages are written to the default error log file
(
in the data directory), or to a named file if the
host_name.err--log-error option is
given.
If none of these options is given, the default is
--skip-syslog.
When mysqld_safe writes a message, notices go
to the logging destination (syslog or the
error log file) and stdout. Errors go to the
logging destination and stderr.
Controlling mysqld logging from
mysqld_safe is deprecated as of MySQL
5.7.5. Use the server's native syslog
support instead. For more information, see
The Error Log.
MySQL distributions on Unix include a script named mysql.server, which starts the server using mysqld_safe. It can be used on systems such as Linux and Solaris that use System V-style run directories to start and stop system services. It is also used by the OS X Startup Item for MySQL.
For MySQL installation using an RPM distribution, server startup and shutdown is managed by systemd on several Linux platforms. On these platforms, mysql.server and mysqld_safe are no longer installed because they are unnecessary. For more information, see Managing MySQL Server with systemd.
To start or stop the server manually using the
mysql.server script, invoke it with
start or stop arguments:
shell>mysql.server startshell>mysql.server stop
Before mysql.server starts the server, it
changes location to the MySQL installation directory, and then
invokes mysqld_safe. To run the server as
some specific user, add an appropriate user
option to the [mysqld] group of the
/etc/my.cnf option file, as shown later in
this section. (It is possible that you must edit
mysql.server if you've installed a binary
distribution of MySQL in a nonstandard location. Modify it to
change location into the proper directory before it runs
mysqld_safe. If you do this, your modified
version of mysql.server may be overwritten if
you upgrade MySQL in the future, so you should make a copy of
your edited version that you can reinstall.)
mysql.server stop stops the server by sending a signal to it. You can also stop the server manually by executing mysqladmin shutdown.
To start and stop MySQL automatically on your server, you must
add start and stop commands to the appropriate places in your
/etc/rc* files.
If you use the Linux server RPM package
(MySQL-server-),
or a native Linux package installation, the
mysql.server script may be installed in the
VERSION.rpm/etc/init.d directory with the name
mysql. See
Installing MySQL on Linux Using RPM Packages from Oracle, 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-files directory under the MySQL
installation directory or in a MySQL source tree. Copy it to the
/etc/init.d directory with the name
mysql, and then make it executable:
shell>cp mysql.server /etc/init.d/mysqlshell>chmod +x /etc/init.d/mysql
Older Red Hat systems use the
/etc/rc.d/init.d directory rather than
/etc/init.d. Adjust the preceding
commands accordingly. Alternatively, first create
/etc/init.d as a symbolic link that
points to /etc/rc.d/init.d:
shell>cd /etcshell>ln -s rc.d/init.d .
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 chkconfig:
shell> chkconfig --add mysql
On some Linux systems, the following command also seems to be necessary to fully enable the mysql script:
shell> chkconfig --level 345 mysql on
On FreeBSD, startup scripts generally should go in
/usr/local/etc/rc.d/. The
rc(8) manual page states that scripts in this
directory are executed only if their base name matches the
*.sh shell file name pattern. Any other files
or directories present within the directory are silently
ignored. In other words, on FreeBSD, you should install the
mysql.server script as
/usr/local/etc/rc.d/mysql.server.sh to
enable automatic startup.
As an alternative to the preceding setup, some operating systems
also use /etc/rc.local or
/etc/init.d/boot.local to start additional
services on startup. To start up MySQL using this method, 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.
mysql.server reads options from the
[mysql.server] and
[mysqld] sections of option files. For
backward compatibility, it also reads
[mysql_server] sections, but to be current
you should rename such sections to
[mysql.server].
You can add options for mysql.server in a
global /etc/my.cnf file. A typical
/etc/my.cnf file might look like this:
[mysqld] datadir=/usr/local/mysql/var socket=/var/tmp/mysql.sock port=3306 user=mysql [mysql.server] basedir=/usr/local/mysql
The mysql.server script supports the
following options. If specified, they must
be placed in an option file, not on the command line.
mysql.server supports only
start and stop as
command-line arguments.
Table 4.2 mysql.server Options
| Format | Description |
|---|---|
| --basedir | Path to MySQL installation directory |
| --datadir | Path to MySQL data directory |
| --pid-file | File in which server should write its process ID |
| --service-startup-timeout | How long to wait for server startup |
The path to the MySQL installation directory.
The path to the MySQL data directory.
The path name of the file in which the server should write its process ID.
If this option is not given, mysql.server
uses a default value of
.
The PID file value passed to mysqld_safe
overrides any value specified in the
host_name.pid[mysqld_safe] option file group. Because
mysql.server reads the
[mysqld] option file group but not the
[mysqld_safe] group, you can ensure that
mysqld_safe gets the same value when
invoke using mysql.server as when invoked
manually by putting the same pid-file
setting in both the [mysqld_safe] and
[mysqld] groups.
--service-startup-timeout=
seconds
How long in seconds to wait for confirmation of server startup. If the server does not start within this time, mysql.server exits with an error. The default value is 900. A value of 0 means not to wait at all for startup. Negative values mean to wait forever (no timeout).
mysqld_multi is designed to manage several mysqld processes that listen for connections on different Unix socket files and TCP/IP ports. It can start or stop servers, or report their current status.
For MySQL installation using an RPM distribution, server startup and shutdown is managed by systemd on several Linux platforms. On these platforms, mysqld_multi is no longer installed because it is unnecessary. For information about using systemd to handle multiple MySQL instances, see Managing MySQL Server with systemd.
mysqld_multi searches for groups named
[mysqld in
N]my.cnf (or in the file named by the
--defaults-file option).
N can be any positive integer. This
number is referred to in the following discussion as the option
group number, or GNR. Group numbers
distinguish option groups from one another and are used as
arguments to mysqld_multi to specify which
servers you want to start, stop, or obtain a status report for.
Options listed in these groups are the same that you would use
in the [mysqld] group used for starting
mysqld. (See, for example,
Starting and Stopping MySQL Automatically.) However, when using multiple
servers, it is necessary that each one use its own value for
options such as the Unix socket file and TCP/IP port number. For
more information on which options must be unique per server in a
multiple-server environment, see
Running Multiple MySQL Instances on One Machine.
To invoke mysqld_multi, use the following syntax:
shell> mysqld_multi [options] {start|stop|reload|report} [GNR[,GNR] ...]
start, stop,
reload (stop and restart), and
report indicate which operation to perform.
You can perform the designated operation for a single server or
multiple servers, depending on the
GNR list that follows the option
name. If there is no list, mysqld_multi
performs the operation for all servers in the option file.
Each GNR value represents an option
group number or range of group numbers. The value should be the
number at the end of the group name in the option file. For
example, the GNR for a group named
[mysqld17] is 17. To
specify a range of numbers, separate the first and last numbers
by a dash. The GNR value
10-13 represents groups
[mysqld10] through
[mysqld13]. Multiple groups or group ranges
can be specified on the command line, separated by commas. There
must be no whitespace characters (spaces or tabs) in the
GNR list; anything after a whitespace
character is ignored.
This command starts a single server using option group
[mysqld17]:
shell> mysqld_multi start 17
This command stops several servers, using option groups
[mysqld8] and [mysqld10]
through [mysqld13]:
shell> mysqld_multi stop 8,10-13
For an example of how you might set up an option file, use this command:
shell> mysqld_multi --example
mysqld_multi searches for option files as follows:
With --no-defaults, no
option files are read.
With
--defaults-file=,
only the named file is read.
file_name
Otherwise, option files in the standard list of locations
are read, including any file named by the
--defaults-extra-file=
option, if one is given. (If the option is given multiple
times, the last value is used.)
file_name
Option files read are searched for
[mysqld_multi] and
[mysqld option
groups. The N][mysqld_multi] group can be used
for options to mysqld_multi itself.
[mysqld groups
can be used for options passed to specific
mysqld instances.
N]
The [mysqld] or
[mysqld_safe] groups can be used for common
options read by all instances of mysqld or
mysqld_safe. You can specify a
--defaults-file=
option to use a different configuration file for that instance,
in which case the file_name[mysqld] or
[mysqld_safe] groups from that file will be
used for that instance.
mysqld_multi supports the following options.
Display a help message and exit.
Display a sample option file.
Specify the name of the log file. If the file exists, log output is appended to it.
The mysqladmin binary to be used to stop servers.
The mysqld binary to be used. Note that
you can specify mysqld_safe as the value
for this option also. If you use
mysqld_safe to start the server, you can
include the mysqld or
ledir options in the corresponding
[mysqld
option group. These options indicate the name of the server
that mysqld_safe should start and the
path name of the directory where the server is located. (See
the descriptions for these options in
Section 4.2, “mysqld_safe — MySQL Server Startup Script”.) Example:
N]
[mysqld38] mysqld = mysqld-debug ledir = /opt/local/mysql/libexec
Print log information to stdout rather
than to the log file. By default, output goes to the log
file.
The password of the MySQL account to use when invoking mysqladmin. Note that the password value is not optional for this option, unlike for other MySQL programs.
Silent mode; disable warnings.
Connect to each MySQL server through the TCP/IP port instead
of the Unix socket file. (If a socket file is missing, the
server might still be running, but accessible only through
the TCP/IP port.) By default, connections are made using the
Unix socket file. This option affects
stop and report
operations.
The user name of the MySQL account to use when invoking mysqladmin.
Be more verbose.
Display version information and exit.
Some notes about mysqld_multi:
Most important: Before using mysqld_multi be sure that you understand the meanings of the options that are passed to the mysqld servers and why you would want to have separate mysqld processes. Beware of the dangers of using multiple mysqld servers with the same data directory. Use separate data directories, unless you know what you are doing. Starting multiple servers with the same data directory does not give you extra performance in a threaded system. See Running Multiple MySQL Instances on One Machine.
Make sure that the data directory for each server is fully
accessible to the Unix account that the specific
mysqld process is started as.
Do not use the Unix
root account for this, unless
you know what you are doing. See
How to Run MySQL as a Normal User.
Make sure that the MySQL account used for stopping the
mysqld servers (with the
mysqladmin program) has the same user
name and password for each server. Also, make sure that the
account has the SHUTDOWN
privilege. If the servers that you want to manage have
different user names or passwords for the administrative
accounts, you might want to create an account on each server
that has the same user name and password. For example, you
might set up a common multi_admin account
by executing the following commands for each server:
shell>mysql -u root -S /tmp/mysql.sock -pEnter password: mysql>CREATE USER 'multi_admin'@'localhost' IDENTIFIED BY 'multipass';mysql>GRANT SHUTDOWN ON *.* TO 'multi_admin'@'localhost';
See The MySQL Access Privilege System. You have to do this
for each mysqld server. Change the
connection parameters appropriately when connecting to each
one. Note that the host name part of the account name must
permit you to connect as multi_admin from
the host where you want to run
mysqld_multi.
The Unix socket file and the TCP/IP port number must be
different for every mysqld.
(Alternatively, if the host has multiple network addresses,
you can use --bind-address to
cause different servers to listen to different interfaces.)
The --pid-file option is
very important if you are using
mysqld_safe to start
mysqld (for example,
--mysqld=mysqld_safe)
Every mysqld should have its own process
ID file. The advantage of using
mysqld_safe instead of
mysqld is that
mysqld_safe monitors its
mysqld process and restarts it if the
process terminates due to a signal sent using kill
-9 or for other reasons, such as a segmentation
fault. Please note that the mysqld_safe
script might require that you start it from a certain place.
This means that you might have to change location to a
certain directory before running
mysqld_multi. If you have problems
starting, please see the mysqld_safe
script. Check especially the lines:
---------------------------------------------------------------- MY_PWD=`pwd` # Check if we are starting this relative (for the binary release) if test -d $MY_PWD/data/mysql -a \ -f ./share/mysql/english/errmsg.sys -a \ -x ./bin/mysqld ----------------------------------------------------------------
The test performed by these lines should be successful, or you might encounter problems. See Section 4.2, “mysqld_safe — MySQL Server Startup Script”.
You might want to use the
--user option for
mysqld, but to do this you need to run
the mysqld_multi script as the Unix
superuser (root). Having the option in
the option file doesn't matter; you just get a warning if
you are not the superuser and the mysqld
processes are started under your own Unix account.
The following example shows how you might set up an option file
for use with mysqld_multi. The order in which
the mysqld programs are started or stopped
depends on the order in which they appear in the option file.
Group numbers need not form an unbroken sequence. The first and
fifth [mysqld
groups were intentionally omitted from the example to illustrate
that you can have “gaps” in the option file. This
gives you more flexibility.
N]
# This is an example of a my.cnf file for mysqld_multi. # Usually this file is located in home dir ~/.my.cnf or /etc/my.cnf [mysqld_multi] mysqld = /usr/local/mysql/bin/mysqld_safe mysqladmin = /usr/local/mysql/bin/mysqladmin user = multi_admin password = my_password [mysqld2] socket = /tmp/mysql.sock2 port = 3307 pid-file = /usr/local/mysql/data2/hostname.pid2 datadir = /usr/local/mysql/data2 language = /usr/local/mysql/share/mysql/english user = unix_user1 [mysqld3] mysqld = /path/to/mysqld_safe ledir = /path/to/mysqld-binary/ mysqladmin = /path/to/mysqladmin socket = /tmp/mysql.sock3 port = 3308 pid-file = /usr/local/mysql/data3/hostname.pid3 datadir = /usr/local/mysql/data3 language = /usr/local/mysql/share/mysql/swedish user = unix_user2 [mysqld4] socket = /tmp/mysql.sock4 port = 3309 pid-file = /usr/local/mysql/data4/hostname.pid4 datadir = /usr/local/mysql/data4 language = /usr/local/mysql/share/mysql/estonia user = unix_user3 [mysqld6] socket = /tmp/mysql.sock6 port = 3311 pid-file = /usr/local/mysql/data6/hostname.pid6 datadir = /usr/local/mysql/data6 language = /usr/local/mysql/share/mysql/japanese user = unix_user4
See Using Option Files.