[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
FreeBSD 4.x or newer is recommended for running MySQL, because the thread
package is much more integrated.
To get a secure and stable system, you should use only FreeBSD kernels
that are marked -RELEASE
.
The easiest (and preferred) way to install MySQL is to use the
mysql-server
and mysql-client
ports available at
http://www.freebsd.org/.
Using these ports gives you the following benefits:
pkg_info -L
to see which files are installed.
pkg_delete
to remove MySQL if you no longer want it
on your machine.
It is recommended you use MIT-pthreads on FreeBSD 2.x, and native threads on
Versions 3 and up. It is possible to run with native threads on some late
2.2.x versions but you may encounter problems shutting down mysqld
.
Unfortunately, certain function calls on FreeBSD are not yet fully thread-safe.
Most notably, this includes the gethostbyname()
function, which is
used by MySQL to convert hostnames into IP addresses. Under certain
circumstances, the mysqld
process will suddenly cause 100%
CPU load and will be unresponsive. If you encounter this problem, try to start
up MySQL using the --skip-name-resolve
option.
Alternatively, you can link MySQL on FreeBSD 4.x against the LinuxThreads library, which avoids a few of the problems that the native FreeBSD thread implementation has. For a very good comparison of LinuxThreads vs. native threads, see Jeremy Zawodny's article FreeBSD or Linux for your MySQL Server? at http://jeremy.zawodny.com/blog/archives/000697.html.
A known problem when using LinuxThreads on FreeBSD is that
wait_timeout
is not working (probably a signal handling problem in
FreeBSD/LinuxThreads). This is supposed to be fixed in FreeBSD 5.0.
The symptom is that persistent connections can hang for a very long
time without getting closed down.
The MySQL build process require GNU make (gmake
) to work. If
GNU make
is not available, you must install it first before compiling
MySQL.
The recommended way to compile and install MySQL on FreeBSD with
gcc
(2.95.2 and up) is:
shell> CC=gcc CFLAGS="-O2 -fno-strength-reduce" \ CXX=gcc CXXFLAGS="-O2 -fno-rtti -fno-exceptions \ -felide-constructors -fno-strength-reduce" \ ./configure --prefix=/usr/local/mysql --enable-assembler shell> gmake shell> gmake install shell> cd /usr/local/mysql shell> bin/mysql_install_db shell> bin/mysqld_safe & |
If you notice that configure
will use MIT-pthreads, you should read
the MIT-pthreads notes. See section 2.3.5 MIT-pthreads Notes.
If you get an error from make install
that it can't find
`/usr/include/pthreads', configure
didn't detect that you need
MIT-pthreads. To fix this problem, remove `config.cache', then re-run
configure
with the --with-mit-threads
option.
Be sure your name resolver setup is correct. Otherwise, you may
experience resolver delays or failures when connecting to mysqld
.
Also make sure that the localhost
entry in the `/etc/hosts' file is
correct. The file should start with a line similar to this:
127.0.0.1 localhost localhost.your.domain |
FreeBSD is known to have a very low default file handle limit.
See section A.2.17 File Not Found. Start the server by using the
--open-files-limit
option for mysqld_safe
, or raise
the limits for the mysqld
user in `/etc/login.conf' and
rebuild it with cap_mkdb /etc/login.conf
. Also be sure you set
the appropriate class for this user in the password file if you are not
using the default (use chpass mysqld-user-name
).
See section mysqld_safe
.
If you have a lot of memory, you should consider rebuilding
the kernel to allow MySQL to use more than 512M of RAM.
Take a look at option MAXDSIZ
in the LINT config
file for more information.
If you get problems with the current date in MySQL, setting the
TZ
variable will probably help. See section E. Environment Variables.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |