在FreeBSD下安装mysql5的注意点

WBOY
發布: 2016-06-07 16:04:32
原創
1032 人瀏覽過

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 <font face="新宋体">-RELEASE</font>.

The easiest (and preferred) way to install MySQL is to use the mysql-server and <font face="新宋体">mysql-client</font> 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 <font face="新宋体">/usr/local/etc/rc.d</font>.

  • The ability to use <font face="新宋体">pkg_info -L</font> to see which files are installed.

  • The ability to use <font face="新宋体">pkg_delete</font> 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 <font face="新宋体">gethostbyname()</font> 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 <font face="新宋体">--skip-name-resolve</font> 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 (<font face="新宋体">wait_timeout</font>, <font face="新宋体">interactive_timeout</font> and <font face="新宋体">net_read_timeout</font>) 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 <font face="新宋体">/usr/include/pthreads</font>, configure didn't detect that you need MIT-pthreads. To fix this problem, remove <font face="新宋体">config.cache</font>, then re-run configure with the <font face="新宋体">--with-mit-threads</font> 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 <font face="新宋体">localhost</font> entry in the <font face="新宋体">/etc/hosts</font> 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 <font face="新宋体">--open-files-limit</font> option for mysqld_safe, or raise the limits for the mysqld user in <font face="新宋体">/etc/login.conf</font> and rebuild it with <font face="新宋体">cap_mkdb /etc/login.conf</font>. Also be sure that you set the appropriate class for this user in the password file if you are not using the default (use <font face="新宋体">chpass mysqld-user-name</font>).

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 <font face="新宋体">option MAXDSIZ</font> in the LINT config file for more information.

If you get problems with the current date in MySQL, setting the <font face="新宋体">TZ</font> variable should help.


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板