Commit fcaa779e authored by monty@donna.mysql.fi's avatar monty@donna.mysql.fi
Browse files

merge

parents 7de6496f 9ea338ac
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
mwagner@evoq.mwagner.org
jcole@abel.spaceapes.com
monty@donna.mysql.fi
+145 −65
Original line number Diff line number Diff line
@@ -529,10 +529,10 @@ GEMINI Tables
INNOBASE Tables
* INNOBASE overview::           
* INNOBASE overview::           INNOBASE overview
* INNOBASE start::              INNOBASE startup options
* Using INNOBASE tables::       Using INNOBASE tables
* INNOBASE restrictions::       Some restrictions on @code{INNOBASE} tables:
* INNOBASE restrictions::       Some restrictions on @code{INNOBASE} tables
MySQL Tutorial
@@ -3821,6 +3821,29 @@ please send e-mail to @email{webmaster@@mysql.com}.
* Table handler support::       Support for other table handlers
@end menu
The following holds for all support options.
@itemize @bullet
@item
The support is per year.
@item
Fixing or provide reasonable workarounds for any repeatable bug.
@item
A reasonable effort to find and fix any other MySQL related bug.
@item
The following doesn't hold for Basic email support (As this only includes
basic installation support):
For not bug related things, like helping you optimize your queries or
your system, extending MySQL with new functionality... we charge 200
EURO/hour, which is deducted from your support contract.  In other words,
if you have login support (2000 EURO), you can expect us to work up to
10 hours to help you with things like this.
@item
The higher level of support contract the more effort we will put into finding
a solution to your problems..
@end itemize
@cindex email, technical support
@cindex technical support, by email
@node Basic email support, Extended email support, Support, Support
@@ -4582,12 +4605,6 @@ Please report bad or out-of-date mirrors to @email{webmaster@@mysql.com}.
@c @image{Flags/usa} USA [Savages/Oregon] @
@c @uref{http://mysql.savages.com, WWW}
@c @item
@c No mirror! 010323 Matt
@c EMAIL: tcobb@staff.circle.net (Troy Cobb)
@c @image{Flags/usa} USA [Circle Net/North Carolina] @
@c @uref{http://www.mysql.net, WWW}
@c @item
@c Not ok 20000919; Non-existent (Matt)
@c EMAIL: paul@gina.net (Paul Vining)
@@ -7125,13 +7142,10 @@ Linux version that doesn't have @code{glibc2}, you must install
LinuxThreads before trying to compile
@strong{MySQL}. @uref{http://www.mysql.com/Downloads/Linux}
Note that @code{glibc} versions before and including Version 2.1.1 have a fatal
bug in @code{pthread_mutex_timedwait} handling, which is used when you
do @code{INSERT DELAYED}. If you are using @code{INSERT DELAYED}, you
@strong{MUST} add the following patch to your glibc library:
@uref{http://www.mysql.com/Downloads/Patches/glibc-pthread_cond_timedwait.patch}.
@strong{MySQL} Versions 3.23.7 and 3.22.32 contain a temporary
workaround for this bug.
Note that @code{glibc} versions before and including Version 2.1.1 have
a fatal bug in @code{pthread_mutex_timedwait} handling, which is used
when you do @code{INSERT DELAYED}. We recommend you to not use
@code{INSERT DELAYED} before upgrading glibc.
If you plan to have 1000+ concurrent connections, you will need to make
some changes to LinuxThreads, recompile it, and relink @strong{MySQL} against
@@ -7169,7 +7183,6 @@ tables with lots of data. The more you reduce @code{STACK_SIZE} in
LinuxThreads the more threads you can safely create. We recommend the values
between 128K and 256 K.
If you use a lot of concurrent connections, you may suffer from a 2.2
kernel "feature" in 2.2 kernel that penalizes a process for
forking or cloning a child
@@ -7203,31 +7216,33 @@ systems. If you have access such a system and have done some benchmarks,
please send a mail to @email{docs@@mysql.com} with the results - we will
include them in the manual.
The following paragraph is only relevant if you are using a glibc
version older than 2.2.2 (Note that if you are going to use MANY
connections to MySQL, you still need to change the STACK_SIZE and
PTHREAD_THREADS_MAX variables in glibc 2.2.2).
There is another issue that greatly hurts @strong{MySQL} performance,
especially on SMP systems.  The current implementation of mutex in Linuxthreads is also very bad for
programs with many threads that only hold the mutex for a short time. On an
SMP system, ironic as it is, if you link @strong{MySQL} against unmodified
@strong{LinuxThreads}, removing processors from the machine improves
@strong{MySQL} performance in many cases.
We have made a patch available for glibc 2.1,
especially on SMP systems.  The old implementation of mutex in
LinuxThreads was also very bad for programs with many threads that only
hold the mutex for a short time. On an SMP system, ironic as it is, if
you link @strong{MySQL} against unmodified @strong{LinuxThreads},
removing processors from the machine improves @strong{MySQL} performance
in many cases.  We have made a patch available for glibc 2.1,
@uref{http://www.mysql.com/Downloads/Linux/linuxthreads-2.1-patch,linuxthreads-2.1-patch}
and for glibc 2.2,
@uref{http://www.mysql.com/Downloads/Linux/linuxthreads-2.2-patch,linuxthreads-2.2-patch} to correct this behaviour. Please note that since there are so
many versions of glibc floating around, the patch may not apply cleanly to
@uref{http://www.mysql.com/Downloads/Linux/linuxthreads-2.2-patch,linuxthreads-2.2-patch}
to correct this behaveour. Please note that since there are so many
versions of glibc floating around, the patch may not apply cleanly to
yours, so some manual work may be required.
We recommend that you use the above patched to build a special static version
of @code{libpthread.a} and use it only for statically linking
against @code{MySQL}. We
know that the patch is safe for @code{MySQL} and significantly improves its
performance, but we cannot say anything about other applications. If you
link other applications against the patched version of the library, or
build a patched shared version and install it on your system, you are doing
it at your own risk with regard to other applications that depend on
@code{LinuxThreads}.
@c Monty, is the stuff below any longer relevant? I know it needs to be
@c at least corrected as RPM and binary are now the same
We recommend that you use the above patches to build a special static
version of @code{libpthread.a} and use it only for statically linking
against @code{MySQL}. We know that the patch is safe for @code{MySQL}
and significantly improves its performance, but we cannot say anything
about other applications. If you link other applications against the
patched version of the library, or build a patched shared version and
install it on your system, you are doing it at your own risk with regard
to other applications that depend on @code{LinuxThreads}.
If you can't start @code{mysqld} or if @code{mysql_install_db} doesn't work,
please continue reading!  This only happens on Linux system with problems in
@@ -9746,6 +9761,11 @@ Set the default character set. @xref{Character sets}.
@item --default-table-type=type
Set the default table type for tables. @xref{Table types}.
@item --debug[...]=
If @strong{MySQL} is configured with @code{--with-debug}, you can use
this option to get a trace file of what @code{mysqld} is
doing. @xref{The DBUG package}.
@item --delay-key-write-for-all-tables
Don't flush key buffers between writes for any @code{MyISAM} table.
@xref{Server parameters}.
@@ -9900,14 +9920,23 @@ All interaction with @code{mysqld} must be made via Unix sockets.
This option is highly recommended for systems where only local requests
are allowed. @xref{DNS}.
@item --skip-host-cache
Never use host name cache for faster name-ip resolution, but query
DNS server on every connect instead. @xref{DNS}.
@item --skip-new
Don't use new, possible wrong routines.
Implies @code{--skip-delay-key-write}.
This will also set default table type to @code{ISAM}. @xref{ISAM}.
@item --skip-host-cache
Never use host name cache for faster name-ip resolution, but query
DNS server on every connect instead. @xref{DNS}.
@item --skip-safemalloc
If @strong{MySQL} is configured with @code{--with-debug=full}, all
programs will check the memory for overruns for every memory allocation /
memory freeing.  As this checking is very slow, you can avoid this,
when you don't need memory checking, by using this option.
this option to get a trace file of what @code{mysqld} is
doing. @xref{The DBUG package}.
@item --skip-show-database
Don't allow 'SHOW DATABASE' commands, unless the user has
@@ -10245,6 +10274,9 @@ Version 3.23:
@itemize @bullet
@item
All tables that uses the @code{tis620} character set must be fixed
with @code{myisamchk -r} or @code{REPAIR TABLE}.
@item
If you do a @code{DROP DATABASE} on a symbolic linked database, both the
link and the original database is deleted.  (This didn't happen in 3.22
because configure didn't detect the @code{readlink} system call).
@@ -12337,9 +12369,12 @@ You can use the wild-card characters @samp{%} and @samp{_} in the @code{Host}
field.
@item
A @code{Host} value of @code{'%'} matches any hostname.  A blank @code{Host}
value is equivalent to @code{'%'}.  Note that these values match @emph{any
host that can create a connection to your server!}
A @code{Host} value of @code{'%'} matches any hostname.
@item
A blank @code{Host} value means that the privilege should be anded
with the entry in the @code{host} table that matches the given host name.
You can find more information about this in the next chapter.
@cindex netmask notation, in @code{mysql.user} table
@item
@@ -18275,7 +18310,7 @@ or MIN_ROWS = #
or	PACK_KEYS = @{0 | 1@}
or	PASSWORD = "string"
or	DELAY_KEY_WRITE = @{0 | 1@}
or      ROW_FORMAT= @{ default | dynamic | static | compressed @}
or      ROW_FORMAT= @{ default | dynamic | fixed | compressed @}
or	RAID_TYPE= @{1 | STRIPED | RAID0 @} RAID_CHUNKS=#  RAID_CHUNKSIZE=#
or	UNION = (table_name,[table_name...])
@@ -21464,6 +21499,20 @@ The buffer that is allocated when sorting the index when doing a
@code{REPAIR} or when creating indexes with @code{CREATE INDEX} or
@code{ALTER TABLE}.
@item @code{myisam_max_extra_sort_file_size}.
If the creating of the temporary file for fast index creation would be
this much bigger than using the key cache, then prefer the key cache
method.  This is mainly used to force long character keys in large
tables to use the slower key cache method to create the index.
@strong{NOTE} that this parameter is given in megabytes!
@item @code{myisam_max_sort_file_size}
The maximum size of the temporary file @strong{MySQL} is allowed to create
to while recreating the index (during @code{REPAIR}, @code{ALTER TABLE}
or @code{LOAD DATA INFILE}.  If the file size would be bigger than this,
the index will be created through the key cache (which is slower).
@strong{NOTE} that this parameter is given in megabytes!
@item @code{net_buffer_length}
The communication buffer is reset to this size between queries. This
should not normally be changed, but if you have very little memory, you
@@ -23066,13 +23115,16 @@ system resources than @code{ISAM}, but will need more CPU when inserting
data into a compressed index.
The following options to @code{mysqld} can be used to change the behavior of
@code{MyISAM} tables:
@code{MyISAM} tables. @xref{SHOW VARIABLES}.
@multitable @columnfractions .40 .60
@item @strong{Option} @tab @strong{Meaning}
@item @code{--myisam-recover=#} @tab Automatic recover of crashed tables.
@item @code{-O myisam_sort_buffer_size=#} @tab Buffer used when recovering tables.
@item @code{--delay-key-write-for-all-tables} @tab Don't flush key buffers between writes for any MyISAM table
@item @code{-O myisam_max_extra_sort_file_size=#} @tab Used to help @strong{MySQL} to decide when to use the slow but safe key cache index create method. @strong{NOTE} that this parameter is given in megabytes!
@item @code{-O myisam_max_sort_file_size=#} @tab Don't use the fast sort index method to created index if the temporary file would get bigger than this.
@strong{NOTE} that this paramter is given in megabytes!
@end multitable
The automatic recovery is activated if you start mysqld with
@@ -23994,15 +24046,15 @@ the configuration file. Below is an example of possible configuration
parameters in my.cnf for Innobase:
@example
innobase_data_home_dir = c:\ibdata\
innobase_data_home_dir = /usr/local/mysql/var
innobase_log_group_home_dir = /usr/local/mysql/var
innobase_log_arch_dir = /usr/local/mysql/var
innobase_data_file_path = ibdata1:25M;ibdata2:37M;ibdata3:100M;ibdata4:300M
set-variable = innobase_mirrored_log_groups=1
innobase_log_group_home_dir = c:\iblogs\
set-variable = innobase_log_files_in_group=3
set-variable = innobase_log_file_size=5M
set-variable = innobase_log_buffer_size=8M
innobase_flush_log_at_trx_commit=1
innobase_log_arch_dir = c:\iblogs\
innobase_log_archive=0
set-variable = innobase_buffer_pool_size=16M
set-variable = innobase_additional_mem_pool_size=2M
@@ -28063,6 +28115,9 @@ If you compile with @code{--with-debug=full}, then you will loose 20 %
for most queries, but some queries may take substantially longer (The
@strong{MySQL} benchmarks ran 35 % slower)
If you use @code{--with-debug}, then you will only loose 15 %.
By starting a @code{mysqld} version compiled with @code{--with-debug=full}
with @code{--skip-safemalloc} the end result should be close to when
configuring with @code{--with-debug}.
@item
On a Sun SPARCstation 20, SunPro C++ 4.2 is 5 % faster than @code{gcc} 2.95.2.
@@ -30846,9 +30901,9 @@ The @code{mysqladmin status} command result has the following columns:
@cindex open tables
@item Open tables @tab Number of tables that are open now.
@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).
@item Memory in use @tab Memory allocated directly by the mysqld code (only available when @strong{MySQL} is compiled with --with-debug=full).
@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).
@item Max memory used @tab Maximum memory allocated directly by the mysqld code (only available when @strong{MySQL} is compiled with --with-debug=full).
@end multitable
If you do @code{myslqadmin shutdown} on a socket (in other words, on a
@@ -34103,7 +34158,7 @@ this problem.
@itemize @bullet
@item
You can use the static @strong{MySQL} libraries for Borland C++ that you
can find on @uref{http://www.mysql.net/downloads/os-win32.html}.
can find on @uref{http://www.mysql.com/downloads/os-win32.html}.
@item
Only call @code{mysql_init()} with @code{NULL} as an argument, not a
pre-allocated MYSQL struct.
@@ -34335,8 +34390,9 @@ Try @code{fork_test.pl} and @code{fork2_test.pl}.
@item
If you configure @strong{MySQL} for debugging, it will be much easier to
gather information about possible errors if something goes wrong.
Reconfigure @strong{MySQL} with the @code{--with-debug} option to
@code{configure} and then recompile.  @xref{Debugging server}.
Reconfigure @strong{MySQL} with the @code{--with-debug} option or
@code{--with-debug=full} to @code{configure} and then recompile.
@xref{Debugging server}.
@item
Configuring @strong{MySQL} for debugging causes a safe memory allocator to be
@@ -42508,7 +42564,23 @@ not yet 100% confident in this code.
Fixed bug in @code{ALTER TABLE} and @code{LOAD DATA INFILE} that disabled
key-sorting. These command should now be faster in most cases.
@item
Initialize signals early to avoid a problem with signals in Innobase.
Fixed performance bug where reopened tables (tables that had been
waiting for @code{FLUSH} or @code{REPAIR}) would not use indexes for the
next query.
@item
Fixed problem with @code{ALTER TABLE} to Innobase tables on Freebsd.
@item
Added @code{mysqld} variables @code{myisam_max_sort_file_size} and
@code{myisam_max_extra_sort_file_size}.
@item
Initialize signals early to avoid problem with signals in Innobase.
@item
Applied patch for the @code{tis620} character set to make comparisons
case-independent and to fix a bug in @code{LIKE} for this character set.
@strong{NOTE}: All tables that uses the @code{tis620} character set must be
fixed with  @code{myisamchk -r} or @code{REPAIR TABLE} !
@item
Added @code{--skip-safemalloc} option to @code{mysqld}.
@end itemize
@node News-3.23.36, News-3.23.35, News-3.23.37, News-3.23.x
@@ -48079,7 +48151,7 @@ autoheader
aclocal
automake
autoconf
./configure --with-debug --prefix='your installation directory'
./configure --with-debug=full --prefix='your installation directory'
# The makefiles generated above need GNU make 3.75 or newer.
# (called gmake below)
@@ -48153,11 +48225,11 @@ problems that may be unique to your environment.
If you have some very specific problem, you can always try to debug
@strong{MySQL}.  To do this you must configure @strong{MySQL} with the
option @code{--with-debug}.  You can check whether or not
@strong{MySQL} was compiled with debugging by doing: @code{mysqld
--help}.  If the @code{--debug} flag is listed with the options then you
have debugging enabled.  @code{mysqladmin ver} also lists the
@code{mysqld} version as @code{mysql ... -debug} in this case.
@code{--with-debug} or the @code{--with-debug=full} option.  You can check
whether or not @strong{MySQL} was compiled with debugging by doing:
@code{mysqld --help}.  If the @code{--debug} flag is listed with the
options then you have debugging enabled.  @code{mysqladmin ver} also
lists the @code{mysqld} version as @code{mysql ... -debug} in this case.
If you are using gcc or egcs, the recommended configure line is:
@@ -48169,10 +48241,13 @@ This will avoid problems with the @code{libstdc++} library and with C++
exceptions (many compilers have problems with C++ exceptions in threaded
code) and compile a @strong{MySQL} version with support for all character sets.
If you suspect a memory overrun error, you can use @code{--with-debug=full},
which will install a memory allocation checker. This is however quite slow
so this is not something one should do on a server in a heavy production
environment.
If you suspect a memory overrun error, you can configure @strong{MySQL}
with @code{--with-debug=full}, which will install a memory allocation
(@code{SAFEMALLOC}) checker. Running with @code{SAFEMALLOC} is however
quite slow, so if you get performance problems you should start
@code{mysqld} with the @code{--skip-safemalloc} option. This will
disable the memory overrun checks for each call to @code{malloc} and
@code{free}.
If @code{mysqld} stops crashing when you compile it with
@code{--with-debug}, you have probably found a compiler bug or a timing
@@ -48512,6 +48587,11 @@ file of what the program is debugging.
One uses the debug package by invoking the program with the
@code{--debug="..."} or the @code{-#...} option.
Most @strong{MySQL} programs has a default debug string that will be
used if you don't specify an option to @code{--debug}.  The default
trace file is usually @code{/tmp/programname.trace} on Unix and
@code{\programname.trace} on windows.
The debug control string is a sequence of colon separated fields
as follows:
+1 −3
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@
#include <my_pthread.h>				/* because of signal()	*/
#endif

#define ADMIN_VERSION "8.18"
#define ADMIN_VERSION "8.19"
#define MAX_MYSQL_VAR 64
#define SHUTDOWN_DEF_TIMEOUT 3600		/* Wait for shutdown */
#define MAX_TRUNC_LENGTH 3
@@ -817,8 +817,6 @@ static void usage(void)
  -s, --silent		Silently exit if one can't connect to server\n\
  -S, --socket=...	Socket file to use for connection\n");
#include "sslopt-usage.h"
  printf("\
  -t, --timeout=...	Timeout for connection to the mysqld server\n");
#ifndef DONT_ALLOW_USER_CHANGE
  printf("\
  -u, --user=#		User for login if not current user\n");
+2 −1
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ dnl Process this file with autoconf to produce a configure script.
AC_INIT(sql/mysqld.cc)
AC_CANONICAL_SYSTEM
# The Docs Makefile.am parses this line!
AM_INIT_AUTOMAKE(mysql, 3.23.36)
AM_INIT_AUTOMAKE(mysql, 3.23.37)
AM_CONFIG_HEADER(config.h)

PROTOCOL_VERSION=10
@@ -660,6 +660,7 @@ int main()
#

MAX_C_OPTIMIZE="-O6"

case $SYSTEM_TYPE in
  *solaris2.7*)
    # Solaris 2.7 has a broken /usr/include/widec.h
+1 −0
Original line number Diff line number Diff line
@@ -319,6 +319,7 @@ int mi_extra(MI_INFO *info, enum ha_extra_function function)
    {
      my_free(info->rec_alloc,MYF(MY_ALLOW_ZERO_PTR));
      info->rec_alloc=info->rec_buff=0;
      mi_fix_rec_buff_for_blob(info,info->s->base.pack_reclength);
    }
    break;
  case HA_EXTRA_NORMAL:				/* Theese isn't in use */
Loading