跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

在FreeBSD下安装mysql5的注意点

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 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: 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. 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 suddenly causes 100% CPU load and is unresponsive. If you encounter this problem, try to start 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 versus native threads, see Jeremy Zawodny's article FreeBSD or Linux for your MySQL Server? at http://jeremy.zawodny.com/blog/archives/000697.html. Known problem when using LinuxThreads on FreeBSD is: The connection times (
wait_timeout
,
interactive_timeout
and
net_read_timeout
) values are not honored. The symptom is that persistent connections can hang for a very long time without getting closed down and that a 'kill' for a thread will not take affect until the thread does it a new command This is probably a signal handling problem in the thread library where the signal doesn't break a pending read. This is supposed to be fixed in FreeBSD 5.0 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 &
If you notice that configure uses MIT-pthreads, you should read the 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 that 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. 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
). If you have a lot of memory, you should consider rebuilding the kernel to allow MySQL to use more than 512MB 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 should help.

相关文章