楼主: oraclelang

MySQL中文參考手冊

[复制链接]
论坛徽章:
4
每日论坛发贴之星
日期:2005-04-26 01:01:12会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2008-01-09 22:26:12
131#
 楼主| 发表于 2006-4-29 10:22 | 只看该作者
用Digital編譯器“C++ V6.1-029”,下列命令應該工作:

CC=cc -pthread
CFLAGS=-O4 -ansi_alias -ansi_args -fast -inline speed -speculate all -arch host
CXX=cxx -pthread
CXXFLAGS=-O4 -ansi_alias -ansi_args -fast -inline speed -speculate all -arch host
export CC CFLAGS CXX CXXFLAGS
./configure --prefix=/usr/mysql/mysql --with-low-memory --enable-large-files \
--with-mysqld-ldflags=-all-static --disable-shared --with-named-thread-libs="-lmach -lexc -lc"

在OSF1的某些版本中,alloca()函數被破壞,通過刪除定義'HAVE_ALLOCA'的“config.h”的行更正它。

alloca()函數也可能在/usr/include/alloca.h里面有一個不正確的原型,源于此的警告可以忽略。

configure將自動地使用下列線程庫: --with-named-thread-libs="-lpthread -lmach -lexc -lc"。

當使用gcc時,你也可以試試這樣咝衏onfigure:

shell> CFLAGS=-D_PTHREAD_USE_D4  CXX=gcc  CXXFLAGS=-O3  ./configure ……
如果你的信號有問題(MySQL出人意料地在高負載下死掉),你可能找到了一個線程和信號有關的OS錯誤。在這種情況下,你可以告訴MySQL如下配置以不使用信號:

shell> CFLAGS=-DDONT_USE_THR_ALARM

使用道具 举报

回复
论坛徽章:
4
每日论坛发贴之星
日期:2005-04-26 01:01:12会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2008-01-09 22:26:12
132#
 楼主| 发表于 2006-4-29 10:22 | 只看该作者
CXXFLAGS=-DDONT_USE_THR_ALARM \
       ./configure ...

這不影響MySQL性能,但是有負面效應,就是你不能用mysqladmin kill或mysqladmin shutdown殺死在一個連接上“睡眠”的客戶。相反,當客戶發出下一個命令時,它將死掉。

4.11.8 SGI-Irix 注意事項
你可能需要在咝衏onfigure後且在編譯前去掉在“config.h”里面一些東西的定義(underfine)。

在一些Irix實現中,alloca()函數被破壞。如果mysqld服務器死于一些SELECT語句,把“config.h”定義HAVE_ALLOC和HAVE_ALLOCA_H的行刪除即可。如果mysqladmin create不工作,把“config.h”定義HAVE_READDIR_R的行刪除,你也可能必須刪除HAVE_TERM_H行。

SGI推薦你將本頁上的所有補丁作為一個整體來安裝:http://support.sgi.com/surfzone/ ... 6.2_indigo.rps.html

最小地,你應該安裝最新的核心卷(rollup)、最新的rld卷和最新的libc卷

使用道具 举报

回复
论坛徽章:
4
每日论坛发贴之星
日期:2005-04-26 01:01:12会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2008-01-09 22:26:12
133#
 楼主| 发表于 2006-4-29 10:22 | 只看该作者
很明確,對于pthreads支持,你需要本頁上所有的POSIX補丁:

http://support.sgi.com/surfzone/ ... /6.2_posix.rps.html

如果在編譯“mysql.cc”時,你得到類似于下面的錯誤:

"/usr/include/curses.h", line 82: error(1084): invalid combination of type

那麼,在你的MySQL源代碼樹的頂級目錄打下列命令:

shell> extra/replace bool curses_bool < /usr/include/curses.h > include/curses.h
shell> make

應該也有安排上的問題報告。如果只有一個線程正在咝校?虑闀?兟?摹Mㄟ^啟動另外一個客戶來避免它,這可以導致此後其他線程的執行速度增加2到10倍。這是Irix線程難以理解的問題;你可能必須臨時准備找出解決方案直到它能被修正。

如果你正在用gcc編譯,你可以使用下列configure命令:

shell> CC=gcc CXX=gcc CXXFLAGS=-O3 \
       ./configure --prefix=/usr/local/mysql --with-thread-safe-client --with-named-thread-libs=-lpthread

使用道具 举报

