| Précédent | Table des matière | Suivant |
![]() | ![]() |
MySQL 3.22 can read default startup options for the server and for clients from option files.
MySQL reads default options from the following files on Unix:
| Filename | Purpose |
/etc/my.cnf | Global options |
DATADIR/my.cnf | Server-specific options |
~/.my.cnf | User-specific options |
DATADIR is the MySQL data directory (typically
`/usr/local/mysql/data' for a binary installation, or
`/usr/local/var' for a source installation). Note that this is the
directory that was specified at configuration time, not the one specified
with --datadir when mysqld starts up! (--datadir has no
effect on where the server looks for option files, because it looks for them
before it processes any command-line arguments.)
MySQL reads default options from the following files on Win32:
| Filename | Purpose |
windows-system-directory\my.ini
| |
C:\my.cnf | Global options |
C:\mysql\data\my.cnf | Server-specific options |
Note that you on Win32 should specify all paths with / instead of
\. If you use \, you need to specify this twice, as
\ is the escape character in MySQL.
MySQL tries to read option files in the order listed above. If multiple option files exist, an option specified in a file read later takes precedence over the same option specified in a file read earlier. Options specified on the command line take precedence over options specified in any option file. Some options can be specified using environment variables. Options specified on the command line or in option files take precedence over environment variable values.
The following programs support option files: mysql,
mysqladmin, mysqld, mysqldump, mysqlimport,
mysql.server, isamchk and pack_isam.
You can use option files to specify any long option that a program supports!
Run the program with --help to get a list of available options.
An option file can contain lines of the following forms:
#comment
[group]
group is the name of the program or group for which you want to set
options. After a group line, any option or set-variable lines
apply to the named group until the end of the option file or another group
line is given.
option
--option on the command line.
option=value
--option=value on the command line.
set-variable = variable=value
--set-variable variable=value on the command line.
This syntax must be used to set a mysqld variable.
The client group allows you to specify options that apply to all
MySQL clients (not mysqld). This is the perfect group to use
to specify the password you use to connect to the server. (But make
sure the option file is readable and writable only to yourself.)
Note that for options and values, all leading and trailing blanks are automatically deleted. You may use the escape sequences `\b', `\t', `\n', `\r', `\\' and `\s' in your value string (`\s' == blank).
Here is a typical global option file:
[client] port=3306 socket=/tmp/mysql.sock [mysqld] port=3306 socket=/tmp/mysql.sock set-variable = key_buffer=16M set-variable = max_allowed_packet=1M [mysqldump] quick
Here is typical user option file:
[client] # The following password will be sent to all standard MySQL clients password=my_password [mysql] no-auto-rehash
If you have a source distribution, you will find a sample configuration file
named `my-example.cnf' in the `support-files' directory. If you
have a binary distribution, look in the `DIR/share/mysql' directory,
where DIR is the pathname to the MySQL installation directory
(typically `/usr/local/mysql'). You can copy `my-example.cnf' to
your home directory (rename the copy to `.my.cnf') to experiment with.
To tell a MySQL program not to read any option files, specify
--no-defaults as the first option on the command line. This
MUST be the first option or it will have no effect!
If you want to check which options are used, you can give the option
--print-defaults as the first option.
If you want to force the use of a specific config file, you can use the option
--defaults-file=full-path-to-default-file. If you do this, only the
specified file will be read.
Note for developers: Option file handling is implemented simply by processing all matching options (i.e., options in the appropriate group) before any command line arguments. This works nicely for programs that use the last instance of an option that is specified multiple times. If you have an old program that handles multiply-specified options this way but doesn't read option files, you need add only two lines to give it that capability. Check the source code of any of the standard MySQL clients to see how to do this.
![]() | Table des matières | ![]() |
| Précédent | ![]() | Suivant |