 |
Index for Section 1 |
|
 |
Alphabetical listing for Special Characters |
|
 |
Bottom of page |
|
MYSQLD_MULTI(1)
NAME
mysqld_multi - manage multiple MySQL servers
SYNOPSIS
mysqld_multi [options] {start|stop|report} [GNR[,GNR] ...]
DESCRIPTION
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. The MySQL Instance Manager
is an alternative means of managing multiple servers (see mysqlmanager(8)).
mysqld_multi searches for groups named [mysqldN] in my.cnf (or in the file
named by the --config-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, Section 4.15.2.2, 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 Section 11, Running
Multiple MySQL Servers on the Same Machine.
To invoke mysqld_multi, use the following syntax:
shell> mysqld_multi [options] {start|stop|report} [GNR[,GNR] ...]
start, stop, 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 supports the following options:
· --help
Display a help message and exit.
· --config-file=file_name
Specify the name of an alternative option file. This affects where
mysqld_multi looks for [mysqldN] option groups. Without this option, all
options are read from the usual my.cnf file. The option does not affect
where mysqld_multi reads its own options, which are always taken from
the [mysqld_multi] group in the usual my.cnf file.
· --example
Display a sample option file.
· --log=file_name
Specify the name of the log file. If the file exists, log output is
appended to it.
· --mysqladmin=prog_name
The mysqladmin binary to be used to stop servers.
· --mysqld=prog_name
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
[mysqldN] option group. These options indicate the name of the server
that mysqld_safe should start and the pathname of the directory where
the server is located. (See the descriptions for these options in
mysqld_safe(1).) Example:
[mysqld38]
mysqld = mysqld-max
ledir = /opt/local/mysql/libexec
· --no-log
Print log information to stdout rather than to the log file. By default,
output goes to the log file.
· --password=password
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
Silent mode; disable warnings.
· --tcp-ip
Connect to each MySQL server via 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 via the TCP/IP port.) By default,
connections are made using the Unix socket file. This option affects
stop and report operations.
· --user=user_name
The username of the MySQL account to use when invoking mysqladmin.
· --verbose
Be more verbose.
· --version
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 Section 11, Running Multiple
MySQL Servers on the Same Machine.
· Important: 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 Section 5.5, 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 username 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
usernames or passwords for the administrative accounts, you might want
to create an account on each server that has the same username 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 -p
Enter password:
mysql> GRANT SHUTDOWN ON *.*
-> TO 'multi_admin'@'localhost' IDENTIFIED BY 'multipass';
See Section 6.2, How the Privilege System Works. You have to do this for
each mysqld server. Change the connection parameters appropriately when
connecting to each one. Note that the hostname part of the account name
must allow 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.
· 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 mysqld_safe(1).
· 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 root user. 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 [mysqldN]
groups were intentionally omitted from the example to illustrate that you
can have gaps in the option file. This gives you more flexibility.
# This file should probably be in your home dir (~/.my.cnf)
# or /etc/my.cnf
# Version 2.1 by Jani Tolonen
[mysqld_multi]
mysqld = /usr/local/bin/mysqld_safe
mysqladmin = /usr/local/bin/mysqladmin
user = multi_admin
password = multipass
[mysqld2]
socket = /tmp/mysql.sock2
port = 3307
pid-file = /usr/local/mysql/var2/hostname.pid2
datadir = /usr/local/mysql/var2
language = /usr/local/share/mysql/english
user = john
[mysqld3]
socket = /tmp/mysql.sock3
port = 3308
pid-file = /usr/local/mysql/var3/hostname.pid3
datadir = /usr/local/mysql/var3
language = /usr/local/share/mysql/swedish
user = monty
[mysqld4]
socket = /tmp/mysql.sock4
port = 3309
pid-file = /usr/local/mysql/var4/hostname.pid4
datadir = /usr/local/mysql/var4
language = /usr/local/share/mysql/estonia
user = tonu
[mysqld6]
socket = /tmp/mysql.sock6
port = 3311
pid-file = /usr/local/mysql/var6/hostname.pid6
datadir = /usr/local/mysql/var6
language = /usr/local/share/mysql/japanese
user = jani
See Section 3.2, Using Option Files.
COPYRIGHT
Copyright 1997-2007 MySQL AB
This documentation is NOT distributed under a GPL license. Use of this
documentation is subject to the following terms: You may create a printed
copy of this documentation solely for your own personal use. Conversion to
other formats is allowed as long as the actual content is not altered or
edited in any way. You shall not publish or distribute this documentation
in any form or on any media, except if you distribute the documentation in
a manner similar to how MySQL disseminates it (that is, electronically for
download on a Web site with the software) or on a CD-ROM or similar medium,
provided however that the documentation is disseminated together with the
software on the same medium. Any other use, such as any dissemination of
printed copies or use of this documentation, in whole or in part, in
another publication, requires the prior written consent from an authorized
representative of MySQL AB. MySQL AB reserves any and all rights to this
documentation not expressly granted above.
Please email <docs@mysql.com> for more information.
SEE ALSO
make_win_bin_dist(1), msql2mysql(1), my_print_defaults(1),
myisam_ftdump(1), myisamchk(1), myisamlog(1), myisampack(1), mysql(1),
mysql.server(1), mysql_config(1), mysql_explain_log(1),
mysql_fix_privilege_tables(1), mysql_install_db(1), mysql_tzinfo_to_sql(1),
mysql_upgrade(1), mysql_zap(1), mysqlaccess(1), mysqladmin(1),
mysqlbinlog(1), mysqlcheck(1), mysqld(8), mysqld_safe(1), mysqldump(1),
mysqlhotcopy(1), mysqlimport(1), mysqlmanager(8), mysqlshow(1),
ndb_config(1), ndb_cpcd(1), ndb_delete_all(1), ndb_desc(1),
ndb_drop_index(1), ndb_drop_table(1), ndb_error_reporter(1), ndb_mgm(1),
ndb_mgmd(1), ndb_print_backup_file(1), ndb_print_schema_file(1),
ndb_print_sys_file(1), ndb_restore(1), ndb_select_all(1),
ndb_select_count(1), ndb_show_tables(1), ndb_size.pl(1), ndb_waiter(1),
ndbd(1), perror(1), replace(1), safe_mysqld(1)
For more information, please refer to the MySQL Reference Manual, which may
already be installed locally and which is also available online at
http://dev.mysql.com/doc/.
AUTHOR
MySQL AB (http://www.mysql.com/). This software comes with no warranty.
 |
Index for Section 1 |
|
 |
Alphabetical listing for Special Characters |
|
 |
Top of page |
|