回复
论坛徽章:
4
每日论坛发贴之星
日期:2005-04-26 01:01:12会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2008-01-09 22:26:12
134#
 楼主| 发表于 2006-4-29 10:23 | 只看该作者
4.11.9 FreeBSD 注意事項
對于咝蠱ySQL,FreeBSD 3.x是被推薦的,因為其線程包是更加完整。

最容易因此是比較受喜歡的安裝方法是使用mysql服務者和 mysql客戶的移植,可從http://www.freebsd.org得到。

使用這些給你的東西:

一個全優化的工作在你的FreeBSD版本上的MySQL。
自動配置和構造。
啟動腳本安裝在/usr/local/etc/rc.d。
用pkg_info -L察看哪個文件被安裝的能力,並且如果你在那台機器上不再想要MySQL,用pkg_delete完全刪除它們。
建議在FreeBSD 2.x版上使用 MIT-pthreads,在版本3和以上版本用原生線程。在一些2.2.x的以後版本使用原生線程咝惺强赡艿模??悄憧赡芘龅絤ysqld關掉的問題。

使用道具 举报

回复
论坛徽章:
4
每日论坛发贴之星
日期:2005-04-26 01:01:12会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2008-01-09 22:26:12
135#
 楼主| 发表于 2006-4-29 10:23 | 只看该作者
確定讓你的名字解析程序安裝正確,否則當連接mysqld時,你可能會經歷解析延時或失敗。

保証在“/etc/hosts”文件中的localhost入口是正確的(否則你與數據庫連接時將有問題)。“/etc/hosts”文件應該以一行開始:

127.0.0.1  localhost  localhost.your.domain
如果你注意到configure使用 MIT-pthreads,你應該閱讀MIT-pthreads注意事項,見4.9 MIT-pthreads 注意事項。

如果你從make install得到一個它不能找到“/usr/include/pthreads”的錯誤,configure沒有檢測出你需要 MIT-pthreads。通過執行這些命令修正它:

shell> rm config.cache
shell> ./configure --with-mit-threads

FreeBSD make的行為與make GNU略有不同。如果你有make相關問題,你應該安裝GNU make。

FreeBSD也已知有一個非常低的缺省文件句柄限制。見18.11 文件沒找到。去掉在safe_mysqld中的ulimit -n 小節的注釋或在/etc/login.conf為mysqld用戶提高限制(並用cap_mkdb /etc/login.conf重建它),如果你不使用缺省,也要保証你為此用戶在口令文件(用法:chpass mysqld-user-name )。

使用道具 举报

回复
论坛徽章:
4
每日论坛发贴之星
日期:2005-04-26 01:01:12会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2008-01-09 22:26:12
136#
 楼主| 发表于 2006-4-29 10:23 | 只看该作者
為了得到一個安全並且穩定的系統,你應該只僅使用被標記為-STABLE的FreeBSD內核。

4.11.10 NetBSD 注意事項
為了NetBSD上編譯,你需要GNU make,否則當make試圖在C++文件上咝衛int時,編譯將崩潰。

4.11.11 OpenBSD 2.5 注意事項
在OpenBSD 2.5上,你可以用下列選項編譯帶原生線程的MySQL:

CFLAGS=-pthread  CXXFLAGS=-pthread  ./configure -- with-mit-threads=no
4.11.12 BSD/OS 注意事項
4.11.12.1 BSD/OS 2.x 注意事項
如果在編譯MySQL時,你得到下列錯誤, 你對虛存的ulimit值是太低了:

