diff options
Diffstat (limited to 'Docs/manual.texi')
-rw-r--r-- | Docs/manual.texi | 75 |
1 files changed, 63 insertions, 12 deletions
diff --git a/Docs/manual.texi b/Docs/manual.texi index 415ccb9380c..d13c48f6f26 100644 --- a/Docs/manual.texi +++ b/Docs/manual.texi @@ -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 @@ -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 @@ -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 @@ -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. @@ -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 @@ -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 @@ -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 @@ -26252,7 +26253,7 @@ last log on the list), backup all the logs you are about to delete @end multitable -@node Replication FAQ,Troubleshooting Replication, Replication SQL, Replication +@node Replication FAQ, Troubleshooting Replication, Replication SQL, Replication @section Replication FAQ @cindex @code{Binlog_Dump} @@ -26506,7 +26507,7 @@ We are currently working on intergrating an automatic master election system into @strong{MySQL}, but until it is ready, you will have to create your own monitoring tools. -@node Troubleshooting Replication, ,Replication FAQ, Replication +@node Troubleshooting Replication, , Replication FAQ, Replication @section Troubleshooting Replication If you have followed the instructions, and your replication setup is not @@ -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 @@ -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. @@ -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: @@ -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 @@ -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. @@ -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 @@ -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. @@ -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 |