Software Outsourcing, Offshore Software Development, Offshore Outsourcing Services, IT Outsourcing, Offshore Development
MySQL manual Offshore Software Outsourcing and Programming, IT Outsourcing Offshore Software Development  
Call Us Today: 1-800-678-9001
Offshore Software Outsourcing and Programming, IT Outsourcing Offshore Software Development

Home / Technical Support / MySQL

Key Offerings:

B2B and B2C E-Business Solutions

Offshore Software Development Outsourcing

Strategic Consulting

Offshore Software Outsourcing

About ALTOROS: ALTOROS Systems is headquartered in Tampa, Florida and maintains an office near Boston, Massachusetts and technology development center in Belarus and Russia. ALTOROS specializes on providing value-added e-commerce and web-based software development and offshore software outsourcing services to emerging enterprises helping them successfully plan and implement business initiatives.

Contact Us for more information.

Node: Option files, Next: Installing many servers, Prev: Command-line options, Up: Configuring MySQL
my.cnf Option Files
 
MySQL can, since Version 3.22, 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
defaults-extra-file The file specified with -defaults-extra-file=#
~/.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 Windows:
 
Filename Purpose
windows-system-directory\my.ini Global options
C:\my.cnf Global options
Note that on Windows, you 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. See Environment variables.
 
The following programs support option files:  mysql, mysqladmin, mysqld, mysqld_safe, mysql.server, mysqldump, mysqlimport, mysqlshow, mysqlcheck, myisamchk, and myisampack.
 
Any long option that may be given on the command-line when running a MySQL program can be given in an option file as well (without the leading double dash).  Run the program with --help to get a list of available options.
 
An option file can contain lines of the following forms:
 
#comment
Comment lines start with # or ;. Empty lines are ignored.
 
[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
This is equivalent to --option on the command-line.
 
option=value
This is equivalent to --option=value on the command-line.
 
set-variable = variable=value
This is equivalent to --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 by 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_size=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
set-variable = connect_timeout=2

[mysqlhotcopy]
interactive-timeout
 
If you have a source distribution, you will find sample configuration files named my-xxxx.cnf in the support-files directory.  If you have a binary distribution, look in the DIR/support-files directory, where DIR is the pathname to the MySQL installation directory (typically /usr/local/mysql).  Currently there are sample configuration files for small, medium, large, and very large systems.  You can copy my-xxxx.cnf to your home directory (rename the copy to .my.cnf) to experiment with this.
 
All MySQL clients that support option files support the following options:
 
Option Description
-no-defaults Don't read any option files.
-print-defaults Print the program name and all options that it will get.
-defaults-file=full-path-to-default-file Only use the given configuration file.
-defaults-extra-file=full-path-to-default-file Read this configuration file after the global configuration file but before the user configuration file.
Note that the above options must be first on the command-line to work!  --print-defaults may however be used directly after the --defaults-xxx-file commands.
 
Note for developers:  Option file handling is implemented simply by processing all matching options (that is, 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.
 
In shell scripts you can use the my_print_defaults command to parse the config files:
 

shell> my_print_defaults client mysql
--port=3306
--socket=/tmp/mysql.sock
--no-auto-rehash
 
The above output contains all options for the groups 'client' and 'mysql'.
 
Offshore Software Outsourcing company Russia Florida Massachusetts Boston Belarus, Offshore Software Development Services, Offshore Programming and IT OutsourcingOffshore Development, Programming  Services, Tampa FL Russia, E-commerce, Database, CRM, Financial Insurance Health Care Real EstateOffshore Software Development Services, Software Outsourcing Russia
HOME PAGE, Offshore Software Outsourcing Company, offshore IT outsourcing services, offshore 
software development Russia Massachusetts Florida New York CT VT RI software development