On open, the table is checked if it's marked as crashed or if the open
On open, the table is checked if it's marked as crashed or if the open
count variable for the table is not 0 and you are running with
count variable for the table is not 0 and you are running with
...
@@ -24357,9 +24359,9 @@ If you use @code{--skip-bdb}, @strong{MySQL} will not initialize the
...
@@ -24357,9 +24359,9 @@ If you use @code{--skip-bdb}, @strong{MySQL} will not initialize the
Berkeley DB library and this will save a lot of memory. Of course,
Berkeley DB library and this will save a lot of memory. Of course,
you cannot use @code{BDB} tables if you are using this option.
you cannot use @code{BDB} tables if you are using this option.
Normally you should start mysqld without @code{--bdb-no-recover} if you
Normally you should start @code{mysqld} without @code{--bdb-no-recover} if you
intend to use BDB tables. This may, however, give you problems when you
intend to use BDB tables. This may, however, give you problems when you
try to start mysqld if the BDB log files are corrupted. @xref{Starting
try to start @code{mysqld} if the BDB log files are corrupted. @xref{Starting
server}.
server}.
With @code{bdb_max_lock} you can specify the maximum number of locks
With @code{bdb_max_lock} you can specify the maximum number of locks
...
@@ -24449,7 +24451,7 @@ TABLE}.
...
@@ -24449,7 +24451,7 @@ TABLE}.
@item
@item
If you get full disk with a @code{BDB} table, you will get an error
If you get full disk with a @code{BDB} table, you will get an error
(probably error 28) and the transaction should roll back. This is in
(probably error 28) and the transaction should roll back. This is in
contrast with @code{MyISAM} and @code{ISAM} tables where mysqld will
contrast with @code{MyISAM} and @code{ISAM} tables where @code{mysqld} will
wait for enough free disk before continuing.
wait for enough free disk before continuing.
@end itemize
@end itemize
...
@@ -24666,7 +24668,7 @@ cd /path/to/source/of/mysql-3.23.37
...
@@ -24666,7 +24668,7 @@ cd /path/to/source/of/mysql-3.23.37
./configure --with-innodb
./configure --with-innodb
@end example
@end example
InnoDB provides @strong{MySQL} with a transactionsafe table handler with
InnoDB provides @strong{MySQL} with a transaction-safe table handler with
commit, rollback, and crash recovery capabilities. InnoDB does
commit, rollback, and crash recovery capabilities. InnoDB does
locking on row level, and also provides an Oracle-style consistent
locking on row level, and also provides an Oracle-style consistent
non-locking read in @code{SELECTS}, which increases transaction
non-locking read in @code{SELECTS}, which increases transaction
...
@@ -24822,7 +24824,7 @@ on Windows NT disk i/o may benefit from a larger number.
...
@@ -24822,7 +24824,7 @@ on Windows NT disk i/o may benefit from a larger number.
Timeout in seconds an InnoDB transaction may wait for a lock before
Timeout in seconds an InnoDB transaction may wait for a lock before
being rolled back. InnoDB automatically detects transaction deadlocks
being rolled back. InnoDB automatically detects transaction deadlocks
in its own lock table and rolls back the transaction. If you use
in its own lock table and rolls back the transaction. If you use
@code{LOCK TABLES} command, or other transactionsafe table handlers
@code{LOCK TABLES} command, or other transaction-safe table handlers
than InnoDB in the same transaction, then a deadlock may arise which
than InnoDB in the same transaction, then a deadlock may arise which
InnoDB cannot notice. In cases like this the timeout is useful to
InnoDB cannot notice. In cases like this the timeout is useful to
resolve the situation.
resolve the situation.
...
@@ -30608,7 +30610,7 @@ can clear the hostname cache with @code{FLUSH HOSTS} or @code{mysqladmin
...
@@ -30608,7 +30610,7 @@ can clear the hostname cache with @code{FLUSH HOSTS} or @code{mysqladmin
flush-hosts}.
flush-hosts}.
If you don't want to allow connections over @code{TCP/IP}, you can do this
If you don't want to allow connections over @code{TCP/IP}, you can do this
by starting mysqld with @code{--skip-networking}.
by starting @code{mysqld} with @code{--skip-networking}.
@cindex data, size
@cindex data, size
@cindex reducing, data size
@cindex reducing, data size
...
@@ -32127,9 +32129,9 @@ Size of the core file @code{mysqld} should be able to create. Passed to @code{ul
...
@@ -32127,9 +32129,9 @@ Size of the core file @code{mysqld} should be able to create. Passed to @code{ul
Path to @code{mysqld}
Path to @code{mysqld}
@item --log=path
@item --log=path
@item --mysqld=mysqld-version
@item --mysqld=mysqld-version
Name of the mysqld version in the @code{ledir} directory you want to start.
Name of the @code{mysqld} version in the @code{ledir} directory you want to start.
@item --mysqld-version=version
@item --mysqld-version=version
Similar to @code{--mysqld=} but here you only give the suffix for mysqld.
Similar to @code{--mysqld=} but here you only give the suffix for @code{mysqld}.
For example if you use @code{--mysqld-version=max}, @code{safe_mysqld} will
For example if you use @code{--mysqld-version=max}, @code{safe_mysqld} will
start the @code{ledir/mysqld-max} version. If the argument to
start the @code{ledir/mysqld-max} version. If the argument to
@code{--mysqld-version} is empty, @code{ledir/mysqld} will be used.
@code{--mysqld-version} is empty, @code{ledir/mysqld} will be used.
...
@@ -32765,7 +32767,7 @@ The current @code{mysqladmin} supports the following commands:
...
@@ -32765,7 +32767,7 @@ The current @code{mysqladmin} supports the following commands:
@item flush-privileges @tab Reload grant tables (same as reload).
@item flush-privileges @tab Reload grant tables (same as reload).
@item kill id,id,... @tab Kill mysql threads.
@item kill id,id,... @tab Kill mysql threads.
@item password @tab New-password. Change old password to new-password.
@item password @tab New-password. Change old password to new-password.
@item ping @tab Check if mysqld is alive.
@item ping @tab Check if @code{mysqld} is alive.
@item processlist @tab Show list of active threads in server.
@item processlist @tab Show list of active threads in server.
@item reload @tab Reload grant tables.
@item reload @tab Reload grant tables.
@item refresh @tab Flush all tables and close and open logfiles.
@item refresh @tab Flush all tables and close and open logfiles.
...
@@ -32809,9 +32811,9 @@ The @code{mysqladmin status} command result has the following columns:
...
@@ -32809,9 +32811,9 @@ The @code{mysqladmin status} command result has the following columns:
@cindex open tables
@cindex open tables
@item Open tables @tab Number of tables that are open now.
@item Open tables @tab Number of tables that are open now.
@cindex memory use
@cindex memory use
@item Memory in use @tab Memory allocated directly by the mysqld code (only available when @strong{MySQL} is compiled with --with-debug=full).
@item Memory in use @tab Memory allocated directly by the @code{mysqld} code (only available when @strong{MySQL} is compiled with --with-debug=full).
@cindex max memory used
@cindex max memory used
@item Max memory used @tab Maximum memory allocated directly by the mysqld code (only available when @strong{MySQL} is compiled with --with-debug=full).
@item Max memory used @tab Maximum memory allocated directly by the @code{mysqld} code (only available when @strong{MySQL} is compiled with --with-debug=full).
@end multitable
@end multitable
If you do @code{myslqadmin shutdown} on a socket (in other words, on a
If you do @code{myslqadmin shutdown} on a socket (in other words, on a
...
@@ -33797,7 +33799,7 @@ myisamchk: warning: 1 clients is using or hasn't closed the table properly
...
@@ -33797,7 +33799,7 @@ myisamchk: warning: 1 clients is using or hasn't closed the table properly
@end example
@end example
This means that you are trying to check a table that has been updated by
This means that you are trying to check a table that has been updated by
the another program (like the mysqld server) that hasn't yet closed
the another program (like the @code{mysqld} server) that hasn't yet closed
the file or that has died without closing the file properly.
the file or that has died without closing the file properly.
If you @code{mysqld} is running, you must force a sync/close of all
If you @code{mysqld} is running, you must force a sync/close of all
...
@@ -34666,7 +34668,7 @@ Run @code{myisamchk *.MYI} or @code{myisamchk -e *.MYI} if you have
...
@@ -34666,7 +34668,7 @@ Run @code{myisamchk *.MYI} or @code{myisamchk -e *.MYI} if you have
more time. Use the @code{-s} (silent) option to suppress unnecessary
more time. Use the @code{-s} (silent) option to suppress unnecessary
information.
information.
If the mysqld server is done you should use the --update option to tell
If the @code{mysqld} server is done you should use the --update option to tell
@code{myisamchk} to mark the table as 'checked'.
@code{myisamchk} to mark the table as 'checked'.
You have to repair only those tables for which @code{myisamchk} announces an
You have to repair only those tables for which @code{myisamchk} announces an
...
@@ -34908,12 +34910,12 @@ operating system must support dynamic loading. The @strong{MySQL} source
...
@@ -34908,12 +34910,12 @@ operating system must support dynamic loading. The @strong{MySQL} source
distribution includes a file @file{sql/udf_example.cc} that defines 5 new
distribution includes a file @file{sql/udf_example.cc} that defines 5 new
functions. Consult this file to see how UDF calling conventions work.
functions. Consult this file to see how UDF calling conventions work.
For mysqld to be able to use UDF functions, you should configure MySQL
For @code{mysqld} to be able to use UDF functions, you should configure MySQL
with @code{--with-mysqld-ldflags=-rdynamic} The reason is that to on
with @code{--with-mysqld-ldflags=-rdynamic} The reason is that to on
many platforms (including Linux) you can load a dynamic library (with
many platforms (including Linux) you can load a dynamic library (with
@code{dlopen()}) from a static linked program, which you would get if
@code{dlopen()}) from a static linked program, which you would get if
you are using @code{--with-mysqld-ldflags=-all-static} If you want to
you are using @code{--with-mysqld-ldflags=-all-static} If you want to
use an UDF that needs to access symbols from mysqld (like the
use an UDF that needs to access symbols from @code{mysqld} (like the
@code{methaphone} example in @file{sql/udf_example.cc} that uses
@code{methaphone} example in @file{sql/udf_example.cc} that uses
@code{default_charset_info}), you must link the program with
@code{default_charset_info}), you must link the program with
@code{-rdynamic}. (see @code{man dlopen}).
@code{-rdynamic}. (see @code{man dlopen}).
...
@@ -35656,10 +35658,10 @@ same order as they appear in the @strong{MyODBC} connect screen:
...
@@ -35656,10 +35658,10 @@ same order as they appear in the @strong{MyODBC} connect screen:
@item 1024 @tab SQLDescribeCol() will return fully qualifed column names
@item 1024 @tab SQLDescribeCol() will return fully qualifed column names
@item 2048 @tab Use the compressed server/client protocol
@item 2048 @tab Use the compressed server/client protocol
@item 4096 @tab Tell server to ignore space after function name and before @code{'('} (needed by PowerBuilder). This will make all function names keywords!
@item 4096 @tab Tell server to ignore space after function name and before @code{'('} (needed by PowerBuilder). This will make all function names keywords!
@item 8192 @tab Connect with named pipes to a mysqld server running on NT.
@item 8192 @tab Connect with named pipes to a @code{mysqld} server running on NT.
@item 16384 @tab Change LONGLONG columns to INT columns (Some applications can't handle LONGLONG).
@item 16384 @tab Change LONGLONG columns to INT columns (Some applications can't handle LONGLONG).
@item 32768 @tab Return 'user' as Table_qualifier and Table_owner from SQLTables (experimental)
@item 32768 @tab Return 'user' as Table_qualifier and Table_owner from SQLTables (experimental)
@item 65536 @tab Read parameters from the @code{client} and @code{odbc} groups from @code{my.cnf}
@item 65536 @tab Read parameters from the @code{client} and @code{odbc} groups from @file{my.cnf}
@item 131072 @tab Add some extra safety checks (should not bee needed but...)
@item 131072 @tab Add some extra safety checks (should not bee needed but...)
@end multitable
@end multitable
...
@@ -35877,7 +35879,7 @@ For example, create a db with a table containing 2 columns of text:
...
@@ -35877,7 +35879,7 @@ For example, create a db with a table containing 2 columns of text:
@itemize @bullet
@itemize @bullet
@item
@item
Insert rows using the mysql client command-line tool.
Insert rows using the @code{mysql} client command-line tool.
@item
@item
Create a DSN file using the MyODBC driver, for example, my for the db above.
Create a DSN file using the MyODBC driver, for example, my for the db above.
@item
@item
...
@@ -36300,7 +36302,7 @@ files. @strong{MySQL} will update the data on disk, with the
...
@@ -36300,7 +36302,7 @@ files. @strong{MySQL} will update the data on disk, with the
@code{write()} system call, after every SQL statement and before the
@code{write()} system call, after every SQL statement and before the
client is notified about the result. (This is not true if you are running
client is notified about the result. (This is not true if you are running
with @code{delayed_key_writes}, in which case only the data is written.)
with @code{delayed_key_writes}, in which case only the data is written.)
This means that the data is safe even if mysqld crashes, as the OS will
This means that the data is safe even if @code{mysqld} crashes, as the OS will
ensure that the not flushed data is written to disk. You can force
ensure that the not flushed data is written to disk. You can force
@strong{MySQL} to sync everything to disk after every SQL command by
@strong{MySQL} to sync everything to disk after every SQL command by
starting @code{mysqld} with @code{--flush}.
starting @code{mysqld} with @code{--flush}.
...
@@ -36324,7 +36326,7 @@ the @code{lockd} daemon ) or if you are running
...
@@ -36324,7 +36326,7 @@ the @code{lockd} daemon ) or if you are running
multiple servers with @code{--skip-locking}
multiple servers with @code{--skip-locking}
@item
@item
You have a crashed index/data file that contains very wrong data that
You have a crashed index/data file that contains very wrong data that
got mysqld confused.
got @code{mysqld} confused.
@item
@item
You have found a bug in the data storage code. This isn't that likely,
You have found a bug in the data storage code. This isn't that likely,
but it's at least possible. In this case you can try to change the file
but it's at least possible. In this case you can try to change the file
...
@@ -36569,7 +36571,7 @@ The most common reason for the @code{MySQL server has gone away} error
...
@@ -36569,7 +36571,7 @@ The most common reason for the @code{MySQL server has gone away} error
is that the server timed out and closed the connection. By default, the
is that the server timed out and closed the connection. By default, the
server closes the connection after 8 hours if nothing has happened. You
server closes the connection after 8 hours if nothing has happened. You
can change the time limit by setting the @code{wait_timeout} variable when
can change the time limit by setting the @code{wait_timeout} variable when
you start mysqld.
you start @code{mysqld}.
Another common reason to receive the @code{MySQL server has gone away} error
Another common reason to receive the @code{MySQL server has gone away} error
is because you have issued a ``close'' on your @strong{MySQL} connection
is because you have issued a ``close'' on your @strong{MySQL} connection
...
@@ -36719,7 +36721,7 @@ remote host: Connection refused}, then there is no server running on the
...
@@ -36719,7 +36721,7 @@ remote host: Connection refused}, then there is no server running on the
given port.
given port.
@item
@item
Try connecting to the @code{mysqld} daemon on the local machine and check
Try connecting to the @code{mysqld} daemon on the local machine and check
the TCP/IP port that mysqld it's configured to use (variable @code{port}) with
the TCP/IP port that @code{mysqld} it's configured to use (variable @code{port}) with
@code{mysqladmin variables}.
@code{mysqladmin variables}.
@item
@item
Check that your @code{mysqld} server is not started with the
Check that your @code{mysqld} server is not started with the
...
@@ -36941,7 +36943,7 @@ Can't create/write to file '\\sqla3fe_0.ism'.
...
@@ -36941,7 +36943,7 @@ Can't create/write to file '\\sqla3fe_0.ism'.
this means that @strong{MySQL} can't create a temporary file for the
this means that @strong{MySQL} can't create a temporary file for the
result set in the given temporary directory. (The above error is a
result set in the given temporary directory. (The above error is a
typical error message on Windows, and the Unix error message is similar.)
typical error message on Windows, and the Unix error message is similar.)
The fix is to start mysqld with @code{--tmpdir=path} or to add to your option
The fix is to start @code{mysqld} with @code{--tmpdir=path} or to add to your option
file:
file:
@example
@example
...
@@ -37279,7 +37281,7 @@ can restore it with the following procedure:
...
@@ -37279,7 +37281,7 @@ can restore it with the following procedure:
@enumerate
@enumerate
@item
@item
Take down the mysqld server by sending a @code{kill} (not @code{kill
Take down the @code{mysqld} server by sending a @code{kill} (not @code{kill
-9}) to the @code{mysqld} server. The pid is stored in a @code{.pid}
-9}) to the @code{mysqld} server. The pid is stored in a @code{.pid}
file, which is normally in the @strong{MySQL} database directory:
file, which is normally in the @strong{MySQL} database directory:
...
@@ -37293,7 +37295,7 @@ runs as to do this.
...
@@ -37293,7 +37295,7 @@ runs as to do this.
@item
@item
Restart @code{mysqld} with the @code{--skip-grant-tables} option.
Restart @code{mysqld} with the @code{--skip-grant-tables} option.
@item
@item
Connect to the mysqld server with @code{mysql -h hostname mysql} and change
Connect to the @code{mysqld} server with @code{mysql -h hostname mysql} and change
the password with a @code{GRANT} command. @xref{GRANT,,@code{GRANT}}.
the password with a @code{GRANT} command. @xref{GRANT,,@code{GRANT}}.
You can also do this with
You can also do this with
@code{mysqladmin -h hostname -u user password 'new password'}
@code{mysqladmin -h hostname -u user password 'new password'}
...
@@ -38093,7 +38095,7 @@ home directory. @xref{Option files}.
...
@@ -38093,7 +38095,7 @@ home directory. @xref{Option files}.
out what's going on inside @code{mysqld}:
out what's going on inside @code{mysqld}:
@multitable @columnfractions .3 .7
@multitable @columnfractions .3 .7
@item The error log @tab Problems encountering starting, running or stopping mysqld.
@item The error log @tab Problems encountering starting, running or stopping @code{mysqld}.
@item The isam log @tab Logs all changes to the ISAM tables. Used only for debugging the isam code.
@item The isam log @tab Logs all changes to the ISAM tables. Used only for debugging the isam code.
@item The query log @tab Established connections and executed queries.
@item The query log @tab Established connections and executed queries.
@item The update log @tab Deprecated: Stores all statements that changes data
@item The update log @tab Deprecated: Stores all statements that changes data
...
@@ -38749,7 +38751,7 @@ Retrieves a complete result set to the client.
...
@@ -38749,7 +38751,7 @@ Retrieves a complete result set to the client.
Returns the current thread ID.
Returns the current thread ID.
@item @strong{mysql_thread_save()} @tab
@item @strong{mysql_thread_save()} @tab
Returns 1 if the clients are compiled as threadsafe.
Returns 1 if the clients are compiled as thread-safe.
@item @strong{mysql_use_result()} @tab
@item @strong{mysql_use_result()} @tab
Initiates a row-by-row result set retrieval.
Initiates a row-by-row result set retrieval.
...
@@ -42303,7 +42305,7 @@ Normally, @code{PostgreSQL} is a magnitude slower than @strong{MySQL}.
...
@@ -42303,7 +42305,7 @@ Normally, @code{PostgreSQL} is a magnitude slower than @strong{MySQL}.
transaction-safe tables and that their transactions system is not as
transaction-safe tables and that their transactions system is not as
sophisticated as Berkeley DB's. In @strong{MySQL} you can decide per
sophisticated as Berkeley DB's. In @strong{MySQL} you can decide per
table if you want the table to be fast or take the speed penalty of
table if you want the table to be fast or take the speed penalty of
making it transactionsafe.
making it transaction-safe.
The most important things that @code{PostgreSQL} supports that @strong{MySQL}
The most important things that @code{PostgreSQL} supports that @strong{MySQL}
doesn't yet support:
doesn't yet support:
...
@@ -42541,9 +42543,9 @@ pass the test suite !
...
@@ -42541,9 +42543,9 @@ pass the test suite !
If you get an error, like @code{Result length mismatch} or @code{Result
If you get an error, like @code{Result length mismatch} or @code{Result
content mismatch} it means that the output of the test didn't match
content mismatch} it means that the output of the test didn't match
exactly the expected output. This could be a bug in @strong{MySQL} or
exactly the expected output. This could be a bug in @strong{MySQL} or
that your mysqld version produces slight different results under some
that your @code{mysqld} version produces slightly different results under some
circumstances. In this case you should compare the @code{.test}
circumstances. In this case, you should compare the @file{.test}
and @code{.reject} file in the @code{mysql-test/r} sub directory to
and @file{.reject} file in the @file{mysql-test/r} sub directory to
see if this is something to worry about.
see if this is something to worry about.
@item
@item
...
@@ -42630,7 +42632,7 @@ variables to modify the behavior of @strong{MySQL}. @xref{Option files}.
...
@@ -42630,7 +42632,7 @@ variables to modify the behavior of @strong{MySQL}. @xref{Option files}.
@item @code{MYSQL_DEBUG} @tab Debug-trace options when debugging.
@item @code{MYSQL_DEBUG} @tab Debug-trace options when debugging.
@item @code{MYSQL_HISTFILE} @tab The path to the @code{mysql} history file.
@item @code{MYSQL_HISTFILE} @tab The path to the @code{mysql} history file.
@item @code{MYSQL_HOST} @tab Default host name used by the @code{mysql} command-line prompt.
@item @code{MYSQL_HOST} @tab Default host name used by the @code{mysql} command-line prompt.
@item @code{MYSQL_PWD} @tab The default password when connecting to mysqld. Note that use of this is insecure!
@item @code{MYSQL_PWD} @tab The default password when connecting to @code{mysqld}. Note that use of this is insecure!
@item @code{MYSQL_TCP_PORT} @tab The default TCP/IP port.
@item @code{MYSQL_TCP_PORT} @tab The default TCP/IP port.
@item @code{MYSQL_UNIX_PORT} @tab The default socket; used for connections to @code{localhost}.
@item @code{MYSQL_UNIX_PORT} @tab The default socket; used for connections to @code{localhost}.
@item @code{PATH} @tab Used by the shell to finds the @strong{MySQL} programs.
@item @code{PATH} @tab Used by the shell to finds the @strong{MySQL} programs.
...
@@ -43479,7 +43481,7 @@ newest version from @uref{http://civeng.com/sqldemo/, the home site}.
...
@@ -43479,7 +43481,7 @@ newest version from @uref{http://civeng.com/sqldemo/, the home site}.