item_func.h: In method `Item_func_ge::Item_func_ge(const Item_func_ge &':
item_func.h:28: virtual memory exhausted
make[2]: *** [item_func.o] Error 1

使用道具 举报

回复
论坛徽章:
4
每日论坛发贴之星
日期:2005-04-26 01:01:12会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2008-01-09 22:26:12
137#
 楼主| 发表于 2006-4-29 10:23 | 只看该作者
試試使用ulimit -v 80000並再咝衜ake。如果這還不行並且你正在使用bash,試試換到csh或sh;一些BSDI用戶報告了與bash和ulimit有關問題。

如果你正在使用gcc,你也可能必須為configure使用--with-low-memory標志才能編譯“sql_yacc.cc”。

你用SELECT NOW()返回GMT形式的值而不是你的本地時間,如果有這樣的問題,你必須設定TZ環境變量為你的當前時區的。這應該為服務器咝械沫h境設置,例如在safe_mysqld或mysql.server里。

4.11.12.2 BSD/OS 3.x 注意事項
升級到BSD/OS 3.1。如果那不可能,安裝BSDI patch M300-038。

在配置MySQL時,使用下列命令:

shell> env CXX=shlicc++ CC=shlicc2 \
       ./configure \
           --prefix=/usr/local/mysql \
           --localstatedir=/var/mysql \
           --without-perl \
           --with-unix-socket-path=/var/mysql/mysql.sock

下列也已知可用:

使用道具 举报

回复
论坛徽章:
4
每日论坛发贴之星
日期:2005-04-26 01:01:12会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2008-01-09 22:26:12
138#
 楼主| 发表于 2006-4-29 10:23 | 只看该作者
./configure \
           --prefix=/usr/local/mysql \
           --with-unix-socket-path=/var/mysql/mysql.sock

如果你願意,你可以改變目錄地點,或不指定任何地點而使用缺省。

如果你在重負再下的性能有問題,試試使用對safe_mysqld使用--skip-thread-priority選項!這將以相同優先級咝兴?芯

使用道具 举报

回复
论坛徽章:
4
每日论坛发贴之星
日期:2005-04-26 01:01:12会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2008-01-09 22:26:12
139#
 楼主| 发表于 2006-4-29 10:24 | 只看该作者
4.11.13 SCO 注意事項
當前的移植僅在“sco3.2v5.0.4”和“sco3.2v5.0.5”系統上被測試,在“sco 3.2v4.2”一個移植也有很大進展。

此時在OpenServer上推薦的編譯器是gcc 2.95.2,用它你應該能編譯MySQL:

CC=gcc CXX=gcc ./configure ... (options)

對于OpenServer 5.0.X,你需要在Skunkware 95上使用GDS(95q4c),這是必要的,因為在Skunkware 97上的GNU gcc 2.7.2 沒有GNU as。你也可以使用egcs1.1.2或更新:http://www.egcs.com/。如果你正在 ... 惚仨殘绦邢铝忻睿
shell> cp -p /usr/include/pthread/stdtypes.h \
/usr/local/lib/gcc-lib/i386-pc-sco3.2v5.0.5/egcs-2.91.66/include/pthread/

對該產品和開發系統,你需要GCC 2.5.?的移植。他們在這個SCO UNIX版本上是必需的,你不能只使用GCC Dev系統。
你應該得到 FSU Pthreads 包並且首先安裝它,它可在http://www.cs.wustl.edu/~ schmidt/ACE_wrappers/FSU-threads.tar.gz找到。你也可以從ftp://www.mysql.com/pub/mysql/Do ... 玫揭粋預編譯的包。
FSU Pthreads能用帶tcpip的SCO UNIX 4.2編譯,或OpenServer 3.0或Open Desktop 3.0(OS 3.0 ODT 3.0),安裝帶有使用一個GCC 2.5.X ODT的SCO開發系統,或對OS 3.0你將需要一個GCC 2.5.?的良好移植。 沒有一個良好的移植會有很多問題。對這個產品的移植需要SCO UNIX開發系統,沒有它,你正缺少所需的庫和鏈接器。
為了在你的系統上構造FSU Pthreads,做下列工作:
在“thread/src”目錄下咝

使用道具 举报

回复
论坛徽章:
4
每日论坛发贴之星
日期:2005-04-26 01:01:12会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2008-01-09 22:26:12
140#
 楼主| 发表于 2006-4-29 10:24 | 只看该作者
SCO開發注意事項:

MySQL應該自動地檢測FSU Pthreads並且用-lgthreads -lsocket -lgthreads選項鏈接mysqld。
SCO開發庫在FSU Pthreads是重入(reentrant)的。SCO宣稱它的庫函數是重入的,因此他們一定在FSU Pthreads中是重入的。在 OpenServer上的 FSU Pthreads 試圖使用SCO方案制作重入的庫。
FSU Pthreads(至少在www.mysql.com的版本)鏈接了GNU malloc,如果你甭到內存使用的問題,確定“gmalloc.o”被包含在“libgthreads.a”和“libgthreads.so”中。
在FSU Pthreads中,下列系統調用是pthreads感知的:read()、write()、getmsg()、connect()、accept()、select()和wait()。
如果你想要在SCO上安裝DBI,你必須編輯在DBI-xxx和每個子目錄下的“Makefiles”:

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表