@item @code{defaults-extra-file} @tab The file specified with --defaults-extra-file=#
@item @code{~/.my.cnf} @tab User-specific options
@end multitable
...
...
@@ -9233,15 +9268,19 @@ there are sample configuration files for small, medium, large, and very
large systems. You can copy @file{my-xxxx.cnf} to your home directory
(rename the copy to @file{.my.cnf}) to experiment with this.
To tell a @strong{MySQL} program not to read any option files, specify
@code{--no-defaults} as the first option on the command line. This
@strong{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
@code{--print-defaults} as the first option.
All @strong{MySQL} clients that support option files support the
following options:
If you want to force the use of a specific config file, you can use the option
@code{--defaults-file=full-path-to-default-file}. If you do this, only the
specified file will be read.
@multitable @columnfractions .40 .60
@item --no-defaults @tab Don't read any option files.
@item --print-defaults @tab Print the program name and all options that it will get.
@item --defaults-file=full-path-to-default-file @tab Only use the given configuration file.
@item --defaults-extra-file=full-path-to-default-file @tab Read this configuration file after the global configuration file but before the user configuration file.
@end multitable
Note that the above options must be first on the command line to work!
@code{--print-defaults} may however be used directly after the
@code{--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)
...
...
@@ -9252,6 +9291,19 @@ read option files, you need add only two lines to give it that capability.
Check the source code of any of the standard @strong{MySQL} clients to see
how to do this.
In shell scripts you can use the @file{my_print_defaults} command to parse the
config files:
@example
shell> my_print_defaults client mysql
--port=3306
--socket=/tmp/mysql.sock
--no-auto-rehash
@end example
The above output contains all options for the groups 'client' and 'mysql'.
@node Upgrade, , Post-installation, Installing
@section Is There Anything Special to Do when Upgrading/Downgrading MySQL?
@cindex upgrading
...
...
@@ -20035,6 +20087,9 @@ resolve the query. Here follows an explanation of the different text
strings that can be found in this column:
@table @code
@item Distinct
@strong{MySQL} will not continue searching for more rows for the current row
combination after it has found the first matching row.
@item Not exists
@strong{MySQL} was able to do a @code{LEFT JOIN} optimization on the
query and will not examine more rows in this table for a row combination
...
...
@@ -20779,9 +20834,28 @@ The biggest differences between the ANSI SQL and @strong{MySQL} versions of
@code{GRANT} are:
@itemize @bullet
@item
In @strong{MySQL} privileges are given for an username + hostname combination
and not only for an username.
@item
ANSI SQL doesn't have global or database-level privileges and ANSI SQL
doesn't support all privilege types that @strong{MySQL} supports.
@strong{MySQL} doesn't support the ANSI SQL @code{TRIGGER}, @code{EXECUTE} or
@code{UNDER} privileges.
@item
ANSI SQL privileges are structured in a hierarchal manner. If you remove
an user, all privileges the user has granted are revoked. In
@strong{MySQL} the granted privileges are not automaticly revoked, but
you have to revoke these yourself if needed.
@item
If you in @code{MySQL} have the @code{INSERT} grant on only part of the
columns in a table, you can execute @code{INSERT} statements on the
table; The columns for which you don't have the @code{INSERT} privilege
will set to their default values. ANSI SQL requires you to have the
@code{INSERT} privilege on all columns.
@item
When you drop a table in ANSI SQL, all privileges for the table are revoked.
...
...
@@ -26092,6 +26166,7 @@ great tool to find out if this is a problem with your query.