This section provides information about using MySQL on variants of FreeBSD Unix.
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:
A working MySQL with all optimizations enabled that are known to work on your version of FreeBSD.
Automatic configuration and build.
Startup scripts installed in
/usr/local/etc/rc.d
.
The ability to use pkg_info -L
to see which
files are installed.
The ability to use pkg_delete
to remove MySQL
if you no longer want it on your machine.
The MySQL build process requires 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:
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 gmake gmake install cd /usr/local/mysql bin/mysql_install_db --user=mysql bin/mysqld_safe &
FreeBSD is known to have a very low default file handle limit. See
'File
' Not Found and Similar Errors. 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 that 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 mysqld_safe.
In current versions of FreeBSD (at least 4.x and greater), you may
increase the limit on the amount of memory available for a process
by adding the following entries to the
/boot/loader.conf
file and rebooting the
machine (these are not settings that can be changed at run time with
the sysctl command):
kern.maxdsiz="1073741824" # 1GB kern.dfldsiz="1073741824" # 1GB kern.maxssiz="134217728" # 128MB
For older versions of FreeBSD, you must recompile your kernel to
change the maximum data segment size for a process. In this case,
you should look at the MAXDSIZ
option in the
LINT
config file for more information.
If you get problems with the current date in MySQL, setting the
TZ
variable should help. See
Environment Variables.