Commit 8c7186b9 authored by tim@black.box's avatar tim@black.box

Merge work.mysql.com:/home/bk/mysql-4.0 into black.box:/u/home/tim/my/4

parents 00ff406b 9d304d8c
......@@ -487,7 +487,7 @@ language already supports MySQL.
@cindex MySQL, pronunciation
@cindex goals of MySQL
The official way to pronounce MySQL is ``My Ess Que Ell'' (not
MY-SEQUEL), but we don't mind if you pronounce it as MY-SEQUEL
``my sequel''), but we don't mind if you pronounce it as ``my sequel''
or in some other localised way.
......@@ -1886,7 +1886,7 @@ the electronic mail address @email{mysql-unsubscribe@@lists.mysql.com}.
Only the address to which you send your messages is significant. The
subject line and the body of the message are ignored.
@c the last two addresses in this paragraph are NOT @email because they
@c the last two addresses in this paragraph are not @email because they
@c shouldn't be live links.
If your reply address is not valid, you can specify your address
explicitly. Adding a hyphen to the subscribe or unsubscribe command
......@@ -2327,20 +2327,20 @@ try repairing your tables with @code{myisamchk} or @code{CHECK TABLE} and
@item
If you often get corrupted tables you should try to find out when and why this
happens! In this case, the @file{mysql-data-directory/'hostname'.err} file
happens. In this case, the @file{mysql-data-directory/'hostname'.err} file
may contain some information about what happened. @xref{Error log}. Please
include any relevant information from this file in your bug report! Normally
@code{mysqld} should @strong{NEVER} crash a table if nothing killed it in the
include any relevant information from this file in your bug report. Normally
@code{mysqld} should @strong{never} crash a table if nothing killed it in the
middle of an update! If you can find the cause of @code{mysqld} dying,
it's much easier for us to provide you with a fix for the problem!
it's much easier for us to provide you with a fix for the problem.
@xref{What is crashing}.
@item
If possible, download and install the most recent version of MySQL
and check whether or not it solves your problem. All versions of
MySQL are thoroughly tested and should work without problems! We
MySQL are thoroughly tested and should work without problems. We
believe in making everything as backward compatible as possible, and you
should be able to switch MySQL versions in minutes!
should be able to switch MySQL versions without any hassle.
@xref{Which version}.
@end itemize
......@@ -5324,7 +5324,7 @@ benchmark page.
Before going to the other benchmarks we know of, we would like to give
some background on benchmarks:
It's very easy to write a test that shows ANY database to be the best
It's very easy to write a test that shows @strong{any} database to be the best
database in the world, by just restricting the test to something the
database is very good at and not testing anything that the database is
not good at. If one, after doing this, summarises the result with as
......@@ -5362,12 +5362,12 @@ conduct. This was not only tuned to only test what PostgreSQL is absolutely
best at, it was also totally unfair against every other database involved in
the test.
@strong{NOTE}: We know that not even some of the main PostgreSQL
developers did like the way Great Bridge conducted the benchmark, so we
don't blame them for the way the benchmark was done.
@strong{Note}: We know that even some of the main PostgreSQL
developers did not like the way Great Bridge conducted the benchmark, so we
don't blame the PostgreSQL team for the way the benchmark was done.
This benchmark has been condemned in a lot of postings and newsgroups so
we will here just shortly repeat some things that where wrong with it.
we will here just shortly repeat some things that were wrong with it.
@itemize @bullet
@item
......@@ -5762,7 +5762,7 @@ Added @code{LOAD DATE INFILE.. UPDATE} syntax.
@item
For tables with primary keys, if the data contains the primary key,
entries matching that primary key are updated from the remainder of the
columns. However, columns MISSING from the incoming data feed are not
columns. However, columns @strong{missing} from the incoming data feed are not
touched.
@item
For tables tables with primary keys that are missing some part of the key
......@@ -5831,15 +5831,15 @@ Add support for UNICODE.
@code{NATURAL JOIN} and @code{UNION JOIN}
@item
Allow @code{select a from crash_me left join crash_me2 using (a)}; In this
case a is assumed to come from the crash_me table.
case @code{a} is assumed to come from the @code{crash_me} table.
@item
Fix that @code{ON} and @code{USING} works with the @code{JOIN}
join type.
@item
Oracle like @code{CONNECT BY PRIOR ...} to search hierarchy structures.
@item
@code{mysqladmin copy database new-database}. -- Requires COPY command to be
added to @code{mysqld}
@code{mysqladmin copy database new-database}; Requires @code{COPY}
command to be added to @code{mysqld}
@item
Processlist should show number of queries/thread.
@item
......@@ -7439,7 +7439,7 @@ install the standard @code{MySQL} RPM.
@item
If you want to configure @code{mysqld} with some extra features that are
NOT in the standard binary distributions. Here is a list of the most
not in the standard binary distributions. Here is a list of the most
common extra options that you may want to use:
@itemize @bullet
......@@ -7781,7 +7781,7 @@ An alternative installation method under Linux is to use RPM (RedHat Package
Manager) distributions. @xref{Linux-RPM}.
@c texi2html fails to split chapters if I use strong for all of this.
If you run into problems, @strong{PLEASE ALWAYS USE} @code{mysqlbug} when
If you run into problems, @strong{please always use @code{mysqlbug}} when
posting questions to @email{mysql@@lists.mysql.com}. Even if the problem
isn't a bug, @code{mysqlbug} gathers system information that will help others
solve your problem. By not using @code{mysqlbug}, you lessen the likelihood
......@@ -8013,7 +8013,7 @@ sometimes required. If you have problems, we recommend trying GNU
@end itemize
If you are using a recent version of @strong{gcc}, recent enough to understand
@code{-fno-exceptions} option, it is @strong{VERY IMPORTANT} that you use
@code{-fno-exceptions} option, it is @strong{very important} that you use
it. Otherwise, you may compile a binary that crashes randomly. We also
recommend that you use @code{-felide-contructors} and @code{-fno-rtti} along
with @code{-fno-exceptions}. When in doubt, do the following:
......@@ -8027,7 +8027,7 @@ CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtt
On most systems this will give you a fast and stable binary.
@c texi2html fails to split chapters if I use strong for all of this.
If you run into problems, @strong{PLEASE ALWAYS USE @code{mysqlbug}} when
If you run into problems, @strong{please always use @code{mysqlbug}} when
posting questions to @email{mysql@@lists.mysql.com}. Even if the problem
isn't a bug, @code{mysqlbug} gathers system information that will help others
solve your problem. By not using @code{mysqlbug}, you lessen the likelihood
......@@ -8507,7 +8507,7 @@ system-specific section of this manual.
@cindex BitKeeper tree
@cindex cvs tree
@strong{CAUTION:} You should read this section only if you are interested
@strong{Caution:} You should read this section only if you are interested
in helping us test our new code. If you just want to get MySQL up
and running on your system, you should use a standard release distribution
(either a source or binary distribution will do).
......@@ -9880,7 +9880,7 @@ return any server error, only @code{CR_UNKNOWN_ERROR} (but it
works for client errors), and the server uses the old @code{password()}
checking rather than the new one.
If you are @strong{NOT} using the @code{--old-protocol} option to
If you are @strong{not} using the @code{--old-protocol} option to
@code{mysqld}, you will need to make the following changes:
@itemize @bullet
......@@ -10080,10 +10080,10 @@ Linux version that doesn't have @code{glibc2}, you must install
LinuxThreads before trying to compile MySQL. You can get
LinuxThreads at @uref{http://www.mysql.com/Downloads/Linux}.
@strong{NOTE:} We have seen some strange problems with Linux 2.2.14 and
@strong{Note:} We have seen some strange problems with Linux 2.2.14 and
MySQL on SMP systems; If you have a SMP system, we recommend
you to upgrade to Linux 2.4 ASAP! Your system will be faster and more
stable by doing this!
you to upgrade to Linux 2.4 as soon as possible! Your system will be
faster and more stable by doing this!
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
......@@ -10519,7 +10519,7 @@ Debugging threaded applications like MySQL will not work with
@item
If you try linking @code{mysqld} statically when using @code{gcc}, the
resulting image will core dump at start. In other words, @strong{DON'T}
resulting image will core dump at start. In other words, @strong{don't}
use @code{--with-mysqld-ldflags=-all-static} with @code{gcc}.
@end itemize
......@@ -10852,7 +10852,7 @@ On your Windows machine, start some ODBC application (such as Access).
@item
Create a new file in Windows and link to MySQL using the ODBC
driver the same way you normally do, EXCEPT type in @code{localhost}
driver the same way you normally do, except type in @code{localhost}
for the MySQL host server --- not @code{yourmysqlservername}.
@end itemize
......@@ -11952,7 +11952,7 @@ you must also remove the @code{-qstrict} option (this is a limitation in
the IBM C compiler).
If you are using @code{gcc} or @code{egcs} to compile MySQL, you
@strong{MUST} use the @code{-fno-exceptions} flag, as the exception
@strong{must} use the @code{-fno-exceptions} flag, as the exception
handling in @code{gcc}/@code{egcs} is not thread safe! (This is tested with
@code{egcs} 1.1.) There are also some known problems with IBM's assembler,
which may cause it to generate bad code when used with gcc.
......@@ -12806,7 +12806,7 @@ to
$sysliblist .= " -lm -lz";
@end example
After this, you MUST run 'make realclean' and then proceed with the
After this, you @strong{must} run 'make realclean' and then proceed with the
installation from the beginning.
If you want to use the Perl module on a system that doesn't support dynamic
......@@ -16026,16 +16026,16 @@ files to @code{safe_mysqld} with @code{--log}, @code{--log-update}, or
@code{--log-slow-queries}. Otherwise, both servers may be trying to
write to the same log file.
@strong{WARNING}: Normally you should never have two servers that update
@strong{Warning}: Normally you should never have two servers that update
data in the same database! If your OS doesn't support fault-free system
locking, this may lead to unpleasant surprises!
If you want to use another database directory for the second server, you
can use the @code{--datadir=path} option to @code{safe_mysqld}.
@strong{NOTE} also that starting several MySQL servers
@strong{Note} also that starting several MySQL servers
(@code{mysqlds}) in different machines and letting them access one data
directory over @code{NFS} is generally a @strong{BAD IDEA}! The problem
directory over @code{NFS} is generally a @strong{bad idea}! The problem
is that the @code{NFS} will become the bottleneck with the speed. It is
not meant for such use. And last but not least, you would still have to
come up with a solution how to make sure that two or more @code{mysqlds}
......@@ -16138,11 +16138,12 @@ When running MySQL, follow these guidelines whenever possible:
@itemize @bullet
@item
DON'T EVER GIVE ANYONE (EXCEPT THE MySQL ROOT USER) ACCESS TO THE
@code{user} TABLE IN THE @code{mysql} DATABASE! The encrypted password
is the real password in MySQL. If you know the password listed in
the @code{user} table for a given user, you can easily log in as that
user if you have access to the host listed for that account.
@strong{Do not ever give anyone (except the mysql root user) access to the
@code{user} table in the @code{mysql} database!} This is critical.
@strong{The encrypted password is the real password in MySQL.}
Anyone who knows the password which is listed in the @code{user} table
and has access to the host listed for the account @strong{can easily log
in as that user}.
@item
Learn the MySQL access privilege system. The @code{GRANT} and
......@@ -16872,7 +16873,7 @@ Alternate forms of the @code{-h}, @code{-u}, and @code{-p} options are
@code{--password=your_pass}. Note that there is @emph{no space} between
@code{-p} or @code{--password=} and the password following it.
@strong{NOTE:} Specifying a password on the command line is not secure!
@strong{Note:} Specifying a password on the command line is not secure!
Any user on your system may then find out your password by typing a command
like: @code{ps auxww}. @xref{Option files}.
......@@ -17767,7 +17768,7 @@ you use a @code{column_list} clause) are @code{SELECT}, @code{INSERT}, and
You can set global privileges by using @code{ON *.*} syntax. You can set
database privileges by using @code{ON db_name.*} syntax. If you specify
@code{ON *} and you have a current database, you will set the privileges for
that database. (@strong{WARNING:} If you specify @code{ON *} and you
that database. (@strong{Warning:} If you specify @code{ON *} and you
@emph{don't} have a current database, you will affect the global privileges!)
In order to accommodate granting rights to users from arbitrary hosts,
......@@ -17783,7 +17784,7 @@ You can specify wild cards in the hostname. For example,
for any host in the @code{144.155.166} class C subnet.
The simple form @code{user} is a synonym for @code{user@@"%"}.
@strong{NOTE:} If you allow anonymous users to connect to the MySQL
@strong{Note:} If you allow anonymous users to connect to the MySQL
server (which is the default), you should also add all local users as
@code{user@@localhost} because otherwise the anonymous user entry for the
local host in the @code{mysql.user} table will be used when the user tries to
......@@ -17833,7 +17834,7 @@ password will be set to the password specified by the @code{IDENTIFIED BY}
clause, if one is given. If the user already had a password, it is replaced
by the new one.
@strong{WARNING:} If you create a new user but do not specify an
@strong{Warning:} If you create a new user but do not specify an
@code{IDENTIFIED BY} clause, the user has no password. This is insecure.
Passwords can also be set with the @code{SET PASSWORD} command.
......@@ -17986,7 +17987,7 @@ or the short form:
mysql -u monty -p database_name
@end example
Note that in the last example the password is @strong{NOT} 'database_name'.
Note that in the last example the password is @strong{not} 'database_name'.
If you want to use the @code{-p} option to supply a password you should do so
like this:
......@@ -18057,7 +18058,7 @@ of privileges:
The MySQL @code{root} user is created as a superuser who can do
anything. Connections must be made from the local host.
@strong{NOTE:}
@strong{Note:}
The initial @code{root} password is empty, so anyone can connect as @code{root}
@emph{without a password} and be granted all privileges.
......@@ -18073,7 +18074,7 @@ Other privileges are denied. For example, normal users can't use
@code{mysqladmin shutdown} or @code{mysqladmin processlist}.
@end itemize
@strong{NOTE:} The default privileges are different for Windows.
@strong{Note:} The default privileges are different for Windows.
@xref{Windows running}.
Because your installation is initially wide open, one of the first things you
......@@ -18134,8 +18135,8 @@ the database directory, which is listed when you run @code{mysqld
--help}.) Then run the @code{mysql_install_db} script, possibly after
editing it first to have the privileges you want.
@strong{NOTE:} For MySQL versions older than Version 3.22.10,
you should NOT delete the @file{.frm} files. If you accidentally do this,
@strong{Note:} For MySQL versions older than Version 3.22.10,
you should not delete the @file{.frm} files. If you accidentally do this,
you should copy them back from your MySQL distribution before
running @code{mysql_install_db}.
......@@ -18910,7 +18911,7 @@ CHECK TABLE test_table FAST QUICK;
Which only would do a quick check on the table if it wasn't closed properly.
@strong{NOTE:} that in some case @code{CHECK TABLE} will change the
@strong{Note:} that in some case @code{CHECK TABLE} will change the
table! This happens if the table is marked as 'corrupted' or 'not
closed properly' but @code{CHECK TABLE} didn't find any problems in the
table. In this case @code{CHECK TABLE} will mark the table as ok.
......@@ -18935,7 +18936,7 @@ bug you have found a bug in the @code{MyISAM} code.)
@code{EXTENDED} is only to be used after you have run a normal check but
still get strange errors from a table when MySQL tries to
update a row or find a row by key (this is VERY unlikely to happen if a
update a row or find a row by key (this is very unlikely if a
normal check has succeeded!).
Some things reported by check table, can't be corrected automatically:
......@@ -19221,7 +19222,7 @@ Check table for errors. This is the default operation if you are not
giving @code{myisamchk} any options that override this.
@item -e or --extend-check
Check the table VERY thoroughly (which is quite slow if you have many
Check the table very thoroughly (which is quite slow if you have many
indexes). This option should only be used in extreme cases. Normally,
@code{myisamchk} or @code{myisamchk --medium-check} should, in most
cases, be able to find out if there are any errors in the table.
......@@ -19345,7 +19346,7 @@ This will optimise seeks and will make table scanning by key faster.
@item -R or --sort-records=#
Sorts records according to an index. This makes your data much more localised
and may speed up ranged @code{SELECT} and @code{ORDER BY} operations on
this index. (It may be VERY slow to do a sort the first time!)
this index. (It may be very slow to do a sort the first time!)
To find out a table's index numbers, use @code{SHOW INDEX}, which shows a
table's indexes in the same order that @code{myisamchk} sees them. Indexes are
numbered beginning with 1.
......@@ -19427,13 +19428,15 @@ to update the table will wait until @code{myisamchk} is ready before
continuing.
If you use @code{myisamchk} to repair or optimise tables, you
@strong{MUST} always ensure that the @code{mysqld} server is not using
@strong{must} always ensure that the @code{mysqld} server is not using
the table (this also applies if you are using @code{--skip-locking}).
If you don't take down @code{mysqld} you should at least do a
@code{mysqladmin flush-tables} before you run @code{myisamchk}.
Your tables @strong{may be corrupted} if the server and @code{myisamchk}
access the tables simultaneously.
This chapter describes how to check for and deal with data corruption
in MySQL databases. If your tables get corrupted a lot you should
in MySQL databases. If your tables get corrupted frequently you should
try to find the reason for this! @xref{Crashing}.
The @code{MyISAM} table section contains reason for why a table could be
......@@ -19481,7 +19484,7 @@ To check a MyISAM table, use the following commands:
@table @code
@item myisamchk tbl_name
This finds 99.99% of all errors. What it can't find is corruption that
involves @strong{ONLY} the data file (which is very unusual). If you want
involves @strong{only} the data file (which is very unusual). If you want
to check a table, you should normally run @code{myisamchk} without options or
with either the @code{-s} or @code{--silent} option.
......@@ -19494,7 +19497,7 @@ in the index tree.
@item myisamchk -e tbl_name
This does a complete and thorough check of all data (@code{-e} means
``extended check''). It does a check-read of every key for each row to verify
that they indeed point to the correct row. This may take a LONG time on a
that they indeed point to the correct row. This may take a long time on a
big table with many keys. @code{myisamchk} will normally stop after the first
error it finds. If you want to obtain more information, you can add the
@code{--verbose} (@code{-v}) option. This causes @code{myisamchk} to keep
......@@ -19606,7 +19609,7 @@ memory} errors), or if @code{myisamchk} crashes, go to Stage 3.
@noindent
@strong{Stage 2: Easy safe repair}
NOTE: If you want repairing to go much faster, you should add: @code{-O
Note: If you want repairing to go much faster, you should add: @code{-O
sort_buffer=# -O key_buffer=#} (where # is about 1/4 of the available
memory) to all @code{isamchk/myisamchk} commands.
......@@ -20422,7 +20425,7 @@ host. You can also get this list using the @code{mysqlshow} command.
@code{SHOW TABLES} lists the tables in a given database. You can also
get this list using the @code{mysqlshow db_name} command.
@strong{NOTE:} If a user doesn't have any privileges for a table, the table
@strong{Note:} If a user doesn't have any privileges for a table, the table
will not show up in the output from @code{SHOW TABLES} or @code{mysqlshow
db_name}.
......@@ -20796,7 +20799,7 @@ Is @code{ON} if @code{mysqld} was started with @code{--ansi}.
@item @code{back_log}
The number of outstanding connection requests MySQL can have. This
comes into play when the main MySQL thread gets @strong{VERY}
comes into play when the main MySQL thread gets @strong{very}
many connection requests in a very short time. It then takes some time
(although very little) for the main thread to check the connection and start
a new thread. The @code{back_log} value indicates how many requests can be
......@@ -20971,7 +20974,7 @@ Increase this to get better index handling (for all reads and multiple
writes) to as much as you can afford; 64M on a 256M machine that mainly
runs MySQL is quite common. If you, however, make this too big
(more than 50% of your total memory?) your system may start to page and
become REALLY slow. Remember that because MySQL does not cache
become extremely slow. Remember that because MySQL does not cache
data read, that you will have to leave some room for the OS filesystem
cache.
......@@ -21388,7 +21391,7 @@ use this character set for this connection.
One should use @code{mysql_real_escape_string()} when escaping strings
for a SQL query. @code{mysql_real_escape_string()} is identical to the
old @code{mysql_escape_string()} function, except that it takes the MYSQL
old @code{mysql_escape_string()} function, except that it takes the @code{MYSQL}
connection handle as the first parameter.
If the client is compiled with different paths than where the server is
......@@ -21634,7 +21637,7 @@ the discussion of string collating below. @xref{String collating}.
@code{ctype[]} is an array of bit values, with one element for one character.
(Note that @code{to_lower[]}, @code{to_upper[]}, and @code{sort_order[]}
are indexed by character value, but @code{ctype[]} is indexed by character
value + 1. This is an old legacy to be able to handle EOF.)
value + 1. This is an old legacy to be able to handle @code{EOF}.)
You can find the following bitmask definitions in @file{m_ctype.h}:
......@@ -21989,7 +21992,7 @@ edited version that you can reinstall.
@cindex @code{mysqld_multi}
@code{mysqld_multi} is meant for managing several @code{mysqld}
processes running in different UNIX sockets and TCP/IP ports.
processes running in different Unix sockets and TCP/IP ports.
The program will search for group(s) named [mysqld#] from my.cnf (or the
given --config-file=...), where # can be any positive number starting
......@@ -22019,7 +22022,7 @@ list. Anything after a white space is ignored.
@itemize
@cindex config-file option
@item --config-file=...
Alternative config file. NOTE: This will not affect this program's own
Alternative config file. Note: This will not affect this program's own
options (group @code{[mysqld_multi]}), but only groups
[mysqld#]. Without this option everything will be searched from the
ordinary my.cnf file.
......@@ -22031,7 +22034,7 @@ Give an example of a config file.
Print this help and exit.
@cindex log option
@item --log=...
Log file. Full path to and the name for the log file. NOTE: If the file
Log file. Full path to and the name for the log file. Note: If the file
exists, everything will be appended.
@cindex mysqladmin option
@item --mysqladmin=...
......@@ -22052,9 +22055,9 @@ Password for user for @code{mysqladmin}.
@cindex tcp-ip option
@item --tcp-ip
Connect to the MySQL server(s) via the TCP/IP port instead of
the UNIX socket. This affects stopping and reporting. If a socket file
the Unix socket. This affects stopping and reporting. If a socket file
is missing, the server may still be running, but can be accessed only
via the TCP/IP port. By default connecting is done via the UNIX socket.
via the TCP/IP port. By default connecting is done via the Unix socket.
@cindex user option
@item --user=...
MySQL user for @code{mysqladmin}.
......@@ -22091,7 +22094,7 @@ should have its own @code{pid-file}. The advantage using
it, if a @code{mysqld} process fails due to signal kill -9, or
similar. (Like segmentation fault, which MySQL should never do,
of course ;) Please note that @code{safe_mysqld} script may require that
you start it from a certain place. This means that you may have to CD to
you start it from a certain place. This means that you may have to @code{cd} to
a certain directory, before you start the @code{mysqld_multi}. If
you have problems starting, please see the @code{safe_mysqld}
script. Check especially the lines:
......@@ -22106,7 +22109,7 @@ release) if test -d /data/mysql -a -f ./share/mysql/english/errmsg.sys
The above test should be successful, or you may encounter problems.
@item
Beware of the dangers starting multiple @code{mysqlds} in the same data
directory. Use separate data directories, unless you @strong{KNOW} what
directory. Use separate data directories, unless you @strong{know} what
you are doing!
@item
The socket file and the TCP/IP port must be different for every @code{mysqld}.
......@@ -22123,17 +22126,17 @@ You may want to use option '--user' for @code{mysqld}, but in order to
do this you need to be root when you start the @code{mysqld_multi}
script. Having the option in the config file doesn't matter; you will
just get a warning, if you are not the superuser and the @code{mysqlds}
are started under @strong{YOUR} UNIX account. @strong{IMPORTANT}: Make
are started under @strong{your} Unix account. @strong{Important}: Make
sure that the @code{pid-file} and the data directory are
read+write(+execute for the latter one) accessible for @strong{THAT}
UNIX user, who the specific @code{mysqld} process is started
as. @strong{DON'T} use the UNIX root account for this, unless you
@strong{KNOW} what you are doing!
@item
@strong{MOST IMPORTANT}: Make sure that you understand the meanings of
the options that are passed to the @code{mysqlds} and why @strong{WOULD
YOU WANT} to have separate @code{mysqld} processes. Starting multiple
@code{mysqlds} in one data directory @strong{WILL NOT} give you extra
read+write(+execute for the latter one) accessible for @strong{that}
Unix user, who the specific @code{mysqld} process is started
as. @strong{Do not} use the Unix root account for this, unless you
@strong{know} what you are doing!
@item
@strong{Most important}: Make sure that you understand the meanings of
the options that are passed to the @code{mysqld}s and @strong{why one
would want} to have separate @code{mysqld} processes. Starting multiple
@code{mysqld}s in one data directory @strong{will not} give you extra
performance in a threaded system!
@end itemize
......@@ -22256,7 +22259,7 @@ Display a help message and exit.
@item -j big_tbl_name, --join=big_tbl_name
Join all tables named on the command line into a single table
@code{big_tbl_name}. All tables that are to be combined
MUST be identical (same column names and types, same indexes, etc.).
@strong{must} be identical (same column names and types, same indexes, etc.).
@item -p #, --packlength=#
Specify the record length storage size, in bytes. The value should be 1, 2,
......@@ -22617,12 +22620,12 @@ The meaning of the values are:
@multitable @columnfractions .3 .7
@item @strong{Value} @tab @strong{Meaning}.
@item YES @tab The option is activated and usable.
@item NO @tab MySQL is not compiled with support for this option.
@item DISABLED @tab The xxxx option is disabled because one started @code{mysqld} with @code{--skip-xxxx} or because one didn't start @code{mysqld} with all needed options to enable the option. In this case the @code{hostname.err} file should contain a reason for why the option is disabled.
@item @code{YES} @tab The option is activated and usable.
@item @code{NO} @tab MySQL is not compiled with support for this option.
@item @code{DISABLED} @tab The xxxx option is disabled because one started @code{mysqld} with @code{--skip-xxxx} or because one didn't start @code{mysqld} with all needed options to enable the option. In this case the @code{hostname.err} file should contain a reason for why the option is disabled.
@end multitable
@strong{NOTE}: To be able to create InnoDB tables you @strong{MUST} edit
@strong{Note}: To be able to create InnoDB tables you @strong{must} edit
your startup options to include at least the @code{innodb_data_file_path}
option. @xref{InnoDB start}.
......@@ -22889,7 +22892,7 @@ Continue even if we get a SQL error.
@item -g, --no-named-commands
Named commands are disabled. Use \* form only, or use named commands
only in the beginning of a line ending with a semicolon (@samp{;}). Since
Version 10.9, the client now starts with this option ENABLED by default!
Version 10.9, the client now starts with this option @strong{enabled} by default!
With the -g option, long format commands will still work from the first
line, however.
......@@ -22944,7 +22947,7 @@ other database in the update log.
@item @code{--pager[=...]}
Output type. Default is your @code{ENV} variable @code{PAGER}. Valid
pagers are less, more, cat [> filename], etc. See interactive help (\h)
also. This option does not work in batch mode. Pager works only in UNIX.
also. This option does not work in batch mode. Pager works only in Unix.
@cindex @code{password}, @code{mysql} option
@item -p[password], --password[=...]
......@@ -23056,7 +23059,7 @@ tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
use (\u) Use another database. Takes database name as argument.
@end example
From the above, pager only works in UNIX.
From the above, pager only works in Unix.
@cindex status command
The @code{status} command gives you some information about the
......@@ -23143,7 +23146,7 @@ each command, just before the command line appears again waiting for the
next command.
@item
Browsing, or searching the results in the interactive mode in UNIX less,
Browsing, or searching the results in the interactive mode in Unix less,
more, or any other similar program, is now possible with option
@code{--pager[=...]}. Without argument, @code{mysql} client will look
for environment variable PAGER and set @code{pager} to that.
......@@ -23152,7 +23155,7 @@ command @code{pager} and disabled with command @code{nopager}. The
command takes an argument optionally and the @code{pager} will be set to
that. Command @code{pager} can be called without an argument, but this
requires that the option @code{--pager} was used, or the @code{pager}
will default to stdout. @code{pager} works only in UNIX, since it uses
will default to stdout. @code{pager} works only in Unix, since it uses
the popen() function, which doesn't exist in Windows. In Windows, the
@code{tee} option can be used instead, although it may not be as handy
as @code{pager} can be in some situations.
......@@ -23191,11 +23194,11 @@ mysql> pager cat | tee /dr1/tmp/res.txt | tee /dr2/tmp/res2.txt | less -n -i -S
You can also combine the two functions above; have the @code{tee}
enabled, @code{pager} set to 'less' and you will be able to browse the
results in unix 'less' and still have everything appended into a file
the same time. The difference between @code{UNIX tee} used with the
the same time. The difference between Unix @code{tee} used with the
@code{pager} and the @code{mysql} client in-built @code{tee}, is that
the in-built @code{tee} works even if you don't have the @code{UNIX tee}
the in-built @code{tee} works even if you don't have the Unix @code{tee}
available. The in-built @code{tee} also logs everything that is printed
on the screen, where the @code{UNIX tee} used with @code{pager} doesn't
on the screen, where the Unix @code{tee} used with @code{pager} doesn't
log quite that much. Last, but not least, the interactive @code{tee} is
more handy to switch on and off, when you want to log something into a
file, but want to be able to turn the feature off sometimes.
......@@ -23586,7 +23589,7 @@ Verbose mode. Print out more information on what the program does.
@item -V, --version
Print version information and exit.
@item -w, --where='where-condition'
Dump only selected records. Note that QUOTES are mandatory:
Dump only selected records. Note that quotes are mandatory:
@example
"--where=user='jimf'" "-wuserid>1" "-wuserid<1"
......@@ -23781,7 +23784,7 @@ is @code{localhost}.
See the description for the @code{--replace} option.
@item -l, --lock-tables
Lock @strong{ALL} tables for writing before processing any text files. This
Lock @strong{all} tables for writing before processing any text files. This
ensures that all tables are synchronised on the server.
@item -L, --local
......@@ -24046,7 +24049,7 @@ after the query is executed, but before any locks are released.
@cindex update log
@cindex files, update log
@strong{NOTE}: The update log is replaced by the binary
@strong{Note}: The update log is replaced by the binary
log. @xref{Binary log}. With this you can do anything that you can do
with the update log.
......@@ -24060,7 +24063,7 @@ extension, @code{mysqld} will create log file names like so:
time you execute @code{mysqladmin refresh}, execute @code{mysqladmin
flush-logs}, execute the @code{FLUSH LOGS} statement, or restart the server.
@strong{NOTE:} For the above scheme to work, you should NOT create
@strong{Note:} For the above scheme to work, you must not create
your own files with the same filename as the update log + some extensions
that may be regarded as a number, in the directory used by the update log!
......@@ -25484,7 +25487,7 @@ is, they have different design compromises that lead to different
behavior.
If you strive for database independence, you need to get a good feeling
for each SQL server's bottlenecks. MySQL is VERY fast in
for each SQL server's bottlenecks. MySQL is very fast in
retrieving and updating things, but will have a problem in mixing slow
readers/writers on the same table. Oracle, on the other hand, has a big
problem when you try to access rows that you have recently updated
......@@ -25505,11 +25508,11 @@ MySQL-specific keywords to a query. The code inside
@code{/**/} will be treated as a comment (ignored) by most other SQL
servers.
If REAL high performance is more important than exactness, as in some
Web applications, a possibility is to create an application layer that
If high performance is more important than exactness, as in some
Web applications, it is possibile to create an application layer that
caches all results to give you even higher performance. By letting
old results 'expire' after a while, you can keep the cache reasonably
fresh. This is quite nice in case of extremely high load, in which case
fresh. This provides a method to handle high load spikes, in which case
you can dynamically increase the cache and set the expire timeout higher
until things get back to normal.
......@@ -25635,7 +25638,7 @@ We have gather some more benchmark results at
Note that Oracle is not included because they asked to be removed. All
Oracle benchmarks have to be passed by Oracle! We believe that makes
Oracle benchmarks @strong{VERY} biased because the above benchmarks are
Oracle benchmarks @strong{very} biased because the above benchmarks are
supposed to show what a standard installation can do for a single
client.
......@@ -25697,8 +25700,8 @@ It is very common that some problems only occur when the system is very
heavily loaded. We have had many customers who contact us when they
have a (tested) system in production and have encountered load problems. In
every one of these cases so far, it has been problems with basic design
(table scans are NOT good at high load) or OS/Library issues. Most of
this would be a @strong{LOT} easier to fix if the systems were not
(table scans are @strong{not good} at high load) or OS/Library issues. Most of
this would be a @strong{lot} easier to fix if the systems were not
already in production.
To avoid problems like this, you should put some effort into benchmarking
......@@ -26773,7 +26776,7 @@ Try to keep the names simple (use @code{name} instead of
@code{customer_name} in the customer table). To make your names portable
to other SQL servers you should keep them shorter than 18 characters.
@item
If you need REALLY high speed, you should take a look at the low-level
If you need really high speed, you should take a look at the low-level
interfaces for data storage that the different SQL servers support! For
example, by accessing the MySQL @code{MyISAM} directly, you could
get a speed increase of 2-5 times compared to using the SQL interface.
......@@ -26887,7 +26890,7 @@ The table locking code in MySQL is deadlock free.
MySQL uses table locking (instead of row locking or column
locking) on all table types, except @code{BDB} tables, to achieve a very
high lock speed. For large tables, table locking is MUCH better than
high lock speed. For large tables, table locking is much better than
row locking for most applications, but there are, of course, some
pitfalls.
......@@ -27039,7 +27042,7 @@ You lose a lot of space, as you must duplicate indexes from the nodes
Deletes will degenerate the table over time (as indexes in nodes are
usually not updated on delete).
@item
It's harder to cache ONLY the index data.
It's harder to cache only the index data.
@end itemize
......@@ -27099,7 +27102,7 @@ Only create the indexes that you really need. Indexes are good for
retrieval but bad when you need to store things fast. If you mostly
access a table by searching on a combination of columns, make an index
on them. The first index part should be the most used column. If you are
ALWAYS using many columns, you should use the column with more duplicates
@strong{always} using many columns, you should use the column with more duplicates
first to get better compression of the index.
@item
......@@ -28106,7 +28109,7 @@ for replication of tables with fancy column names to work.
@item TIMESTAMP = timestamp_value | DEFAULT
Set the time for this client. This is used to get the original timestamp if
you use the update log to restore rows. @code{timestamp_value} should be a
UNIX Epoch timestamp, not a MySQL timestamp.
Unix epoch timestamp, not a MySQL timestamp.
@item LAST_INSERT_ID = #
Set the value to be returned from @code{LAST_INSERT_ID()}. This is stored in
......@@ -28335,7 +28338,7 @@ will be created in the same directory where the data/index file is.
@item
When you drop a table that is using symlinks, both the symlink and the
file the symlink points to is dropped. This is a good reason to why you
should NOT run @code{mysqld} as root and not allow persons to have write
should @strong{not} run @code{mysqld} as root and not allow persons to have write
access to the MySQL database directories.
@item
......@@ -29363,7 +29366,7 @@ These three are synonyms for @code{CHAR(1)}.
@tindex VARCHAR
@item [NATIONAL] VARCHAR(M) [BINARY]
A variable-length string. @strong{NOTE:} Trailing spaces are removed when
A variable-length string. @strong{Note:} Trailing spaces are removed when
the value is stored (this differs from the ANSI SQL specification). The range
of @code{M} is 1 to 255 characters. @code{VARCHAR} values are sorted and
compared in case-insensitive fashion unless the @code{BINARY} keyword is
......@@ -30585,7 +30588,7 @@ An expression that contains @code{NULL} always produces a @code{NULL} value
unless otherwise indicated in the documentation for the operators and
functions involved in the expression.
@strong{NOTE:} There must be no whitespace between a function name and the
@strong{Note:} There must be no whitespace between a function name and the
parenthesis following it. This helps the MySQL parser distinguish
between function calls and references to tables or columns that happen to
have the same name as a function. Spaces around arguments are permitted,
......@@ -33657,7 +33660,7 @@ the @code{ESCAPED BY} character:
Additionally, @code{ASCII 0} is converted to @code{ESCAPED BY} followed by 0
(@code{ASCII 48}).
The reason for the above is that you MUST escape any @code{FIELDS
The reason for the above is that you @strong{must} escape any @code{FIELDS
TERMINATED BY}, @code{ESCAPED BY}, or @code{LINES TERMINATED BY}
characters to reliably be able to read the file back. @code{ASCII 0} is
escaped to make it easier to view with some pagers.
......@@ -34340,7 +34343,7 @@ all rows, and are willing to suffer a speed penalty, you can use a
mysql> DELETE FROM table_name WHERE 1>0;
@end example
Note that this is MUCH slower than @code{DELETE FROM table_name} with no
Note that this is much slower than @code{DELETE FROM table_name} with no
@code{WHERE} clause, because it deletes rows one at a time.
If you specify the keyword @code{LOW_PRIORITY}, execution of the
......@@ -34359,7 +34362,7 @@ TABLE} statement or the @code{myisamchk} utility to reorganise tables.
The multi table delete format is supported starting from MySQL 4.0.0.
The idea is that only matching rows from the tables listed BEFORE the
The idea is that only matching rows from the tables listed @strong{before} the
@code{FROM} clause is deleted. The effect is that you can delete rows
from many tables at the same time and also have additional tables that
are used for searching.
......@@ -35918,7 +35921,7 @@ exist.
@code{RESTRICT} and @code{CASCADE} are allowed to make porting easier.
For the moment they don't do anything.
@strong{NOTE}: @code{DROP TABLE} is not transaction-safe and will
@strong{Note}: @code{DROP TABLE} is not transaction-safe and will
automatically commit any active transactions.
......@@ -36216,7 +36219,7 @@ tables to transactions safe tables.
You can safely kill a thread that is waiting for a table lock with
@code{KILL}. @xref{KILL}.
Note that you should @strong{NOT} lock any tables that you are using with
Note that you should @strong{not} lock any tables that you are using with
@code{INSERT DELAYED}. This is because that in this case the @code{INSERT}
is done by a separate thread.
......@@ -36768,9 +36771,9 @@ The following options to @code{mysqld} can be used to change the behavior of
@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 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!
@item @code{-O myisam_bulk_insert_tree_size=#} @tab Size of tree cache used in bulk insert optimisation. @strong{NOTE} that this is a limit @strong{per thread}!
@item @code{-O myisam_max_extra_sort_file_size=#} @tab Used to help 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!
@item @code{-O myisam_bulk_insert_tree_size=#} @tab Size of tree cache used in bulk insert optimisation. @strong{Note} that this is a limit @strong{per thread}!
@end multitable
The automatic recovery is activated if you start @code{mysqld} with
......@@ -38901,7 +38904,7 @@ file size in @code{innodb_data_file_path}. The partition must be
innodb_data_file_path=hdd1:5Gnewraw;hdd2:2Gnewraw
@end example
When you start the database again you MUST change the keyword
When you start the database again you @strong{must} change the keyword
to @code{raw}. Otherwise InnoDB will write over your
partition!
......@@ -39270,7 +39273,7 @@ stored as the key data + the @code{PRIMARY KEY}, it's important to keep the
@code{PRIMARY KEY} as short as possible to save disk and get better speed.
@item
@code{LOCK TABLES} works on @code{BDB} tables as with other tables. If
you don't use @code{LOCK TABLE}, MYSQL will issue an internal
you don't use @code{LOCK TABLE}, MySQL will issue an internal
multiple-write lock on the table to ensure that the table will be
properly locked if another thread issues a table lock.
@item
......@@ -39708,7 +39711,7 @@ $rv = $dbh->do($statement)
or die "Can't execute $statement: $dbh- >errstr\n";
@end example
Generally the 'do' statement is MUCH faster (and is preferable)
Generally the 'do' statement is much faster (and is preferable)
than prepare/execute for statements that don't contain parameters.
@findex DBI->quote()
......@@ -42593,7 +42596,7 @@ else // query succeeded, process any data returned by it
@}
@end example
An alternative (if you KNOW that your query should have returned a result set)
An alternative (if you know that your query should have returned a result set)
is to replace the @code{mysql_errno(&mysql)} call with a check if
@code{mysql_field_count(&mysql)} is = 0. This will only happen if something
went wrong.
......@@ -44973,7 +44976,7 @@ parameter to @code{1}:
If @code{xxx()} sets @code{*error} to @code{1} for any row, the function
value is @code{NULL} for the current row and for any subsequent rows
processed by the statement in which @code{XXX()} was invoked. (@code{xxx()}
will not even be called for subsequent rows.) @strong{NOTE:} In
will not even be called for subsequent rows.) @strong{Note:} In
MySQL versions prior to 3.22.10, you should set both @code{*error}
and @code{*is_null}:
......@@ -45289,7 +45292,7 @@ The machine doesn't answer to a remote machine's pings.
Different, unrelated programs don't behave correctly.
@item
If your system rebooted unexpectedly (a faulty user level program should
NEVER be able to take down your system).
@strong{never} be able to take down your system).
@end itemize
In this case you should start by checking all your cables and run some
......@@ -46034,10 +46037,10 @@ symbols that start with @code{mysql_}, like the following:
@end example
you should be able to solve this by adding @code{-Lpath-to-the-mysql-library
-lmysqlclient} @strong{LAST} on your link line.
-lmysqlclient} @strong{last} on your link line.
If you get @code{undefined reference} errors for the @code{uncompress}
or @code{compress} function, add @code{-lz} @strong{LAST} on your link
or @code{compress} function, add @code{-lz} @strong{last} on your link
line and try again!
If you get @code{undefined reference} errors for functions that should
......@@ -46978,9 +46981,9 @@ SELECT col_name1, col_name3, col_name2 FROM tbl_name;
will return columns in the order @code{col_name1}, @code{col_name3}, @code{col_name2}.
You should @strong{NEVER}, in an application, use @code{SELECT *} and
You should @strong{never}, in an application, use @code{SELECT *} and
retrieve the columns based on their position, because the order in which
columns are returned @strong{CANNOT} be guaranteed over time. A simple
columns are returned @strong{cannot} be guaranteed over time. A simple
change to your database may cause your application to fail rather
dramatically.
......@@ -49480,7 +49483,7 @@ Initialise signals early to avoid problem with signals in InnoDB.
@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
@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}.
......@@ -49496,7 +49499,7 @@ Fixed a bug that allowed you to use database names containing a @samp{.}
character. This fixes a serious security issue when @code{mysqld} is run
as root.
@item
Fixed bug when thread creation failed (could happen when doing a LOT
Fixed bug when thread creation failed (could happen when doing a @strong{lot}
of connections in a short time).
@item
Fixed some problems with @code{FLUSH TABLES} and @code{TEMPORARY} tables.
......@@ -50027,7 +50030,7 @@ and the interactive help for more information.
Fixed crash when automatic repair of @code{MyISAM} table failed.
@item
Fixed a major performance bug in the table locking code when one
constantly had a LOT of @code{SELECT}, @code{UPDATE} and @code{INSERT}
constantly had a lot of @code{SELECT}, @code{UPDATE} and @code{INSERT}
statements running. The symptom was that the @code{UPDATE} and
@code{INSERT} queries were locked for a long time while new @code{SELECT}
statements were executed before the updates.
......@@ -51549,7 +51552,7 @@ Added @code{mysqld} option @code{--default-table-type}.
The 3.22 version has faster and safer connect code than version 3.21, as well
as a lot of new nice enhancements. The reason for not including these changes
As there aren't really any MAJOR changes, upgrading from 3.21 to 3.22 should
As there aren't really any major changes, upgrading from 3.21 to 3.22 should
be very easy and painless. @xref{Upgrading-from-3.21}.
@menu
......@@ -52088,7 +52091,7 @@ Fix for @code{isamchk} for tables which need big temporary files.
@itemize @bullet
@item
@strong{IMPORTANT}: You must run the @code{mysql_fix_privilege_tables} script
@strong{Important}: You must run the @code{mysql_fix_privilege_tables} script
when you upgrade to this version! This is needed because of the new
@code{GRANT} system. If you don't do this, you will get @code{Access
denied} when you try to use @code{ALTER TABLE}, @code{CREATE INDEX} or
......@@ -52169,7 +52172,7 @@ Added @code{maybe_null} to the UDF structure.
Added option @code{IGNORE} to @code{INSERT} statements with many rows.
@item
Fixed some problems with sorting of the koi8 character sets; Users of koi8
@strong{MUST} run @code{isamchk -rq} on each table that has an index on
@strong{must} run @code{isamchk -rq} on each table that has an index on
a @code{CHAR} or @code{VARCHAR} column.
@item
New script @code{mysql_setpermission}, by Luuk de Boer, allows one
......@@ -52218,7 +52221,7 @@ Added a lot more output to @code{mysqladmin debug}.
@item
You can now start @code{mysqld} on Windows with the @code{--flush} option.
This will flush all tables to disk after each update. This makes things
much safer on NT/Win98 but also @strong{MUCH} slower.
much safer on NT/Win98 but also @strong{much} slower.
@end itemize
......@@ -52421,13 +52424,13 @@ trailing @samp{;}.
@item
Fix for corrupted fixed-format output generated by @code{SELECT INTO OUTFILE}.
@item
@strong{WARNING: INCOMPATIBLE CHANGE!!}
@strong{Warning: Incompatible change!}
Added Oracle @code{GREATEST()} and @code{LEAST()} functions. You must now use
these instead of the @code{MAX()} and @code{MIN()} functions to get the
largest/smallest value from a list of values. These can now handle @code{REAL},
@code{BIGINT} and string (@code{CHAR} or @code{VARCHAR}) values.
@item
@strong{WARNING: INCOMPATIBLE CHANGE!!}
@strong{Warning: Incompatible change!}
@code{DAYOFWEEK()} had offset 0 for Sunday. Changed the offset to 1.
@item
Give an error for queries that mix @code{GROUP BY} columns and fields when
......@@ -53247,7 +53250,7 @@ Added ODBC 2.0 & 3.0 functions @code{POWER()}, @code{SPACE()},
@code{COT()}, @code{DEGREES()}, @code{RADIANS()}, @code{ROUND(2 arg)}
and @code{TRUNCATE()}.
@item
@strong{WARNING: INCOMPATIBLE CHANGE!!} @code{LOCATE()} parameters were
@strong{Warning: Incompatible change!} @code{LOCATE()} parameters were
swapped according to ODBC standard. Fixed.
@item
Added function @code{TIME_TO_SEC()}.
......@@ -53266,14 +53269,14 @@ be compatible with @code{mysqldump}.
@itemize @bullet
@item
@strong{WARNING: INCOMPATIBLE CHANGE!!} @code{mysqlperl} is now from
@strong{Warning: Incompatible change!} @code{mysqlperl} is now from
Msql-Mysql-modules. This means that @code{connect()} now takes
@code{host}, @code{database}, @code{user}, @code{password} arguments! The old
version took @code{host}, @code{database}, @code{password}, @code{user}.
@item
Allow @code{DATE '1997-01-01'}, @code{TIME '12:10:10'} and
@code{TIMESTAMP '1997-01-01 12:10:10'} formats required by ANSI SQL.
@strong{WARNING: INCOMPATIBLE CHANGE!!} This has the unfortunate
@strong{Warning: Incompatible change!} This has the unfortunate
side-effect that you no longer can have columns named @code{DATE}, @code{TIME}
or @code{TIMESTAMP}. :( Old columns can still be accessed through
@code{tablename.columnname}!)
......@@ -54758,7 +54761,7 @@ After this you can use the @code{mysql.exe} command line tool in a
second DOS window to reproduce the problem. You can take down the above
@code{mysqld} server with @code{mysqladmin shutdown}.
Note that the trace file will get very @emph{BIG}!
Note that the trace file will get @strong{very big}!
If you want to have a smaller trace file, you can use something like:
@code{mysqld --debug=d,info,error,query,general,where:O,/tmp/mysqld.trace}
......@@ -54867,7 +54870,7 @@ setting the @code{DBI_TRACE} environment variable.
On some operating systems, the error log will contain a stack trace if
@code{mysqld} dies unexpectedly. You can use this to find out where (and
maybe why) @code{mysqld} died. @xref{Error log}. To get a stack trace,
you should NOT compile @code{mysqld} with the @code{-fomit-frame-pointer}
you must not compile @code{mysqld} with the @code{-fomit-frame-pointer}
option to gcc. @xref{Compiling for debugging}.
If the error file contains something like the following:
......@@ -55235,7 +55238,7 @@ Here are some tips about locking in MySQL:
On web application most applications do lots of selects, very few
deletes, updates mainly on keys and inserts in some specific tables.
The base MySQL setup is VERY tuned for this.
The base MySQL setup is very well tuned for this.
Concurrent users is not a problem if one doesn't mix updates and selects
that needs to examine many rows in the same table.
......@@ -1712,7 +1712,7 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
charset_name=charset_name_buff;
sprintf(charset_name,"%d",mysql->server_language); /* In case of errors */
if (!(mysql->charset =
get_charset((uint8) mysql->server_language, MYF(MY_WME))))
get_charset((uint8) mysql->server_language, MYF(0))))
mysql->charset = default_charset_info; /* shouldn't be fatal */
}
......
......@@ -296,7 +296,7 @@ static CHARSET_INFO *find_charset_by_name(CHARSET_INFO **table,
return NULL;
}
static CHARSET_INFO *add_charset(uint cs_number, const char *cs_name)
static CHARSET_INFO *add_charset(uint cs_number, const char *cs_name, myf flags)
{
CHARSET_INFO tmp_cs,*cs;
uchar tmp_ctype[CTYPE_TABLE_SIZE];
......@@ -311,11 +311,11 @@ static CHARSET_INFO *add_charset(uint cs_number, const char *cs_name)
cs->to_lower=tmp_to_lower;
cs->to_upper=tmp_to_upper;
cs->sort_order=tmp_sort_order;
if (read_charset_file(cs_number, cs, MYF(MY_WME)))
if (read_charset_file(cs_number, cs, flags))
return NULL;
cs = (CHARSET_INFO*) my_once_alloc(sizeof(CHARSET_INFO),
MYF(MY_WME));
MYF(MY_WME));
*cs=tmp_cs;
cs->name = (char *) my_once_alloc((uint) strlen(cs_name)+1, MYF(MY_WME));
cs->ctype = (uchar*) my_once_alloc(CTYPE_TABLE_SIZE, MYF(MY_WME));
......@@ -333,7 +333,7 @@ static CHARSET_INFO *add_charset(uint cs_number, const char *cs_name)
return cs;
}
static CHARSET_INFO *get_internal_charset(uint cs_number)
static CHARSET_INFO *get_internal_charset(uint cs_number, myf flags)
{
CHARSET_INFO *cs;
/*
......@@ -344,13 +344,13 @@ static CHARSET_INFO *get_internal_charset(uint cs_number)
if (!(cs = find_charset((CHARSET_INFO**) cs_info_table.buffer, cs_number,
cs_info_table.elements)))
if (!(cs = find_compiled_charset(cs_number)))
cs=add_charset(cs_number, get_charset_name(cs_number));
cs=add_charset(cs_number, get_charset_name(cs_number), flags);
pthread_mutex_unlock(&THR_LOCK_charset);
return cs;
}
static CHARSET_INFO *get_internal_charset_by_name(const char *name)
static CHARSET_INFO *get_internal_charset_by_name(const char *name, myf flags)
{
CHARSET_INFO *cs;
/*
......@@ -361,7 +361,7 @@ static CHARSET_INFO *get_internal_charset_by_name(const char *name)
if (!(cs = find_charset_by_name((CHARSET_INFO**) cs_info_table.buffer, name,
cs_info_table.elements)))
if (!(cs = find_compiled_charset_by_name(name)))
cs=add_charset(get_charset_number(name), name);
cs=add_charset(get_charset_number(name), name, flags);
pthread_mutex_unlock(&THR_LOCK_charset);
return cs;
}
......@@ -371,7 +371,7 @@ CHARSET_INFO *get_charset(uint cs_number, myf flags)
{
CHARSET_INFO *cs;
(void) init_available_charsets(MYF(0)); /* If it isn't initialized */
cs=get_internal_charset(cs_number);
cs=get_internal_charset(cs_number, flags);
if (!cs && (flags & MY_WME))
{
......@@ -403,7 +403,7 @@ CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags)
{
CHARSET_INFO *cs;
(void) init_available_charsets(MYF(0)); /* If it isn't initialized */
cs=get_internal_charset_by_name(cs_name);
cs=get_internal_charset_by_name(cs_name, flags);
if (!cs && (flags & MY_WME))
{
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment