top
Loading...
2.12.1.5.Linuxx86注意事項
2.12.1.5. Linux x86注意事項

MySQL需要5.4.12或更新版本的libc。已知它可以在libc 5.4.46中工作。glibc 2.0.6和更新版本應當也可以工作。Red Hatglibc RPM有一些問題,因此如果你遇到問題,應看看是否有更新版。已知glibc 2.0.7-192.0.7-29 RPM可以工作。

如果你正使用Red Hat 8.0或更新的glibc 2.2.x庫,你會看見mysqld執行gethostbyaddr()時會死掉。這是因為新的glibc庫在執行該調用時需要大于128KB的堆棧空間。要想修復該問題,用--thread-stack=192K選項啟動mysqld(MySQL 4以前的版本中應使用-O thread_stack=192KMySQL 4.0.10和以上版本中,該堆棧空間值即為默認值,因此你不會看見該問題。

如果你正使用gcc 3.0和以上版本編譯MySQL,在編譯MySQL前你必須先安裝libstdc++v3庫;如果不這樣做,在聯接過程中會遇到關于丟失__cxa_pure_virtual符號的錯誤。

在一些舊的Linux分發版中,configure會生成如下錯誤:

Syntax error in sched.h. Change _P to __P in the
/usr/include/sched.h file.
See the Installation chapter in the Reference Manual.

只需要按照錯誤消息的提示操作。對只有一條下劃線的_P名再增加一條下劃線,然后重新嘗試。

編譯時可能會出現警告。下面的警告可以忽略:

mysqld.cc -o objs-thread/mysqld.o
mysqld.cc: In function `void init_signals()':
mysqld.cc:315: warning: assignment of negative value `-1' to
`long unsigned int'
mysqld.cc: In function `void * signal_hand(void *)':
mysqld.cc:346: warning: assignment of negative value `-1' to
`long unsigned int'

如果mysqld啟動時總是出現轉儲內核, 問題可能是你使用了舊的/lib/libc.a。嘗試重新對其命名,然后刪掉sql/mysqld并重新執行make install然后再次嘗試。已經報導在部分Slackware安裝中出現了該問題。

當鏈接mysqld時如果出現下面的錯誤,說明libg++.a安裝不正確:

/usr/lib/libc.a(putc.o): In function `_IO_putc':
putc.o(.text+0x0): multiple definitiof `_IO_putc'

你可以使用libg++.a運行configure來避免該問題:

shell> CXX=gcc ./configure
作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/installing.html
北斗有巢氏 有巢氏北斗