[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The Linux-Intel binary and RPM releases of MySQL are configured for the highest possible speed. We are always trying to use the fastest stable compiler available.
The binary release is linked with -static
, which means you do not
normally need to worry about which version of the system libraries you
have. You need not install LinuxThreads, either. A program linked with
-static
is slightly larger than a dynamically linked program,
but also slightly faster (3-5%). However, one problem with a statically
linked program is that you can't use user-defined functions (UDFs).
If you are going to write or use UDFs (this is something for C or C++
programmers only), you must compile MySQL yourself using dynamic linking.
A known issue with binary distributions is that on older Linux
systems that use libc
(such as Red Hat 4.x or Slackware), you will get
some non-fatal problems with hostname resolution. If your system uses
libc
rather than glibc2
,
you probably will encounter some difficulties with hostname resolution and
getpwnam()
. This happens because glibc
unfortunately depends on some external libraries to implement hostname
resolution and getpwent()
, even when compiled with -static
).
These problems manifest themselves in two ways:
mysql_install_db
:
Sorry, the host 'xxxx' could not be looked up |
You can deal with this by executing
mysql_install_db --force
, which will not execute the
resolveip
test in mysql_install_db
. The downside is that
you can't use hostnames in the grant tables: Except for localhost
,
you must use IP numbers instead. If you are using an old version of MySQL
that doesn't support --force
, you must manually remove the
resolveip
test in mysql_install
using an editor.
mysqld
with the --user
option:
getpwnam: No such file or directory |
To work around this, start
mysqld
with su
rather than by specifying the --user
option. This causes the system itself to change the user ID of the
mysqld
process so that mysqld
need not do so.
Another solution, which solves both problems, is to not use a binary
distribution. Get a MySQL source distribution (an RPM or the tar.gz
distribution) and install that instead.
On some Linux 2.2 versions, you may get the error Resource
temporarily unavailable
when clients make a lot of new connections to
a mysqld
server over TCP/IP. The problem is that Linux has a
delay between the time that you close a TCP/IP socket and the time that
the system actually frees it. There is only room for a finite number
of TCP/IP slots, so you will encounter the resource-unavailable error if
clients attempt too many new TCP/IP connections during a short time. For
example, you may see the error when you run the MySQL `test-connect'
benchmark over TCP/IP.
We have inquired about this problem a few times on different Linux mailing lists but have never been able to find a suitable resolution. The only known "fix" is for the clients to use persistent connections, or, if you are running the database server and clients on the same machine, to use Unix socket file connections rather than TCP/IP connections.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |