Loading Docs/manual.texi +63 −12 Original line number Diff line number Diff line Loading @@ -566,6 +566,7 @@ Replication in MySQL * Replication Options:: Replication Options in my.cnf * Replication SQL:: SQL Commands related to replication * Replication FAQ:: Frequently Asked Questions about replication * Troubleshooting Replication:: Troubleshooting Replication. Troubleshooting Replication Getting Maximum Performance from MySQL Loading @@ -592,6 +593,7 @@ System/Compile Time and Startup Parameter Tuning * Memory use:: How MySQL uses memory * Internal locking:: How MySQL locks tables * Table locking:: Table locking issues * DNS:: Disk Issues Loading Loading @@ -855,7 +857,7 @@ Changes in release 4.0.x (Development; Alpha) Changes in release 3.23.x (Stable) * News-3.23.32:: * News-3.23.32:: Changes in release 3.23.32 * News-3.23.31:: Changes in release 3.23.31 * News-3.23.30:: Changes in release 3.23.30 * News-3.23.29:: Changes in release 3.23.29 Loading Loading @@ -9520,15 +9522,13 @@ tables. @item --skip-name-resolve Hostnames are not resolved. All @code{Host} column values in the grant tables must be IP numbers or @code{localhost}. tables must be IP numbers or @code{localhost}. @xref{DNS}. @item --skip-networking Don't listen for TCP/IP connections at all. All interaction with @code{mysqld} must be made via Unix sockets. This option is highly recommended for systems where only local requests are allowed. However, this option is unsuitable for systems that use MIT-pthreads, because the MIT-pthreads package doesn't support Unix sockets. are allowed. @xref{DNS}. @item --skip-new Don't use new, possible wrong routines. Loading @@ -9537,7 +9537,7 @@ 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. DNS server on every connect instead. @xref{DNS}. @item --skip-show-database Don't allow 'SHOW DATABASE' commands, unless the user has Loading Loading @@ -12830,8 +12830,9 @@ Access denied for user: 'root@' (Using password: YES) This means that @strong{MySQL} got some error when trying to resolve the IP to a hostname. In this case you can execute @code{mysqladmin flush-hosts} to reset the internal DNS cache. Some permanent solutions are: flush-hosts} to reset the internal DNS cache. @xref{DNS}. Some permanent solutions are: @itemize @minus @item Loading Loading @@ -25691,7 +25692,7 @@ tables}. * Replication Options:: Replication Options in my.cnf * Replication SQL:: SQL Commands related to replication * Replication FAQ:: Frequently Asked Questions about replication * Troubleshooting Replication:: Troubleshooting Replication * Troubleshooting Replication:: Troubleshooting Replication. Troubleshooting Replication @end menu @node Replication Intro, Replication Implementation, Replication, Replication Loading Loading @@ -26728,6 +26729,7 @@ are using @code{--skip-locking} * Memory use:: How MySQL uses memory * Internal locking:: How MySQL locks tables * Table locking:: Table locking issues * DNS:: @end menu @node Compile and link options, Disk issues, System, System Loading Loading @@ -27338,7 +27340,7 @@ single queue. In this case, write locks and read locks would have the same priority, which might help some applications. @cindex problems, table locking @node Table locking, , Internal locking, System @node Table locking, DNS, Internal locking, System @subsection Table Locking Issues The table locking code in @strong{MySQL} is deadlock free. Loading Loading @@ -27389,6 +27391,10 @@ Another client issues another @code{SELECT} statement on the same table. As @code{UPDATE} has higher priority than @code{SELECT}, this @code{SELECT} will wait for the @code{UPDATE} to finish. It will also wait for the first @code{SELECT} to finish! @item A thread is waiting for something like @code{full disk}, in which case all threads that wants to access the problem table will also be put in a waiting state until more disk space is made available. @end itemize Some possible solutions to this problem are: Loading Loading @@ -27436,6 +27442,39 @@ If you have problems with @code{SELECT} and @code{DELETE}, the @code{LIMIT} option to @code{DELETE} may help. @xref{DELETE, , @code{DELETE}}. @end itemize @cindex DNS @cindex hostname caching @node DNS, , Table locking, System @subsection How MySQL uses DNS When a new threads connects to @code{mysqld}, @code{mysqld} will span a new thread to handle the request. This thread will first check if the hostname is in the hostname cache. If not the thread will call @code{gethostbyaddr_r()} and @code{gethostbyname_r()} to resolve the hostname. If the operating system doesn't support the above thread-safe calls, the thread will lock a mutex and call @code{gethostbyaddr()} and @code{gethostbyname()} instead. Note that in this case no other thread can resolve other hostnames that is not in the hostname cache until the first thread is ready. You can disable DNS host lookup by starting @code{mysqld} with @code{--skip-name-resolve}. In this case you can however only use IP names in the @strong{MySQL} privilege tables. If you have a very slow DNS and many hosts, you can get more performance by either disabling DNS lookop with @code{--skip-name-resolve} or by increasing the @code{HOST_CACHE_SIZE} define (default: 128) and recompile @code{mysqld}. You can disable the hostname cache with @code{--skip-host-cache}. You can clear the hostname cache with @code{FLUSH HOSTS} or @code{mysqladmin flush-hosts}. If you don't want to allow connections over @code{TCP/IP}, you can do this by starting mysqld with @code{--skip-networking}. @cindex data, size @cindex reducing, data size @cindex storage space, minimizing Loading Loading @@ -40667,6 +40706,10 @@ not yet 100 % confident in this code. @appendixsubsec Changes in release 3.23.32 @itemize @bullet @item @code{MERGE} tables didn't work on windows. @item Fixed problem with @code{SET PASSWORD=...} on windows. @item Added missing @file{my_config.h} to RPM distribution. @item @code{TRIM("foo" from "foo")} didn't return an empty string. Loading Loading @@ -45267,6 +45310,7 @@ fields, the @code{BLOB} was garbage on output. Fixed @code{DISTINCT} with calculated columns. @end itemize @cindex bugs, known @cindex errors, known @cindex design, issues @cindex known errors Loading Loading @@ -45313,6 +45357,9 @@ mapped tables. @item For the moment @code{MATCH} only works with @code{SELECT} statements. @item When using @code{SET CHARACTER SET}, one can't use translated characters in database, table and column names. @item You cannot build in another directory when using MIT-pthreads. Because this requires changes to MIT-pthreads, we are not likely to fix this. Loading Loading @@ -45560,6 +45607,10 @@ expansions of column names) should not open the table, but only the definition file. This will require less memory and be much faster. @item New key cache @item When using @code{SET CHARACTER SET} we should translate the whole query at once and not only strings. This will enable users to use the translated characters in database, table and column names. @end itemize @node TODO future, TODO sometime, TODO MySQL 4.0, TODO configure.in +1 −1 Original line number Diff line number Diff line Loading @@ -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.31) AM_INIT_AUTOMAKE(mysql, 3.23.32) AM_CONFIG_HEADER(config.h) PROTOCOL_VERSION=10 Loading include/Makefile.am +6 −1 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ # Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, # MA 02111-1307, USA BUILT_SOURCES = mysql_version.h m_ctype.h BUILT_SOURCES = mysql_version.h m_ctype.h my_config.h pkginclude_HEADERS = dbug.h m_string.h my_sys.h mysql.h mysql_com.h \ mysqld_error.h my_list.h \ my_pthread.h my_no_pthread.h raid.h errmsg.h \ Loading Loading @@ -43,6 +43,11 @@ all-local: my_global.h my_config.h link_sources: $(CP) ../config.h my_config.h # Keep automake happy my_config.h: ../config.h $(CP) ../config.h my_config.h # This should be changed in the source and removed. my_global.h: global.h $(RM) -f my_global.h Loading include/mysql_com.h +1 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ #define NAME_LEN 64 /* Field/table name length */ #define HOSTNAME_LENGTH 60 #define USERNAME_LENGTH 16 #define SERVER_VERSION_LENGTH 60 #define LOCAL_HOST "localhost" #define LOCAL_HOST_NAMEDPIPE "." Loading include/mysql_version.h.in +2 −2 Original line number Diff line number Diff line /* Copyright Abandoned 1996,1999 TCX DataKonsult AB & Monty Program KB & Detron HB /* Copyright Abandoned 1996, 1999, 2001 MySQL AB This file is public domain and comes with NO WARRANTY of any kind */ /* Version numbers for protocol & mysqld */ Loading Loading
Docs/manual.texi +63 −12 Original line number Diff line number Diff line Loading @@ -566,6 +566,7 @@ Replication in MySQL * Replication Options:: Replication Options in my.cnf * Replication SQL:: SQL Commands related to replication * Replication FAQ:: Frequently Asked Questions about replication * Troubleshooting Replication:: Troubleshooting Replication. Troubleshooting Replication Getting Maximum Performance from MySQL Loading @@ -592,6 +593,7 @@ System/Compile Time and Startup Parameter Tuning * Memory use:: How MySQL uses memory * Internal locking:: How MySQL locks tables * Table locking:: Table locking issues * DNS:: Disk Issues Loading Loading @@ -855,7 +857,7 @@ Changes in release 4.0.x (Development; Alpha) Changes in release 3.23.x (Stable) * News-3.23.32:: * News-3.23.32:: Changes in release 3.23.32 * News-3.23.31:: Changes in release 3.23.31 * News-3.23.30:: Changes in release 3.23.30 * News-3.23.29:: Changes in release 3.23.29 Loading Loading @@ -9520,15 +9522,13 @@ tables. @item --skip-name-resolve Hostnames are not resolved. All @code{Host} column values in the grant tables must be IP numbers or @code{localhost}. tables must be IP numbers or @code{localhost}. @xref{DNS}. @item --skip-networking Don't listen for TCP/IP connections at all. All interaction with @code{mysqld} must be made via Unix sockets. This option is highly recommended for systems where only local requests are allowed. However, this option is unsuitable for systems that use MIT-pthreads, because the MIT-pthreads package doesn't support Unix sockets. are allowed. @xref{DNS}. @item --skip-new Don't use new, possible wrong routines. Loading @@ -9537,7 +9537,7 @@ 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. DNS server on every connect instead. @xref{DNS}. @item --skip-show-database Don't allow 'SHOW DATABASE' commands, unless the user has Loading Loading @@ -12830,8 +12830,9 @@ Access denied for user: 'root@' (Using password: YES) This means that @strong{MySQL} got some error when trying to resolve the IP to a hostname. In this case you can execute @code{mysqladmin flush-hosts} to reset the internal DNS cache. Some permanent solutions are: flush-hosts} to reset the internal DNS cache. @xref{DNS}. Some permanent solutions are: @itemize @minus @item Loading Loading @@ -25691,7 +25692,7 @@ tables}. * Replication Options:: Replication Options in my.cnf * Replication SQL:: SQL Commands related to replication * Replication FAQ:: Frequently Asked Questions about replication * Troubleshooting Replication:: Troubleshooting Replication * Troubleshooting Replication:: Troubleshooting Replication. Troubleshooting Replication @end menu @node Replication Intro, Replication Implementation, Replication, Replication Loading Loading @@ -26728,6 +26729,7 @@ are using @code{--skip-locking} * Memory use:: How MySQL uses memory * Internal locking:: How MySQL locks tables * Table locking:: Table locking issues * DNS:: @end menu @node Compile and link options, Disk issues, System, System Loading Loading @@ -27338,7 +27340,7 @@ single queue. In this case, write locks and read locks would have the same priority, which might help some applications. @cindex problems, table locking @node Table locking, , Internal locking, System @node Table locking, DNS, Internal locking, System @subsection Table Locking Issues The table locking code in @strong{MySQL} is deadlock free. Loading Loading @@ -27389,6 +27391,10 @@ Another client issues another @code{SELECT} statement on the same table. As @code{UPDATE} has higher priority than @code{SELECT}, this @code{SELECT} will wait for the @code{UPDATE} to finish. It will also wait for the first @code{SELECT} to finish! @item A thread is waiting for something like @code{full disk}, in which case all threads that wants to access the problem table will also be put in a waiting state until more disk space is made available. @end itemize Some possible solutions to this problem are: Loading Loading @@ -27436,6 +27442,39 @@ If you have problems with @code{SELECT} and @code{DELETE}, the @code{LIMIT} option to @code{DELETE} may help. @xref{DELETE, , @code{DELETE}}. @end itemize @cindex DNS @cindex hostname caching @node DNS, , Table locking, System @subsection How MySQL uses DNS When a new threads connects to @code{mysqld}, @code{mysqld} will span a new thread to handle the request. This thread will first check if the hostname is in the hostname cache. If not the thread will call @code{gethostbyaddr_r()} and @code{gethostbyname_r()} to resolve the hostname. If the operating system doesn't support the above thread-safe calls, the thread will lock a mutex and call @code{gethostbyaddr()} and @code{gethostbyname()} instead. Note that in this case no other thread can resolve other hostnames that is not in the hostname cache until the first thread is ready. You can disable DNS host lookup by starting @code{mysqld} with @code{--skip-name-resolve}. In this case you can however only use IP names in the @strong{MySQL} privilege tables. If you have a very slow DNS and many hosts, you can get more performance by either disabling DNS lookop with @code{--skip-name-resolve} or by increasing the @code{HOST_CACHE_SIZE} define (default: 128) and recompile @code{mysqld}. You can disable the hostname cache with @code{--skip-host-cache}. You can clear the hostname cache with @code{FLUSH HOSTS} or @code{mysqladmin flush-hosts}. If you don't want to allow connections over @code{TCP/IP}, you can do this by starting mysqld with @code{--skip-networking}. @cindex data, size @cindex reducing, data size @cindex storage space, minimizing Loading Loading @@ -40667,6 +40706,10 @@ not yet 100 % confident in this code. @appendixsubsec Changes in release 3.23.32 @itemize @bullet @item @code{MERGE} tables didn't work on windows. @item Fixed problem with @code{SET PASSWORD=...} on windows. @item Added missing @file{my_config.h} to RPM distribution. @item @code{TRIM("foo" from "foo")} didn't return an empty string. Loading Loading @@ -45267,6 +45310,7 @@ fields, the @code{BLOB} was garbage on output. Fixed @code{DISTINCT} with calculated columns. @end itemize @cindex bugs, known @cindex errors, known @cindex design, issues @cindex known errors Loading Loading @@ -45313,6 +45357,9 @@ mapped tables. @item For the moment @code{MATCH} only works with @code{SELECT} statements. @item When using @code{SET CHARACTER SET}, one can't use translated characters in database, table and column names. @item You cannot build in another directory when using MIT-pthreads. Because this requires changes to MIT-pthreads, we are not likely to fix this. Loading Loading @@ -45560,6 +45607,10 @@ expansions of column names) should not open the table, but only the definition file. This will require less memory and be much faster. @item New key cache @item When using @code{SET CHARACTER SET} we should translate the whole query at once and not only strings. This will enable users to use the translated characters in database, table and column names. @end itemize @node TODO future, TODO sometime, TODO MySQL 4.0, TODO
configure.in +1 −1 Original line number Diff line number Diff line Loading @@ -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.31) AM_INIT_AUTOMAKE(mysql, 3.23.32) AM_CONFIG_HEADER(config.h) PROTOCOL_VERSION=10 Loading
include/Makefile.am +6 −1 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ # Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, # MA 02111-1307, USA BUILT_SOURCES = mysql_version.h m_ctype.h BUILT_SOURCES = mysql_version.h m_ctype.h my_config.h pkginclude_HEADERS = dbug.h m_string.h my_sys.h mysql.h mysql_com.h \ mysqld_error.h my_list.h \ my_pthread.h my_no_pthread.h raid.h errmsg.h \ Loading Loading @@ -43,6 +43,11 @@ all-local: my_global.h my_config.h link_sources: $(CP) ../config.h my_config.h # Keep automake happy my_config.h: ../config.h $(CP) ../config.h my_config.h # This should be changed in the source and removed. my_global.h: global.h $(RM) -f my_global.h Loading
include/mysql_com.h +1 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ #define NAME_LEN 64 /* Field/table name length */ #define HOSTNAME_LENGTH 60 #define USERNAME_LENGTH 16 #define SERVER_VERSION_LENGTH 60 #define LOCAL_HOST "localhost" #define LOCAL_HOST_NAMEDPIPE "." Loading
include/mysql_version.h.in +2 −2 Original line number Diff line number Diff line /* Copyright Abandoned 1996,1999 TCX DataKonsult AB & Monty Program KB & Detron HB /* Copyright Abandoned 1996, 1999, 2001 MySQL AB This file is public domain and comes with NO WARRANTY of any kind */ /* Version numbers for protocol & mysqld */ Loading