MySQLÖÐÎIJο¼ÊÖ²á5(°²×°MySQLÉÏ)www.iTbulo.comMVQGl×ªÔØ ÒëÕߣºêÌ×Ó
¡¼·µ»Ø¡½¡¼×ª·¢¡½
ÒëÕߣºêÌ×Ó (clyan@sohu.com)Ö÷Ò³£ºhttp://linuxdb.yeah.net
4 °²×°MySQL
±¾ÕÂÃèÊöÔõÑù»ñµÃ²¢°²×°MySQL£º
¶ÔÓÚÄãÄÜ´ÓÆä»ñµÃMySQLµÄÕ¾µãÁÐ±í£¬¼û4.1 ÔõÑù»ñµÃMySQL¡£
ÒªÁ˽âÖ§³ÖÄÄЩƽ̨£¬¼û4.2 MySQLÖ§³ÖµÄ²Ù×÷ϵͳ¡£
¿É»ñµÃMySQLµÄ¶à¸ö°æ±¾£¬ÒÔ¶þ½øÖÆ´úÂëºÍÔ´´úÂëÐÎʽ·Ö·¢¡£ÎªÁËÈ·¶¨ÄãÓ¦¸ÃʹÓõķַ¢µÄ°æ±¾ºÍÀàÐÍ£¬¼û4.4 ÔõÑùºÍºÎʱ·¢²¼¸üа汾¡£
Õë¶Ô¶þ½øÖÆ´úÂëºÍÔ´´úÂë·Ö·¢µÄ°²×°Ö¸ÁîÔÚ4.6 °²×° MySQL ¶þ½øÖÆ´úÂë·Ö·¢ºÍ4.7 °²×° MySQL Ô´´úÂë·Ö·¢½²Êö¡£Ã¿Ì×Ö¸Áî¾ù°üº¬Ò»¸ö¹ØÓÚÄã¿ÉÄÜÉæ¼°µÄÏµÍ³ÌØ¶¨ÎÊÌâµÄ²¿·Ö¡£
Ϊ°²×°ºóÆÚ¹ý³Ì£¬¼û4.15 °²×°ºóÆÚµÄÉèÖÃÓë²âÊÔ¡£²»¹ÜÄãÊÇÓÃÒ»¸ö¶þ½øÖÆ´úÂ뻹ÊÇÔ´´úÂë·Ö·¢À´°²×°MySQL£¬ÕâЩ¹ý³Ì¾ùÊÊÓá£
4.1 ÔõÑù»ñµÃMySQL
¼ì²éMySQLÖ÷Ò³»ñµÃµ±Ç°°æ±¾µÄÐÅÏ¢ºÍÏÂÔØÖ¸Áî¡£
È»¶ø£¬TcXµÄÒòÌØÍøÁ´½Ó²»ÊǺܿìµÄ£»ÎÒÃǸüÏ£ÍûÈÃÄã´ÓÏÂÁоµÏóÕ¾µãÖ®Ò»½øÐÐÕæÕýµÄÏÂÔØ¡£
ÇëÏòwebmaster@mysql.com±¨¸æ²»´æÔڵĻò¹ýʱµÄ¾µÏñÕ¾µã¡£
Å·ÖÞ£º
°ÂµØÀû [ άҲÄɼ¼Êõ´óѧ ]WWW ftp
±£¼ÓÀûÑÇ [ Naturella ]ftp
¿ËÂÞµØÑÇ [ HULK ]WWW ftp
½Ý¿Ë¹²ºÍ¹ú [ ÔÚBrnoµÄMasaryk´óѧ ]WWW ftp
½Ý¿Ë¹²ºÍ¹ú [ www.sopik.cz]WWW
µ¤Âó [ Borsen ]WWW
µ¤Âó [ SunSITE ]WWW ftp
°®É³ÄáÑÇ [ OKinteractive ]WWW
·¨¹ú [ minet ]WWW
·ÒÀ¼ [ EUnet ]WWW
·ÒÀ¼ [ clinet ]ftp
µÂ¹ú [ ²¨¶÷´óѧ, ²¨¶÷ ]WWW ftp
µÂ¹ú [ Wolfenbuettel ]WWW ftp
µÂ¹ú [ Staufen ]WWW
µÂ¹ú [ Cable & Wireless ]ftp
Ï£À° [ NTUA , Ñŵä]WWW ftp
Island [ GM ]WWW WWW
Òâ´óÀû [ Teta Srl ]WWW
°®¶ûÀ¼ [ Ireland On-Line/Dublin ]WWW ftp
²¨À¼ [ Sunsite ]WWW ftp
ÆÏÌÑÑÀ [ lerianet ]WWW ftp
¶í¹ú [ DirectNet ]WWW
¶í¹ú [ IZHCOM ]WWW ftp
¶í¹ú [ Scientific Center/Chernogolovka ]ftp
ÂÞÂíÄáÑÇ [ Timisoara ]WWW ftp
ÂÞÂíÄáÑÇ [ Bucharest ]WWW ftp
Î÷°àÑÀ [ MasterD ]WWW
Èðµä [ Sunet ]WWW ftp
ÈðÊ¿ [ Sunsite ]WWW ftp
Ó¢¹ú [ Omnipotent/UK ]WWW ftp
Ó¢¹ú [ PLiG/UK ]WWW ftp
Ó¢¹ú [ SunSITE ]WWW ftp
ÎÚ¿ËÀ¼ [ PACO ]WWW ftp
±±ÃÀÖÞ£º
¼ÓÄôó [ Tryc ]WWW/li>
¼ÓÄôó [ Cyberus ]WWW ftp
ÃÀ¹ú [ Hurricane Electric/San Jose ]WWW
ÃÀ¹ú [ Circle Net/North Carolina ]WWW
ÃÀ¹ú [ Gina net/Florida ]WWW
ÃÀ¹ú [ pingzero/Los Angeles ]WWW
ÃÀ¹ú [ Íþ˹¿µÐÇ´óѧ / Íþ˹¿µÐÇ]WWW ftp
ÃÀ¹ú [ DIGEX ]ftp
ÄÏÃÀÖÞ£º
°ÍÎ÷ [ Matrix ]WWW
ÖÇÀû [ Vision ]WWW
ÑÇÖÞ£º
Öйú [ Freecode ]WWW
Öйú [ Netfirm ]WWW
³¯ÏÊ [ KREONet ]WWW
ÈÕ±¾ [ Soft Agency ]WWW
ÈÕ±¾ [ Nagoya Syouka University ]WWW ftp
ÐÂ¼ÓÆÂ [ HJC ]WWW ftp
Öйų́Íå [ HT ]WWW
°ÄÖÞ£º
°ÄÖÞ [ AARNet/Queensland ]WWW ftp
°ÄÖÞ [ Tas ]WWW ftp
°ÄÖÞ [ Blue Planet/Melbourne ]WWW
°ÄÖÞ [ ITworks Consulting/Victoria ]WWW
·ÇÖÞ£º
ÄÏ·Ç [ Mweb/ ]WWW
ÄÏ·Ç [ The Internet Solution/Johannesburg ]ftp
4.2 MySQL Ö§³ÖµÄ²Ù×÷ϵͳ
ÎÒÃÇʹÓà GNU Autoconf£¬Òò´Ë½«MySQLÒÆÖ²µ½ËùÓÐʹÓà Posix Ï̺߳ÍÒ»¸ö C++ ±àÒëÆ÷µÄÏÖ´úϵͳÊÇ¿ÉÄܵġ£(½ö½öΪÁ˱àÒë¿Í»§´úÂ룬ֻÐèÒªÒ»¸ö C++ ±àÒëÆ÷¶ø²»ÊÇÏß³Ì)¡£ÎÒÃÇÖ÷ÒªÔÚSun Solaris(°æ±¾ 2.5 & 2.6)ÉÏʹÓò¢¿ª·¢Èí¼þ±¾Éí£¬¶øRedHat Linux 5.0 ¾ÓÆä´Î¡£
MySQLÒѾ±»±¨¸æÔÚÏÂÁвÙ×÷ϵͳ/Ḭ̈߳üµÄ×éºÏÉϳɹ¦µØ±àÒë¡£×¢Ò⣬¶ÔºÜ¶à²Ù×÷ϵͳ£¬ÔÉúµÄÏß³ÌÖ§³Ö½ö¹¤×÷ÓÚ×îеİ汾¡£
ÓÐÔÉúÏ̵߳ÄAIX 4.x
°üÀ¨ MIT-pthreads °üµÄBSDI 2.x
ÓÐÔÉúÏ̵߳ÄBSDI 3.0¡¢3.1ºÍ4.x
ÓÐÔÉúÏ̵߳ÄDEC UNIX 4.x
°üÀ¨MIT-pthreads°üµÄFreeBSD 2.x
ÓÐÔÉú³ÌµÄFreeBSD 3.x
°üÀ¨ MIT-pthreads °üµÄ HP-UX 10.20
ÓÐÔÉúÏß³ÌµÄ HP-UX 11.x ¡£
ÓÐ LinuxThreads 0.7.1 µÄ Linux 2.0 + »òglibc2.0.7
MacOS X ·þÎñÆ÷
NetBSD 1.3/1.4 Intel ºÍ NetBSD 1.3 Alpha ( ÐèÒª GNU make£©
°üÀ¨ MIT-pthreads °üµÄ OpenBSD 2.x
OS/2 Wrap 3¡¢FixPack 29ºÍOS/2 Wrap 4¡¢FixPack 4
ÓÐÔÉúÏ̵߳ÄSGI Irix 6.x
SPARCºÍx86ÉÏÓÐÔÉúÏ̵߳ÄSolaris 2.5¡¢2.6ºÍ2.7
°üÀ¨ MIT-pthreads °üµÄSunOS 4.x
ÓÐ×îÐÂFSU PthreadsÒÆÖ²°üµÄSCO OpenServer
SCO UnixWare 7.0.1
Tru64 Unix
Win95¡¢Win98ºÍNT(Ö»ÓÐÓµÓÐMySQLÐí¿ÉÖ¤»òMySQLµç×ÓÓʼþÖ§³ÖµÄÓû§¿ÉµÃµ½×îа汾)¡£¶ÔÄÇЩÔÚ¹ºÂò֮ǰÏë²âÊÔµÄÈË£¬ÎÒÃÇÒÔ¹²ÏíÈí¼þ·½Ê½·¢²¼ÁËMySQL 3.21.29£¨Ò»¸ö½ÏÀϵİ汾£©¡£
4.3 ʹÓÃMySQLÄĸö°æ±¾
Ê×ÏÈÒª×÷³ö¾ö²ß£¬ÄãÊÇ·ñÏëҪʹÓÃ×îеĿª·¢°æ±¾»ò×îÖÕµÄÎȶ¨°æ±¾£º
ͨ³£, Èç¹ûÄãÊǵÚÒ»´Î¿ªÊ¼Ê¹ÓÃMySQL»ò³¢ÊÔÒÆÖ²Ëüµ½Ò»Ð©»¹Ã»Óжþ½øÖÆ·Ö·¢ÏµÍ³ÉÏ£¬ÎÒÃÇÍÆ¼öʹÓÿª·¢°æ±¾(µ±Ç° 3.22.x)¡£ÕâÊÇÒòΪͨ³£ÔÚ¿ª·¢°æ±¾ÖÐûÓÃÕæÕýÑÏÖØµÄ´íÎ󣬲¢ÇÒÄãÄÜÈÝÒ×ÓÃÄãµÄ»úÆ÷ÉϵÄcrash-meºÍ»ù×¼²âÊÔÌ×¼þÀ´²âÊÔËü¡£¼û10.8 ʹÓÃÄã×Ô¼ºµÄ»ù×¼²âÊÔ¡£
·ñÔò£¬Èç¹ûÄãÕýÔÚÔËÐÐÒ»¸öÀϵÄϵͳ²¢ÇÒÏëÒªÉý¼¶£¬µ«ÊÇÓÖ²»ÏëÒªÓÃ3.22ðÏÕ£¬ÄãÓ¦¸ÃÉý¼¶µ½3.21.33¡£ÎÒÃÇÒѾÊÔ׎öÐÞ¸´ÖÂÃü´íÎ󣬲¢ÇÒ¶ÔÄǸö°æ±¾½øÐиüСµÄÏà¶Ô°²È«µÄ¸Ä¶¯¡£
Òª×öµÄµÚ¶þÏî¾ö²ßÊÇÄãÊÇ·ñÏëҪʹÓÃÔ´´úÂë·Ö·¢»ò¶þ½øÖÆ·Ö·¢£º
Èç¹ûÄãÏëÔÚÒ»¸öÒѾ´æÔÚÒ»¸ö×îжþ½øÖÆ·Ö·¢µÄƽ̨ÉÏÔËÐÐMySQL£¬¾ÍÓÃËü¡£Í¨³££¬Õâ±ÈÒ»¸öÔ´´úÂë·Ö·¢¸üÈÝÒ×°²×°¡£
Èç¹ûÄãÏëÒªÔĶÁ(»òÐÞ¸Ä)¹¹³ÉMySQLµÄCºÍC++´úÂ룬ÄãÓ¦¸ÃÄõ½Ô´´úÂë·Ö·¢¡£Ô´´úÂë×ÜÊÇ×îÖÕµÄÊֲᡣԴ´úÂë·Ö·¢Ò²±È¶þ½øÖƵķַ¢°üº¬¸ü¶àµÄ²âÊÔºÍʵÀý¡£
MySQLµÄÃüÃû»úÖÆÊ¹ÓÃÓÉ3¸öÊý×ÖºÍÒ»¸öºó׺×é³ÉµÄ°æ±¾ºÅ¡£ÀýÈ磬һ¸öÏñmysql-3.21.17-betaµÄ°æ±¾ºÅÕâÑù½âÊÍ£º
µÚ1Êý×Ö(3)ÃèÊöÎļþ¸ñʽ¡£ËùÓа汾3µÄ·¢Ðж¼ÓÐÏàͬµÄÎļþ¸ñʽ¡£µ±Ò»¸ö°æ±¾4³öÏÖʱ£¬Ã¿¸öÊý¾Ý¿â±í¶¼½«±ØÐëת»»µ½Ð¸ñʽ(µ±È»£¬Îª´ËÓÐÒ»¸öºÜ²»´íµÄ¹¤¾ß)¡£
µÚ2Êý×Ö(21)ÊÇ·¢Ðм¶±ð¡£Í¨³£ÓÐ2ÖÖÑ¡Ôñ¡£Ò»¸öÊÇ·¢²¿/Îȶ¨·ÖÖ§(µ±Ç°Îª21)¶øÆäËüÊÇ¿ª·¢·ÖÖ§(µ±Ç°22)¡£Í¨³£Á½Õß¶¼ÊÇÎȶ¨µÄ£¬µ«ÊÇ¿ª·¢°æ±¾¿ÉÄÜÓÐ벡£¬Ð¹¦ÄÜȱ·¦Îĵµ»ò¿ÉÄÜÔÚijЩϵͳÉϱàÒëʧ°Ü¡£
µÚ3¸öÊý×Ö(17)ÊÇÔÚ´Ë·¢Ðм¶±ðµÄ°æ±¾ºÅ£¬ÕâËæÃ¿¸öзַ¢µÝÔö¡£Í¨³£ÄãÐèÒªÄãÒѾѡÔñµÄ·¢ÐÐ(release)µÄ×îа汾(version)¡£
ºó׺(beta)ÏÔʾ·¢ÐеÄÎȶ¨ÐÔ¼¶±ð¡£¿ÉÄܵĺó׺ÓУº
alpha ±íÃ÷·¢Ðаüº¬´óÁ¿Î´±»100%²âÊÔµÄдúÂë¡£ÒÑÖªµÄ´íÎó(ͨ³£Ã»ÓÐ)Ó¦¸ÃÔÚÐÂÎÅС½Ú±»¼Ç¼¡£¼ûD MySQL ±äǨµÄÀúÊ·¼Ç¼¡£ÔÚ´ó¶àÊý alpha °æ±¾Ò²ÓÐеÄÃüÁîºÍÀ©Õ¹¡£
beta Òâζ×ÅËùÓеÄдúÂë±»²âÊÔÁË£¬Ã»ÓÐÔö¼ÓÖØÒªµÄÐÂÌØÕ÷£¬Ó¦¸ÃûÓÐÒÑÖªµÄ´íÎó¡£
gamma ÊÇÒ»¸ö·¢ÐÐÁËÒ»¶Îʱ¼äµÄbeta°æ±¾£¬¿´ÆðÀ´Ó¦¸ÃÔËÐÐÕý³£¡£Õâ¾ÍÊǺܶàÆäËû¹«Ë¾³ÆÎªÒ»¸ö·¢²¼µÄ¶«Î÷¡£
Èç¹ûûÓкó׺£¬ÕâÒâζןð汾ÒѾÔÚºÜ¶àµØ·½ÔËÐÐÒ»¶Îʱ¼äÁË£¬¶øÇÒûÓÐ·ÇÆ½Ì¨Ìض¨µÄ´íÎ󱨸档Õâ¾ÍÊÇÎÒÃdzÆÎªÒ»¸öÎȶ¨°æ±¾µÄ¶«Î÷¡£
MySQLËùÓа汾¶¼¾¹ýÎÒÃǵıê×¼²âÊԺͻù×¼²âÊÔÔËÐУ¬ÒÔ±£Ö¤ËûÃÇ¿ÉÏ൱°²È«µØÊ¹Óá£ÒòΪ±ê×¼²âÊÔ²»¶ÏÀ©³äÒÔ¼ì²âÒÔǰ·¢ÏֵĴíÎ󣬲âÊÔÌ×¼þÒ»Ö±ÔڸĽøÖ®ÖС£
×¢Ò⣬ËùÓа汾¶¼ÖÁÉÙÒѾÓÃÏÂÁÐÌ×¼þ½øÐÐÁ˲âÊÔ£º
Ò»¸öÄÚ²¿²âÊÔÌ×¼þ
ÕâÊÇÒ»¸ö¿Í»§Éú²úϵͳµÄÒ»²¿·Ö¡£Ëü¿ÉÄÜÓкܶ༸°Ù¸öÕ××Ö½ÚÊý¾ÝµÄÊý¾Ý¿â±í¡£
MySQL»ù×¼²âÊÔÌ×¼þ
ËüÔËÐÐÒ»¶¨·¶Î§µÄ³£Óòéѯ¡£ËüÒ²ÊÇÒ»¸ö²âÊÔ£¬¼ì²â×îеÄÓÅ»¯´¦ÀíÊÇ·ñÕæµÄʹ´úÂë¸ü¿ì¡£¼û10.8 ʹÓÃÄã×Ô¼ºµÄ»ù×¼²âÊÔ¡£
crash-me²âÊÔ
Õâ³¢ÊÔ¾ö¶¨Êý¾Ý¿âÖ§³Öʲô¹¦ÄܺÍËüµÄÄÜÁ¦ÓëÏÞÖÆÊÇʲô¡£¼û10.8 ʹÓÃÄãµÄ×Ô¼º»ù×¼²âÊÔ¡£
ÆäËû²âÊÔÊÇÔÚÄÚ²¿µÄÉú²ú»·¾³ÖÐʹÓÃ×îÐÂMySQL°æ±¾£¬ÖÁÉÙÔÚһ̨»úÆ÷ÉÏ¡£ÎÒÃÇÓг¬¹ý100GBµÄÊý¾Ý¿ÉÓÃʹÓá£
4.4 ÔõÑùºÍºÎʱ·¢²¼¸üа汾
ÔÚTcX£¬MySQL½øÕ¹µÄÏ൱¿ì£¬²¢ÇÒÎÒÃÇÏëÒªÓëÆäËüMySQLÓû§·ÖÏíËü¡£µ±ÎÒÃÇÓÐÒ»¸ö¿´À´ÆäËüÈËËÆºõÐèÒªµÄ·Ç³£ÓÐÓõŦÄÜʱ£¬ÎÒÃǾÍÊÔ×ÅÖÆ×÷Ò»¸ö·¢Ðа汾¡£
ÎÒÃÇÒ²³¢ÊÔ°ïÖúÄÇЩÐèÒªºÜÈÝÒ×ʵÏֵŦÄܵÄÓû§£¬ÎÒÃÇÒ²¹Ø×¢ÎÒÃÇÊÚȨµÄÓû§ÏëҪʲô£¬ÎÒÃǸüÌØ±ð¹Ø×¢ÎÒÃǵÄÀ©Õ¹µç×ÓÓʼþÖ§³ÖµÄ¿Í»§ÏëҪʲô£¬²¢ÇÒ¾¡Á¦°ïÖúËûÃÇ¡£
ûÓÐÈËÒ»¶¨ÒªÏÂÔØÒ»¸öа汾£¬ÐÂÎÅС½ÚÖн«¸æËßÄãа汾ÊÇ·ñÓÐһЩÄãȷʵÏëÒªµÄ¶«Î÷¡£¼ûD MySQL ±äǨµÄÀúÊ·¼Ç¼¡£
µ±¸üÐÂMySQLʱ£¬ÎÒÃÇʹÓÃÏÂÁз½Õ룺
¶Ôÿ¸öСµÄ¸Ä½ø£¬ÔÚ°æ±¾×Ö·û´®µÄ×îºóÊý×ÖÔö¼Ó1¡£µ±ÓÐÖ÷ÒªµÄй¦ÄÜ»òÓëÏÈǰ°æ±¾±ÈÓнÏС²»¼æÈÝÐÔʱ£¬ÔÚ°æ±¾×Ö·û´®µÄµÚ2Êý×ÖÔö¼Ó1¡£µ±Îļþ¸ñʽ±ä»¯Ê±£¬µÚ1Êý×Ö¼Ó1¡£
Îȶ¨µÄ²âÊÔ¹ýµÄ°æ±¾Ã¿Äê×¼±¸³öÏÖ1-2´Î£¬µ«ÊÇÈç¹û·¢ÏÖС´íÎó£¬Ö»ÓдíÎóÐÞ¸´µÄÒ»¸ö°æ±¾½«±»·¢ÐС£
¹¤×÷°æ±¾×¼±¸Ã¿1-8ÖܳöÏÖÒ»´Î¡£
¶ÔһЩƽ̨µÄ¶þ½øÖÆ·Ö·¢£¬Ö÷Òª°æ±¾ÓÉÎÒÃÇÖÆ×÷¡£ÆäËûÈË¿ÉÒÔΪÆäËûÏµÍ³ÖÆ×÷¶þ½øÖÆ·Ö·¢£¬µ«ÊÇ¿ÉÄܲ»¶à¼û¡£
Ò»µ©ÎÒÃÇÕÒµ½²¢ÐÞ¸´ÁËС´íÎó£¬ÎÒÃÇͨ³£Ê¹Óû§¿ÉÒԵõ½²¹¶¡¡£
¶Ô·Ç½ô¼±µ«·³È˵ĴíÎó£¬Èç¹ûËûÃDZ»·¢¸øÎÒÃÇ£¬ÎÒÃǽ«Ê¹Óû§¿ÉÒԵõ½²¹¶¡£¬·ñÔòÎÒÃǽ«¼¯ÖÐÐí¶à´íÎóµ½Ò»¸ö¸ü´óµÄ²¹¶¡ÖС£
ÔÚÈκÎÇé¿öÏ£¬Èç¹ûÔÚÒ»¸ö·¢ÐÐÖÐÓÐÒ»¸öÖÂÃü´íÎó£¬ÎÒÃǽ«¾¡¿ìÖÆ×÷Ò»¸öа汾¡£ÎÒÃÇÏëÆäËû¹«Ë¾Ò²ÕâÑù×ö¡£:)
µ±Ç°µÄÎȶ¨°æ±¾ÊÇ3.22£»ÎÒÃÇÒÑ¾×ªÒÆµ½3.23µÄ»ý¼«¿ª·¢ÖС£ÔÚÎȶ¨°æ±¾ÖУ¬´íÎóÈÔ½«±»ÐÞ¸´¡£ÎÒÃDz»ÏàÐÅÒ»¸öÍêÈ«¶³½á£¬ÒòΪÕâÒ²ÁôϵĴíÎóÐÞ¸´ºÍ¡°±ØÐë×ö¡±µÄÊÂÇé¡£¡°Ä³Ö̶ֳȵͳ½á¡±Òâζ×ÅÎÒÃÇ¿ÉÒÔÔö¼ÓС¶«Î÷£¬Ëü¡°½«¼¸ºõ¿Ï¶¨²»Ó°ÏìÒѾÄܹ¤×÷µÄÈκζ«Î÷¡±¡£
4.5 °²×°²¼¾Ö
Õâ½ÚÃèÊö°²×°¶þ½øÖÆ´úÂëºÍÔ´´úÂë·Ö·¢Ê±´´½¨µÄȱʡĿ¼²¼¾Ö¡£
¶þ½øÖÆ·Ö·¢Í¨¹ýÔÚÄãÑ¡ÔñµÄ°²×°µØµã(µäÐ͵ġ°/usr/local/mysql¡±)½âѹËõÀ´°²×°£¬²¢ÇÒÔڸô¦´´½¨ÏÂÁÐĿ¼£º
Ŀ¼ Ŀ¼µÄÄÚÈÝ
¡°bin¡± ¿Í»§³ÌÐòºÍmysqld·þÎñÆ÷
¡°data¡± ÈÕÖ¾Îļþ, Êý¾Ý¿â
¡°include¡± °üº¬(Í·)Îļþ
¡°lib¡± ¿âÎļþ
¡°scripts¡± mysql_install_db
¡°share/mysql ¡± ´íÎóÏûÏ¢Îļþ
¡°sql-bench¡± »ù×¼³ÌÐò
Ô´´úÂë·Ö·¢ÔÚÄãÅäÖò¢±àÒëºó½øÐа²×°¡£È±Ê¡µØ£¬°²×°²½Ö轫Îļþ°²×°ÔÚ¡°/usr/local¡±ÏµÄÏÂÁÐ×ÓĿ¼£º
Ŀ¼ Ŀ¼µÄÄÚÈÝ
¡°bin¡± ¿Í»§³ÌÐòºÍ½Å±¾
¡°include/mysql¡± °üº¬(Í·)Îļþ
¡°info¡± Info¸ñʽµÄÎĵµ
¡°lib/mysql¡± ¿âÎļþ
¡°libexec¡± mysqld·þÎñÆ÷
¡°share/mysql¡± ´íÎóÏûÏ¢Îļþ
¡°sql-bench¡± »ù×¼³ÌÐòºÍcrash-me²âÊÔ
¡°var¡± Êý¾Ý¿âºÍÈÕÖ¾Îļþ¡£
ÔÚÒ»¸ö°²×°Ä¿Â¼ÄÚ£¬Ô´´úÂë°²×°µÄ²¼¾ÖÔÚÏÂÁз½Ã治ͬÓÚ¶þ½øÖư²×°£º
mysqld·þÎñÆ÷±»°²×°ÔÚ¡°libexec¡±Ä¿Â¼¶ø²»ÊÇ¡°bin¡±Ä¿Â¼ÄÚ¡£
Êý¾ÝĿ¼ÊÇ¡°var¡±¶ø·Ç¡°data¡±¡£
mysql_install_db±»°²×°ÔÚ¡°/usr/local/bin¡±Ä¿Â¼¶ø·Ç¡°/usr/local/mysql/scripts¡±ÄÚ¡£
Í·ÎļþºÍ¿âĿ¼ÊÇ¡°include/mysql¡±ºÍ¡°lib/mysql¡±¶ø·Ç¡°include¡±ºÍ¡°lib¡±¡£
4.6 °²×°MySQL¶þ½øÖÆ´úÂë·Ö·¢
ÄãÐèÒªÏÂÁй¤¾ß°²×°Ò»¸öMySQL¶þ½øÖÆ·Ö·¢£º
GNU gunzip½âѹËõ·Ö·¢¡£
Ò»¸öÊʵ±µÄtar½â°ü·Ö·¢¡£ GNU tarÒÑÖª¿ÉÒÔ¡£
ÔÚLinuxϵÄÁíÒ»¸ö°²×°·½·¨ÊÇʹÓÃRPM(RedHat°ü¹ÜÀíÆ÷)·Ö·¢¡£¼û4.6.1 Linux RPM ×¢ÒâÊÂÏî¡£
Èç¹ûÄãÅöµ½ÎÊÌ⣬ÔÚ°ÑÎÊÌâÓʼĵ½mysql@lists.mysql.comʱ£¬Çë×ÜÊÇʹÓÃmysqlbug£¬¾ÍËãÎÊÌâ²»ÊÇÒ»¸öbug£¬mysqlbugÊÕ¼¯ÏµÍ³ÐÅÏ¢£¬½«ÓÐÖúÓÚÆäËüÈ˽â¾öÄãµÄÎÊÌâ¡£²»Ê¹ÓÃmysqlbug£¬Ä㽫¼õÉٵõ½ÄãÎÊÌâµÄÒ»¸ö½â¾ö·½°¸µÄ¿ÉÄÜÐÔ£¡ÔÚÄã½â°ü·Ö·¢ºó£¬Äã»áÔÚ¡°bin¡±Ä¿Â¼ÏÂÕÒµ½mysqlbug¡£¼û2.3 ÔõÑù±¨¸æ´íÎó»òÎÊÌâ¡£
Äã±ØÐëÖ´ÐÐÒԱ㰲װ²¢Ê¹ÓÃÒ»¸öMySQL¶þ½øÖÆ·Ö·¢µÄ»ù±¾ÃüÁîÊÇ£º
shell> gunzip < mysql-VERSION-OS.tar.gz |tar xvf -
shell> ln - s mysql-VERSION-OS mysql
shell> cd mysql
shell> scripts/mysql_install_db
shell> bin/safe_mysqld &
Èç¹ûÄã°²×°ÁËDBIºÍMsql-Mysql-modulesPerlÄ£¿é£¬Äã¿ÉÒÔʹÓÃbin/mysql_setpermission½Å±¾Ôö¼ÓÐÂÓû§¡£
ÒÔÏÂÊǸüÏêϸµÄÃèÊö£º
¶ÔÓÚ°²×°¶þ½øÖÆ·Ö·¢£¬×ñÑÒÔϲ½Ö裬Ȼºó¼ÌÐøµ½4.15 °²×°ºóÆÚµÄÉèÖÃÓë²âÊÔ£¬½øÐа²×°ºóÆÚµÄÉèÖúͲâÊÔ£º
Ìôѡһ¸öÄãÏë½â¿ª·Ö·¢°üµÄĿ¼£¬½øÈë¸øÄ¿Â¼¡£ÔÚÏÂÃæµÄÀý×ÓÖУ¬ÎÒÃǽ«·Ö·¢½â°üÔÚ¡°/usr/local¡±Ï²¢ÇÒ´´½¨Ò»¸ö°²×°MySQLµÄ¡°/usr/local/mysql¡±Ä¿Â¼¡££¨Òò´Ë£¬ÏÂÁÐÖ¸Áî¼ÙÉèÄãÓÐȨÏÞÔÚ¡°/usr/local¡±Öд´½¨Îļþ£¬Èç¹û¸ÃĿ¼±»±£»¤£¬ÄãÐèÒªÒÔrootʵʩ°²×°¡£)
´Ó4.1 ÔõÑù»ñµÃMySQLÖÐÁгöµÄÕ¾µãÖ®Ò»»ñµÃÒ»¸ö·Ö·¢Îļþ¡£MySQL¶þ½øÖÆ·Ö·¢ÒÔѹËõµÄtarÎĵµÌṩ£¬²¢ÇÒÓÐÀàËÆ¡°mysql-VERSION-OS.tar.gz¡±µÄÃû×Ö£¬ÕâÀïVERSIONÊÇÒ»¸öÊý×Ö(ÀýÈ磬3.21.15)£¬ÇÒOS±íÃ÷·Ö·¢ÄÜÔËÐеIJÙ×÷ϵͳÀàÐÍ(ÀýÈ磬pc-linux-gnu-i586)¡£
½â¿ª·Ö·¢²¢ÇÒ´´½¨Á¢°²×°Ä¿Â¼£º
shell> gunzip < mysql-VERSION-OS.tar.gz |tar xvf -
shell> ln - s mysql-VERSION-OS mysql
µÚÒ»¸öÃüÁî´´½¨Ò»¸öÃûΪ¡°mysql-VERSION-OS¡±µÄĿ¼£¬µÚ¶þ¸öÃüÁîÉú³Éµ½¸ÃĿ¼µÄÒ»¸ö·ûºÅÁ´½Ó¡£ÕâÈÃÄã¸üÈÝÒ׵ذѰ²×°Ä¿Â¼Ö¸¶¨Îª¡°/usr/local/mysql¡±¡£
½øÈ밲װĿ¼£º
shell> cd mysql
Äã»áÔÚmysqlĿ¼Ï·¢ÏÖ¼¸¸öÎļþºÍ×ÓĿ¼£¬¶Ô°²×°Ä¿µÄ×îÖØÒªµÄÊÇ¡°bin¡±ºÍ¡°scripts¡±×ÓĿ¼¡£
¡°bin¡±
Õâ¸öĿ¼°üº¬¿Í»§³ÌÐòºÍ·þÎñÆ÷£¬ÄãÓ¦¸Ã°ÑÕâ¸öĿ¼µÄÍêÕû·¾¶¼Óµ½ÄãµÄPATH»·¾³±äÁ¿£¬ÒÔ±ãÄãµÄshellÄÜÕýÈ·µÄÕÒµ½MySQL³ÌÐò¡£
¡°scripts¡±
Õâ¸öĿ¼°üº¬mysql_install_db½Å±¾£¬ÓÃÀ´³õʼ»¯·þÎñÆ÷´æÈ¡È¨ÏÞ¡£
Èç¹ûÄãÏëʹÓÃmysqlaccess¶øÔÚij¸ö·Ç±ê×¼µÄµØµãÓÐMySQL·Ö·¢£¬Äã±ØÐë¸Ä±äµØµã£¬ÔÚÄĶùmysqlaccessÆÚÍûÕÒµ½mysql¿Í»§¡£±à¼¡°bin/mysqlaccess¡±½Å±¾£¬´óÔ¼ÔÚµÚ18ÐУ¬Ñ°ÕÒÀàËÆÏÂÃæµÄÐУº
$MYSQL = ¡°/usr/local/bin/mysql¡±;¡¡# path to mysql executable
¸Ä±ä·¾¶ÒÔ·´Ó³³ömysqlʵ¼Ê´æ´¢ÔÚÄãϵͳÉϵĵص㡣Èç¹ûÄã²»ÕâÑù×ö£¬µ±ÄãÔËÐÐmysqlaccessʱ£¬Ä㽫µÃµ½Ò»¸öbroken pipeµÄ´íÎó¡£
´´ÔìMySQLÊÚȨ±í(Ö»ÓÐÔÚÄãÒÔǰû°²×°¹ýMySQLÊDZØÒªµÄ)£º
shell> scripts/mysql_install_db
×¢Òâµ±ÄãÔËÐÐʱmysql_install_dbʱ£¬±È°æ±¾3.22.10ÀϵÄMySQL°æ±¾Æô¶¯MySQL·þÎñÆ÷¡£Õâ²»ÔÙÊÇÕæµÄÁË£¡
Èç¹ûÄãÏëÒª°²×°¶ÔPerl DBI/DBD½Ó¿ÚµÄÖ§³Ö£¬¼û4.10 Perl°²×°×¢ÒâÊÂÏî¡£
Èç¹ûÄãϲ»¶ÔÚÒýµ¼»úÆ÷ʱ×Ô¶¯Æô¶¯MySQL£¬Äã¿ÉÒÔ¿½±´support-files/mysql.serverÎļþµ½ÄãϵͳÓÐÆô¶¯ÎļþµÄµØ·½¡£¸ü¶àµÄÐÅÏ¢¿ÉÒÔÔÚsupport-files/mysql.server½Å±¾ÖкÍ4.15.3 ×Ô¶¯Æô¶¯ºÍÍ£Ö¹MySQLÕÒµ½¡£
ÔÚËùÓж«Î÷±»½â°ü²¢ÇÒ°²×°ÒÔºó£¬ÄãÓ¦¸Ã³õʼ»¯²¢ÇÒ²âÊÔÄãµÄ·Ö·¢¡£
Äã¿ÉÒÔÓÃÏÂÁÐÃüÁîÆô¶¯MySQL·þÎñÆ÷£º
shell> bin/safe_mysqld &
¼û4.15 °²×°ºóÆÚµÄÉèÖúͲâÊÔ¡£
4.6.1 Linux RPM ×¢ÒâÊÂÏî
ÔÚLinuxÉϰ²×°MySQLÍÆ¼öµÄ·½·¨ÊÇʹÓÃÒ»¸öRPMÎļþ¡£MySQL RPMĿǰÊÇÔÚÒ»¸ö RedHat 5.2 ϵͳÉϽ¨Á¢µÄ£¬µ«ÊÇÓ¦¸ÃÄܹ¤×÷ÔÚÖ§³ÖrpmÇÒʹÓÃglibcµÄÆäËû Linux °æ±¾ÉÏ¡£
Èç¹ûÒ»¸öRPMÎļþÓÐÎÊÌ⣬ÀýÈçSorry, the host 'xxxx' could not be looked up£¬¼û4.6.3.1 Linux ×¢ÒâÊÂÏî¡£
Äã¿ÉÄÜҪʹÓõÄRPMÎļþÓУº
MySQL-VERSION.i386.rpm MySQL·þÎñÆ÷¡£³ý·ÇÄãÖ»ÊÇÏëÒªÓëÔËÐÐÔÚÆäËû»úÆ÷ÉÏMySQL·þÎñÆ÷Á¬½Ó£¬·ñÔòÄ㽫ÐèÒªËü¡£
MySQL-client-VERSION.i386.rpm ±ê×¼MySQL¿Í»§³ÌÐò¡£Äã¿ÉÄÜ×ÜÊÇÐèÒª°²×°Õâ¸ö°ü¡£
MySQL-bench-VERSION.i386.rpm ²âÊԺͻù×¼³ÌÐò¡£ÐèÒªPerlºÍmsql-mysql-modules RPM¡£
MySQL-devel-VERSION.i386.rpm ËùÐèµÄ¿âºÍ°üº¬Îļþ¡£Èç¹ûÄãÏëÒª±àÒëÆäËûMySQL¿Í»§³ÌÐò, ÀýÈçPerlÄ£¿é¡£
MySQL-VERSION.src.rpm °üº¬ÉÏÊöËùÓаüµÄÔ´´úÂë¡£ËüÒ²Äܱ»ÓÃÀ´³¢ÊÔΪÆäËûÓ²¼þƽ̨¹¹ÔìRPM(ÀýÈ磬Alpha»òSPARC)¡£
²é¿´Ò»¸öRPM°üÖеÄËùÓÐÎļþ£º
shell> rpm - qpl MySQL-VERSION.i386.rpm
ʵʩһ¸ö±ê×¼µÄ×îС°²×°£¬ÔËÐÐÕâ¸öÃüÁ
shell> rpm -i MySQL-VERSION.i386.rpm MySQL-client-VERSION.i386.rpm
Ö»°²×°¿Í»§°ü£º
shell> rpm -i MySQL-client-VERSION.i386.rpm
RPM½«Êý¾Ý·ÅÔÚ¡°/var/lib/mysql¡±ÀRPMÒ²ÔÚ¡°/etc/rc.d/¡±Àï´´½¨Êʵ±µÄÈë¿ÚÒÔ±ãÔÚÒýµ¼Ê±×Ô¶¯Æô¶¯·þÎñÆ÷¡££¨ÕâÒâζ×ÅÈç¹ûÄãÒÔǰÒѾ°²×°¹ý£¬ÔÚ¶ÔËü¸Ä±ä֮ǰ£¬Äã¿ÉÒÔ°ÑÄãÒÔǰ°²×°µÄMySQLÆô¶¯Îļþ×ö¸ö¿½±´£¬Òò´ËÄã²»»á¶ªÊ§¸Ä¶¯£©¡£
ÔÚ°²×°ÁËRPMÎļþºó£¬¡°mysqld¡±ÊØ»¤³ÌÐòÓ¦¸ÃÕýÔÚÔËÐУ¬²¢ÇÒÏÖÔÚÄãÓ¦¸Ã¿ÉÒÔ¿ªÊ¼Ê¹ÓÃMySQL¡£¼û4.15 °²×°ºóÆÚµÄÉèÖúͲâÊÔ¡£
Èç¹ûһЩ¶«Î÷³ö´í£¬¿ÉÒÔÔÚ¶þ½øÖƵݲװһ½ÚÀïÕÒµ½¸ü¶àµÄÐÅÏ¢¡£¼û4.6 °²×°MySQL¶þ½øÖÆ´úÂë·Ö·¢¡£
4.6.2 ¹¹Ôì¿Í»§³ÌÐò
Èç¹ûÄã±àÒëÄã×Ô¼ºÐ´µÄ»òÄã´ÓµÚÈý·½»ñµÃµÄMySQL¿Í»§³ÌÐò£¬ËûÃDZØÐëÓÃlinkÃüÁîµÄ-lmysqlclientÑ¡Ïî½øÐÐÁ´½Ó¡£Äã¿ÉÄÜÒ²ÐèÒªÖ¸¶¨Ò»¸ö -L Ñ¡Ï¸æËßÁ´½ÓÆ÷ÔÚÄĶù²éÕÒ¿âÎļþ¡£ÀýÈ磬Èç¹û¿âÎļþ°²×°ÔÚ¡°/usr/local/mysql/lib¡±ÀÔÚÁ´½ÓÃüÁîÉÏʹÓà -L/usr/local/mysql/lib -lmysqlclient¡£
¶ÔʹÓÃMySQLÍ·ÎļþµÄ¿Í»§³ÌÐò£¬µ±Äã±àÒëËûÃÇʱ£¬Äã¿ÉÄÜÐèÒªÖ¸¶¨Ò»¸ö -I Ñ¡Ïî(ÀýÈ磬-I/usr/local/mysql/include)£¬ ʹµÃ±àÒëÆ÷ÄÜÕÒµ½Í·Îļþ¡£
4.6.3 ÏµÍ³ÌØ¶¨µÄÎÊÌâ
ÏÂÒ»½Ú˵Ã÷ÔÚ´ÓÒ»¸ö¶þ½øÖÆ·Ö·¢°²×°MySQLʱ£¬ÒѾÔÚÌØ¶¨µÄϵͳÉϹ۲쵽ÒÑ·¢Éú¹ýһЩÎÊÌâ¡£
4.6.3.1 Linux ×¢ÒâÊÂÏî
MySQLÐèÒªÖÁÉÙLinux 2.0¡£
¶þ½øÖÆ·¢ÐаæÓÃ-staticÁ´½ÓµÄ£¬ÕâÒâζ×ÅÄãÒ»°ã²»±Øµ£ÐÄÄãÓµÓеÄϵͳ¿âÊÇÄĸö°æ±¾¡£ÄãÒ²²»±Ø°²×°LinuxThreads¡£Ò»¸öÓÃ-staticÁ´½ÓµÄ³ÌÐò±ÈÒ»¸ö¶¯Ì¬Á´½Ó³ÌÐòÉÔ´óЩµ«¸ü¿ì(3-5%)¡£È»¶ø£¬Ò»¸öÎÊÌâÊÇÄã²»ÄÜʹÓþ²Ì¬Á´½ÓµÄÓû§¶¨Ò庯Êý(UDF)¡£Èç¹ûÄã×¼±¸±àд»òʹÓÃUDFº¯Êý(ÕâÖ»¶ÔC»òC++³ÌÐòÔ±)£¬Äã±ØÐë±àÒëMySQL±¾Éí£¬Ê¹Óö¯Ì¬Á´½Ó¡£
Èç¹ûÄãÕýÔÚʹÓÃÒ»¸ö»ùÓÚlibc-µÄϵͳ(¶ø²»ÊÇÒ»¸öglibc2ϵͳ)£¬Ä㽫¿ÉÄÜÅöµ½¶þ½øÖÆ·¢ÐеÄÖ÷»úÃû½âÎöºÍgetpwnam()µÄһЩÎÊÌ⣨ÕâÊÇÒòΪglibc²»ÐÒµØÒÀÀµÓÚһЩ°üÀ¨½âÎöÖ÷»úÃûºÍgetwpent()µÄÍⲿ¿â£¬ÉõÖÁÔÚÓÃ-static±àÒëʱ)¡£ÔÚÕâÖÖÇé¿öÏ£¬µ±ÄãÔËÐÐmysql_install_dbʱ£¬Äã¿ÉÄܵõ½ÏÂÁдíÎóÐÅÏ¢£º
sorry, the host 'xxxx' could not be looked up
»òµ±Äã³¢ÊÔÒÔ --user Ñ¡ÏîÔËÐÐ mysqld ʱµÄÏÂÁдíÎó£º
getpwnam : No such fileor directory
ÄãÄÜÓÃÏÂÁз½·¨Ö®Ò»½â¾öÕâ¸öÎÊÌ⣺
»ñµÃÒ»¸öMySQLÔ´´úÂë·Ö·¢(Ò»¸öRPM»òtar·Ö·¢)²¢ÇÒ°²×°Ëü¡£
Ö´ÐÐmysql_install_db --force£»Õ⽫²»Ö´ÐÐmysql_install_dbÀïÃæµÄresolveip²âÊÔ¡£È±µãÊÇÄã²»ÄÜÔÚÊÚȨ±íÖÐʹÓÃÖ÷»úÃû×Ö£»Ïà·´Äã±ØÐëʹÓÃIPÊý×Ö(³ýÁËlocalhost)¡£Èç¹ûÄãÕýÔÚʹÓÃÒ»¸öÀϵIJ»Ö§³Ö--forceµÄMySQL°æ±¾£¬Äã±ØÐëÓÃ±à¼Æ÷ɾ³ýmysql_installÖеÄresolveip²âÊÔ¡£
ÓÃsuÆô¶¯mysqld¶ø²»Ê¹ÓÃ--user¡£
MySQLµÄLinux-Intel¶þ½øÖÆ´úÂëºÍRPM·¢ÐаæÊÇΪ×î¸ß¿ÉÄܵÄËٶȶøÅäÖõġ£ÎÒÃÇ×ÜÊÇŬÁ¦Ê¹ÓÿÉÓõÄ×î¿ìµÄÎȶ¨µÄ±àÒëÆ÷¡£
MySQLµÄPerlÖ§³ÖÒªÇóPerl 5.004_03»ò¸üС£
4.6.3.2 HP-UX ×¢ÒâÊÂÏî
Õë¶ÔHP-UXµÄMySQL¶þ½øÖÆ·Ö·¢×÷Ϊһ¸öHP depot£¨²Ö¿â£©»òtar Îļþ¸ñʽ·Ö·¢µÄ¡£ÎªÁËʹÓÃdepotÎļþ£¬Äã±ØÐëÔËÐÐÖÁÉÙHP-UX 10.x ÒÔ±ã·ÃÎÊHPµÄÈí¼þ²Ö¿â¹¤¾ß¡£
MySQLµÄHP°æ±¾ÔÚÔËÐÐHP-UX 10.20ϵÄHP 9000/8xx ·þÎñÆ÷ÉϱàÒ룬²¢ÇÒʹÓÃMIT-pthreads¡£ËüÒÑÖª¿ÉÔÚÕâÖÖÅäÖÃϺܺõع¤×÷¡£MySQL 3.22.26ºÍ¸üаæÒ²ÓÃHPÔÉúḬ̈߳ü¹¹Ôì¡£
ÆäËû¿ÉÒÔÔËÐеÄÅäÖãº
ÔËÐÐ HP-UX 10.20 + µÄ HP 9000/7xx
ÔËÐÐ HP-UX 10.30 µÄ HP 9000/8xx
ÏÂÁÐÅäÖü¸ºõ¿Ï¶¨²»ÄÜÔËÐУº
ÔËÐÐ HP-UX 10.x µÄ HP 9000/7xx »ò 8xx £¬x < 2
ÔËÐÐ HP-UX 9.x µÄ HP 9000/7xx »ò 8xx
ΪÁ˰²×°·Ö·¢£¬Ê¹ÓÃÏÂÃæµÄÃüÁîÖ®Ò», ÕâÀï/path/to/depotÊDzֿâÎļþµÄÍêÕû·¾¶£º
Òª°²×°ËùÓж«Î÷£¬°üÀ¨·þÎñÆ÷¡¢¿Í»§ºÍ¿ª·¢¹¤¾ß£º
shell> /usr/sbin/swinstall - s /path/to/depot mysql.full
½ö½ö°²×°·þÎñÆ÷£º
shell> /usr/sbin/swinstall - s /path/to/depot mysql.server
½ö½ö°²×°¿Í»§Èí¼þ°ü£º
shell> /usr/sbin/swinstall - s /path/to/depot mysql.client
½ö½ö°²×°¿ª·¢¹¤¾ß£º
shell> /usr/sbin/swinstall - s /path/to/depot mysql.developer
depotÔÚ¡°/opt/mysql¡±´æ·Å¶þ½øÖÆ´úÂëºÍ¿âÎļþ²¢ÔÚ¡°/var/opt/mysql¡±´æ·ÅÊý¾Ý¡£depotÒ²ÔÚ¡°/sbin/init.d¡±ºÍ¡° /sbin/rc2.d¡±Àï´´½¨Êʵ±µÄÈë¿ÚÒÔ×Ô¶¯µØÔÚÒýµ¼Ê±Æô¶¯·þÎñÆ÷¡£ÏÔÈ», ÕâÓбØÒªÒÔrootÉí·ÝÀ´°²×°¡£
ΪÁ˰²×°HP-UX tar·Ö·¢£¬Äã±ØÐëÓÐGNU tarµÄÒ»¸ö¿½±´¡£
4.7 °²×°MySQLÔ´´úÂë·Ö·¢
ÄãÐèÒªÏÂÁй¤¾ß¹¹Ôì²¢°²×°MySQLÔ´´úÂ룺
GNU gunzip½âѹËõ¸Ã·Ö·¢¡£
Ò»¸öºÏÊʵÄtar½â°ü·Ö·¢¡£GNU tarÒÑÖª¿ÉÒÔ¹¤×÷¡£
Ò»¸öÄÜÔËÐеÄANSI C++±àÒëÆ÷¡£gcc> = 2.8.1 ¡¢egcs> = 1.0.2 ¡¢SGI C++ºÍSunPro C++ÊÇһЩÒÑÖªÄܹ¤×÷±àÒëÆ÷¡£ µ±Ê¹gccÓÃʱ£¬²»ÐèÒªlibg++¡£gcc2.7.x ÓÐÒ»¸öbug£¬Ê¹µÃËü¿ÉÄܲ»ÄܱàÒëһЩÍêÈ«ºÏ·¨µÄC++Îļþ£¬ÀýÈç¡°sql/sql_base.cc¡±¡£Èç¹ûÄã½öÓÐgcc2.7.x£¬Äã±ØÐëÉý¼¶gcc²ÅÄܱàÒëMySQL¡£
Ò»¸öÓÅÐãµÄmake³ÌÐò¡£GNU make×ÜÊDZ»ÍƼöÇÒÓÐʱ±ØÐë¡£Èç¹ûÄãÓÐÎÊÌ⣬ÎÒÃÇÍÆ¼öÊÔÒ»ÊÔGNU make3.75»ò¸üС£
Èç¹ûÄãÓöµ½ÎÊÌ⣬µ±Ïòmysql@lists.mysql.comÓʼÄÎÊÌâʱ£¬ÇëһֱʹÓÃmysqlbug¡£¾ÍËãÎÊÌâ²»ÊÇÒ»¸öbug£¬mysqlbugÊÕ¼¯ÏµÍ³ÐÅÏ¢£¬½«ÓÐÖúÓÚÆäËüÈ˽â¾öÄãµÄÎÊÌâ¡£Èç¹û²»Ê¹ÓÃmysqlbug£¬Äã¼õÉٵõ½¹ØÄãÎÊÌâµÄÒ»¸ö½â¾ö·½°¸µÄ¿ÉÄÜÐÔ£¡ÔÚÄã½â°ü·Ö·¢ºó£¬Äã»áÔÚ¡°scripts¡±Ä¿Â¼ÏÂÕÒµ½mysqlbug¡£¼û2.3 ÔõÑù±¨¸æ´íÎó»òÎÊÌâ¡£
4.7.1 ¿ìËÙ°²×°¸ÅÊö
Äã±ØÐëÖ´ÐеݲװMySQLÔ´´úÂë·Ö·¢µÄ»ù±¾ÃüÁîÊÇ(´ÓÒ»¸ö½â°üµÄtarÎļþ)£º
shell>configure
shell>make
shell>make install
shell>scripts/mysql_install_db
shell>/usr/local/mysql/bin/safe_mysqld &
Èç¹ûÄã´ÓÒ»¸öÔ´´úÂëRPM¿ªÊ¼£¬ÄÇôִÐÐÈçÏÂÃüÁî¡£
shell> rpm -- rebuild MySQL-VERSION.src.rpm
ÕâÑùÄãÖÆ×÷Ò»¸ö¿ÉÒÔ°²×°µÄ¶þ½øÖÆRPM¡£
Èç¹ûÄã°²×°ÁËDBIºÍMsql-Mysql-modulesPerlÄ£¿é£¬Äã¿ÉÒÔÀûÓÃbin/mysql_setpermission½Å±¾Ôö¼ÓÐÂÓû§¡£
ÒÔÏÂÊǸüÏêϸµÄÃèÊö£º
ΪÁ˰²×°Ô´´úÂë·Ö·¢£¬°´ÕÕÏÂÁв½Ö裬Ȼºó¼ÌÐøµ½4.15 °²×°ºóÆÚµÄÉèÖÃÓë²âÊÔ£¬½øÐа²×°ºóÆÚµÄ³õʼ»¯Óë²âÊÔ¡£
Ìôѡһ¸öÄãÒªÔÚÆäÏÂÃæ½â°ü·Ö·¢µÄĿ¼£¬²¢ÇÒ½øÈë¸ÃĿ¼¡£
´Ó½Ú4.1 ÔõÑù»ñµÃMySQLÖÐÁгöµÄÕ¾µãÖ®Ò»»ñµÃÒ»¸ö·Ö·¢Îļþ¡£MySQLÔ´´úÂë·Ö·¢ÒÔѹËõµÄtarµµ°¸Ìṩ£¬²¢ÇÒÓÐÀàËÆÓÚ¡°mysql-VERSION.tar.gz¡±µÄÃû×Ö£¬ÕâÀïµÄVERSIONÊÇÒ»¸öÀàËÆ3.23.7-alphaµÄÊý×Ö¡£
ÔÚµ±Ç°Ä¿Â¼Ï½â°ü·Ö·¢£º
shell> gunzip < mysql-VERSION.tar.gz | tar xvf -
Õâ¸öÃüÁî´´½¨ÃûΪ¡°mysql-VERSION¡±µÄÒ»¸öĿ¼¡£
½øÈë½â°ü·Ö·¢µÄ¶¥¼¶Ä¿Â¼£º
shell> cd mysql-VERSION
ÉèÖ÷¢Ðа汾²¢ÇÒ±àÒ룺
shell>./configure--prefix=/usr/local/mysql
shell>make
µ±ÄãÔËÐÐconfigureʱ£¬Äã¿ÉÄÜÏëÒªÖ¸¶¨Ò»Ð©Ñ¡ÏÔËÐÐ./configure --helpµÃµ½Ò»ÕÅÑ¡Ïî±í¡£4.7.3 µäÐ͵ÄconfigureÑ¡ÏîÌÖÂÛһЩºÜÓÐÓõÄÑ¡Ïî¡£Èç¹ûconfigureʧ°Ü£¬Ä㽫·¢ËͰüº¬ÄãÈÏΪÄܰïÄã½â¾ö¸ÃÎÊÌâµÄ¡°config.log¡±µÄÓʼþ£¬Èç¹ûconfigureÒì³£Í˳ö£¬Ò²Òª°üÀ¨configureµÄ×îºó¼¸ÐÐÊä³ö¡£ÓÃmysqlbug½Å±¾ÓʼĴíÎ󱨸档¼û2.3 ÔõÑù±¨¸æ´íÎóºÍÎÊÌâ¡£Èç¹û±àÒëʧ°Ü£¬¼û½Ú4.8 ±àÒëÎÊÌ⣿£¬°ïÖú½â¾öºÜ¶à³£¼ûÎÊÌâ¡£
°²×°ËùÓж«Î÷£º
shell>make install
Äã¿ÉÄÜÐèÒªrootÓû§À´ÔËÐÐÕâ¸öÃüÁî¡£
´´ÔìMySQLÊÚȨ±í(Ö»ÓÐÄãÒÔǰû°²×°MySQLÊDZØÐèµÄ)£º
shell>scripts/mysql_install_db
×¢Ò⣬ÔÚÔËÐÐmysql_install_dbʱ£¬ÄÇЩ±È3.22.10¾ÉµÄMySQL°æ±¾Æô¶¯MySQL·þÎñÆ÷¡£ÏÖÔÚ²»ÊÇÕâÑùÁË£¡
Èç¹ûÄãÏëÒª°²×°¶ÔPerl DBI/DBD½Ó¿ÚµÄÖ§³Ö£¬¼û4.10 Perl°²×°×¢Òâ˵Ã÷¡£
Èç¹ûÄãÏëÒªMySQLÔÚÄãÒýµ¼»úÆ÷ʱ×Ô¶¯µØÆô¶¯£¬Äã¿ÉÒÔ¿½±´support-files/mysql.serverµ½ÄãµÄϵͳÖÐÓÐÆô¶¯ÎļþµÄµØ·½¡£¸ü¶àµÄÐÅÏ¢¿ÉÒÔÔÚsupport-files/mysql.server½Å±¾ÀïºÍ4.15.3 ×Ô¶¯Æô¶¯ºÍÍ£Ö¹MySQLÕÒµ½¡£
ÔÚËùÓж«Î÷°²×°ÍêÒÔºó£¬ÄãÓ¦¸Ã³õʼ»¯²¢ÇÒ²âÊÔÄãµÄ·Ö·¢¡£
Äã¿ÉÒÔÓÃÏÂÁÐÃüÁîÆô¶¯MySQL·þÎñÆ÷£¬ÕâÀïBINDIRÊÇsafe_mysqld±»°²×°µÄĿ¼(ȱʡΪ¡°/usr/local/bin¡±)£º
shell> BINDIR/safe_mysqld &
Èç¹ûÕâ¸öÃüÁîÌáʾmysqld daemon ended²¢ÂíÉÏʧ°Ü£¬ÄÇôÄãÄÜÔÚÎļþ¡°mysql-data-directory/'hostname'.err¡±ÕÒµ½Ò»Ð©ÐÅÏ¢¡£¿ÉÄܵÄÔÒòÊÇÄãÒѾÓÐÁíÍâÒ»¸öÕýÔÚÔËÐеÄmysqld·þÎñÆ÷¡£¼û19.3 ÔÚͬһ̨»úÆ÷ÉÏÔËÐжà¸öMySQL·þÎñÆ÷¡£
²Î¼û4.15 °²×°ºóÆÚµÄÉèÖÃÓë²âÊÔ¡£
4.7.2 ÔËÓò¹¶¡
ÓÐʱ²¹¶¡³öÏÖÔÚÓʼþÁбíÉÏ»ò·ÅÔÚMySQL FTPµØµãµÄ²¹¶¡Çø¡£
ΪÁËʹÓÃÀ´×ÔÓʼþÁбíµÄÒ»¸ö²¹¶¡£¬±£´æ²¹¶¡³öÏÖÔÚÎļþµÄÏûÏ¢£¬½øÈëÄãµÄMySQLÔ´´úÂëÊ÷µÄ¶¥¼¶Ä¿Â¼²¢ÔËÐÐÕâЩÃüÁ
shell>patch - p1 shell>rm config.cache shell>make clean À´×ÔFTPµØµãµÄ²¹¶¡ÊÇ×÷ΪÆÕͨÎı¾Îļþ»ò×÷Ϊ±»Ñ¹ËõÁ˵ÄgzipÎļþ·Ö·¢¡£ÔËÓÃÒ»¸öÎı¾µÄ²¹¶¡ÈçÉÏÊöÓʼþÁÐ±í²¹¶¡£¬ÎªÁËʹÓÃÒ»¸öѹËõµÄ²¹¶¡£¬½øÈëÄãµÄMySQLÔ´´úÂëÊ÷¶¥¼¶Ä¿Â¼²¢ÔËÐÐÕâЩÃüÁ shell>gunzip shell>rm config.cache shell>make clean ÔÚʹÓÃÒ»¸ö²¹¶¡ÒԺ󣬰´ÕÕÕý³£µÄÔ´´úÂë°²×°µÄÖ¸Á¿ªÊ¼./configure²½Öè¡£ÔÚÔËÐÐmake installºó£¬ÖØÆôÄãµÄMySQL·þÎñÆ÷¡£ ÔÚÔËÐÐmake installǰ£¬Äã¿ÉÄÜÐèÒª¹Ø±ÕËùÓÐÕýÔÚÔËÐеķþÎñÆ÷£¨Ê¹ÓÃmysqladmin shutdown)¡£Èç¹ûÒ»¸ö³ÌÐòµÄÐÂ°æ±¾Ìæ´úµ±Ç°ÕýÔÚÖ´Ðеİ汾£¬Ò»Ð©ÏµÍ³²»ÔÊÐíÄã°²×°Ëü¡£ 4.7.3 µäÐ͵ÄconfigureÑ¡Ïî configure½Å±¾¸øÄãÒ»¸öºÜ´óµÄ¿ØÖÆÈ¨À´ÈçºÎÅäÖÃÄãµÄMySQL·Ö·¢¡£µäÐ͵أ¬ÄãʹÓÃconfigureÃüÁîÐеÄÑ¡Ïî½øÐС£ÄãÒ²¿ÉÒÔÓÃÕýÈ·µÄ»·¾³±äÁ¿×÷ÓÃÓÚconfigure¡£¶ÔÓÚÒ»¸öÓÉconfigureÖ§³ÖµÄÑ¡ÔñÁÐ±í£¬ÔËÐÐÕâ¸öÃüÁ shell> ./configure -- help һЩ¸ü³£ÓõÄconfigureÑ¡Ïî¼ûÏÂÃæµÄÃèÊö£º Ö»±àÒëMySQL¿Í»§¿âºÍ¿Í»§³ÌÐò¶ø²»ÊÇ·þÎñÆ÷£¬Ê¹ÓÃ--without-serverÑ¡Ï shell> ./configure --without-server Èç¹ûÄãûÓÐÒ»¸ö C++ ±àÒëÆ÷£¬mysql½«²»±àÒë(ÓÐÒ»¸ö¿Í»§³ÌÐòÐèÒªC++)¡£ÔÚÕâÖÖÇé¿öÏ£¬Äã¿ÉÒÔÈ¥µôconfigureÀïÃæ²âÊÔC++±àÒëÆ÷µÄ´úÂ룬ȻºóÔËÐдøÓÐ --without-serverÑ¡ÏîµÄ./configure¡£±àÒë²½Öè²½½«ÈÔÈ»³¢ÊÔ¹¹Ôìmysql£¬µ«ÊÇÄã¿ÉÒÔºöÂÔÈκιØÓÚ¡° mysql.cc ¡±µÄ¾¯¸æ¡££¨Èç¹ûmakeÍ£Ö¹£¬ÊÔÊÔmake -k¸æËßËü¼´Ê¹³ö´í¼ÌÐøÊ£ÏµĹ¹Ôì²½Ö裩¡£ Èç¹ûÄã²»ÏëҪλÓÚ¡°/usr/local/var¡±Ä¿Â¼ÏÂÃæµÄÈÕÖ¾(log)ÎļþºÍÊý¾Ý¿â£¬Ê¹ÓÃÀàËÆÓÚÏÂÁÐconfigureÃüÁîµÄÒ»¸ö£º shell>./configure--prefix=/usr/local/mysql shell>./configure--prefix=/usr/local --localstatedir=/usr/local/mysql/data µÚÒ»¸öÃüÁî¸Ä±ä°²×°Ç°×ºÒÔ±ãÈκζ«Î÷±»°²×°ÔÚ¡°/usr/local/mysql¡±ÏÂÃæ¶ø·ÇȱʡµÄ¡°/usr/local¡±¡£µÚ¶þ¸öÃüÁî±£Áôȱʡ°²×°Ç°×º£¬µ«ÊǸ²¸ÇÁËÊý¾Ý¿âĿ¼ȱʡĿ¼(ͨ³£ÊÇ¡°/usr/local/var¡±)²¢ÇÒ°ÑËü¸Ä/usr/local/mysql/data. Èç¹ûÄãÕýÔÚʹÓÃUnix²¢ÇÒÄãÏëÒªMySQLµÄÌ×½Ó×ÖλÓÚȱʡµØµãÒÔÍâµÄij¸öµØ·½(ͨ³£ÔÚĿ¼¡°/tmp¡±»ò¡°/var/run¡±£¬Ê¹ÓÃÏóÕâÑùµÄconfigureµÄÃüÁ shell> ./configure -- with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock ×¢Òâ¸ø³öµÄÎļþ±ØÐëÊÇÒ»¸ö¾ø¶Ô·¾¶£¡ Èç¹ûÄãÏë±àÒ뾲̬Á´½Ó³ÌÐò(ÀýÈç£¬ÖÆ×÷¶þ½øÖÆ·Ö·¢¡¢»ñµÃ¸ü¿ìµÄËÙ¶È»òÓë½â¾öÓëRedHat·Ö·¢µÄһЩ)£¬ÏñÕâÑùÔËÐÐconfigure£º shell>./configure --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static Èç¹ûÄãÕýÔÚʹÓÃgcc²¢ÇÒûÓа²×°libg++»òlibstdc++£¬Äã¿ÉÒÔ¸æËßconfigureʹÓÃgcc×÷ΪC++±àÒëÆ÷£º shell> CC=gcc CXX=gcc ./configure µ±ÄãʹÓÃʱgcc×÷ΪC++±àÒëÆ÷ÊÇ£¬Ëü½«²»ÊÔͼÁ´½Ólibg++»òlibstdc++¡£Èç¹û¹¹Ôìʧ°Ü²¢ÇÒ²úÉúÓйرàÒëÆ÷»òÁ´½ÓÆ÷µÄ´íÎ󣬲»ÄÜ´´½¨¹²Ïí¿â¡°libmysqlclient.so.#¡±(¡°#¡±ÊÇÒ»¸ö°æ±¾ºÅ), Äã¿ÉÒÔͨ¹ýΪconfigureÖ¸¶¨--disable-sharedÑ¡ÏîÀ´½â¾ö´ËÎÊÌâ¡£ÔÚÕâÖÖÇé¿öÏ£¬configure½«²»¹¹ÔìÒ»¸ö¹²Ïílibmysqlclient.so.#¿â¡£ Äã¿ÉÒÔÉèÖÃMySQL¶ÔÓÚ·ÇNULLµÄÁв»Ê¹ÓÃDEFAULTÁÐÖµ(¼´£¬²»ÔÊÐíÁÐÊÇNULL)¡£Õâµ¼ÖÂINSERTÓï¾ä²úÉúÒ»¸ö´íÎ󣬳ý·ÇÄãÃ÷È·µØÎªËùÓÐÒªÇó·ÇNULLÖµµÄÁÐÖ¸¶¨Öµ¡£ÎªÁ˽ûֹʹÓÃȱʡֵ£¬ÕâÑùÔËÐÐconfigure£º shell> CXXFLAGS=-DDONT_USE_DEFAULT_FIELDS ./configure ȱʡµØ£¬MySQLʹÓÃISO-8859-1(Latin1)×Ö·û¼¯¡£ÎªÁ˸ıäȱʡÉèÖã¬Ê¹ÓÃ--with-charsetÑ¡ÏîÄ¿£º shell> ./configure -- with-charset=CHARSET CHARSET¿ÉÒÔÊÇbig5¡¢cp1251¡¢cp1257¡¢czech¡¢danish¡¢dec8¡¢dos¡¢euc_kr¡¢gb2312 gbk¡¢german1¡¢hebrew¡¢ hp8¡¢hungarian¡¢koi8_ru¡¢koi8_ukr¡¢latin1¡¢latin2¡¢sjis¡¢swe7¡¢tis620¡¢ujis¡¢usa7¡¢win1251»òwin1251ukrÖ®Ò»¡£¼û9.1.1 ÓÃÓÚÊý¾ÝºÍÅÅÐòµÄ×Ö·û¼¯¡£×¢Ò⣺Èç¹ûÄãÏëÒª¸Ä±ä×Ö·û¼¯£¬Äã±ØÐëÔÚÅäÖÃÆÚ¼ä×ömake distclean£¡Èç¹ûÄãÏëÔÚ·þÎñÆ÷ºÍ¿Í»§Ö®¼ä±ä»»×Ö·û£¬ÄãÓ¦¸Ã¿´Ò»ÏÂSET OPTION CHARACTER SETÃüÁî¡£¼û7.25 SET OPTION¾ä·¨¡£¾¯¸æ£ºÈç¹ûÄãÔÚ´´½¨ÁËÈκÎÊý¾Ý¿â±íÖ®ºó¸Ä±ä×Ö·û¼¯£¬Ä㽫±ØÐë¶Ôÿ¸ö±íÔËÐÐmyisamchk -r -q£¬·ñÔòÄãµÄË÷Òý¿ÉÄܲ»ÕýÈ·µØÅÅÐò¡££¨Èç¹ûÄã°²×°ÁËMySQL£¬´´½¨Ò»Ð©±í£¬È»ºóÖØÐÂÅäÖÃMySQLʹÓÃÒ»¸ö²»Í¬µÄ×Ö·û¼¯²¢ÇÒÖØÐ°²×°Ëü£¬Õâʱ¾Í¿ÉÄÜ·¢ÉúÕâÖÖÇé¿ö¡££© ΪÁËÅäÖÃMySQL´øÓе÷ÊÔ´úÂ룬ʹÓÃ--with-debugÑ¡Ï shell> ./configure --with-debug Õâµ¼Ö°üº¬Ò»¸ö°²È«µÄÄÚ´æ·ÖÅäÆ÷£¬ÄÜ·¢ÏÖһЩ´íÎóºÍ²¢Ìṩ¹ØÓÚÕýÔÚ·¢ÉúµÄÊÂÇéµÄÊä³ö¡£¼ûG.1µ÷ÊÔÒ»¸öMySQL·þÎñÆ÷¡£ ÊôÓÚÌØ¶¨ÏµÍ³µÄÑ¡Ïî¿ÉÔÚ±¾ÕÂÌØ¶¨ÏµÍ³µÄС½ÚÀïÕÒµ½¡£¼û4.11 ÏµÍ³ÌØ¶¨µÄÎÊÌâ¡£ 4.8 ±àÒëÎÊÌ⣿ ËùÓÐMySQL³ÌÐòÔÚSolarisÉÏʹÓÃgcc±àÒë²¢ÇÒûÓÐÈκξ¯¸æ¡£ÔÚÆäËûϵͳÉÏ£¬ÓÉÓÚϵͳ°üº¬ÎļþµÄ²î±ð¿ÉÄܻᷢÉú¾¯¸æ¡£¶ÔÓÚʹÓÃMIT-pthreadsʱ·¢ÉúµÄ¾¯¸æ£¬¼û4.9 MIT-pthreads ×¢ÒâÊÂÏî¡£ÆäËûÎÊÌ⣬¼ì²éÏÂÃæµÄ±í¡£ Ðí¶àÎÊÌâµÄ½â¾ö·½°¸Éæ¼°ÖØÐÂÅäÖá£Èç¹ûÄãȷʵÐèÒªÖØÐÂÅäÖã¬×¢ÒâÏÂÁÐÊÂÏ Èç¹ûconfigureÔÚËüÒѾ±»ÔËÐÐÁËÒÔºóÔËÐУ¬Ëü¿ÉÒÔʹÓÃÏÈǰÊÕ¼¯µÄÐÅÏ¢¡£Õâ¸öÐÅÏ¢±»´æ´¢ÔÚ¡°config.cache¡±ÀïÃæ¡£µ±configureÆô¶¯Ê±£¬ËüѰÕÒ¸ÃÎļþ¶øÇÒÈç¹ûËü´æÔÚ£¬¼Ù¶¨ÐÅÏ¢ÈÔÈ»ÊÇÕýÈ·µÄ£¬¶ÁÈëËüµÄÄÚÈÝ¡£µ±ÄãÖØÐÂÅäÖÃʱ£¬¸Ã¼ÙÉèÊÇÎÞЧµÄ¡£ ÿ´ÎÄãÔËÐÐconfigureʱºò£¬Äã±ØÐëÔËÐÐmakeÔÙÖØÐ±àÒ롣Ȼ¶ø, Äã¿ÉÄÜÏëÒª°ÑÏÈǰ¹¹ÔìµÄÀϵÄÄ¿±êÎļþɾ³ý£¬ÒòΪËûÃÇʹÓò»Í¬µÄÅäÖÃÑ¡Ïî±»±àÒë¡£ ΪÁË·ÀֹʹÓþɵÄÅäÖÃÐÅÏ¢»òÄ¿±êÎļþ£¬ÔÚÖØÐÂÔËÐÐconfigureǰÔËÐÐÕâЩÃüÁ shell>rm config.cache shell>make clean ÁíÍ⣬Äã¿ÉÒÔÔËÐÐmake distclean¡£ ϱíÃèÊöÁËһЩ×î³£·¢ÉúµÄ±àÒëMySQLµÄÎÊÌ⣺ Èç¹ûÔÚ±àÒë¡°sql_yacc.cc¡±Ê±£¬ÄãµÃµ½ÈçϵÄÒ»¸ö´íÎó£¬Äã¿ÉÄÜÊÇ´æ´¢Æ÷»ò½»»»¿Õ¼äÒç³ö£º Internal compiler error: program cc1plus got fatal signal 11 »ò Out of virtual memory »ò Virtual memory exhausted ¸ÃÎÊÌâÊÇgccÒªÇó´óÁ¿µÄÄÚ´æ±àÒë´øÓÐǶÈ뺯Êý(inline function)µÄ¡°sql_yacc.cc¡±¡£ÊÔÊÔÒÔ--with-low-memoryÑ¡ÏîÔËÐÐconfigure£º shell>./configure -- with-low-memory Èç¹ûÄãÕýÔÚʹÓÃgcc£¬¸ÃÑ¡ÏîʹµÃ½«-fno-inline¼Óµ½±àÒëÐУ¬Èç¹ûÄãÕýÔÚʹÓÃÆäËûµÄ±àÒëÆ÷£¬Ôò¼ÓÈë-O0¡£ÄãÓ¦¸ÃÊÔÒ»ÊÔ--with-low-memoryÑ¡Ï¼´Ê¹ÄãÓÐÌØ±ð¶àµÄ´æ´¢Æ÷ºÍ½»»»¿Õ¼ä£¬¶øÄãÈÏΪ²»ÄÜ¿ÉÄÜÔËÐеÃÒç³ö¡£Õâ¸öÎÊÌâÉõÖÁÔںܿ¶¿®µÄÓ²¼þÅäÖõÄϵͳÉϳöÏÖ£¬Í¨³£ÓÃ--with-low-memoryÑ¡ÏîÐÞÕýËü¡£ ȱʡµØ£¬configureÌôÑ¡c++×÷Ϊ±àÒëÆ÷Ãû×Ö²¢ÓÃ-lg++Ñ¡ÏîµÄGNU c++Á´½Ó¡£Èç¹ûÄãÕýÔÚʹÓÃgcc£¬Õâ¸öÌØÐÔÔÚÅäÖÃÆÚ¼äµ¼ÖÂÈçÏÂÎÊÌ⣺ configure: error: installation or configuration problem: C++ compiler cannot create executables. Äã¿ÉÄÜÒ²ÔÚ±àÒëÆÚ¼ä¿´µ½g++¡¢libg++»òlibstdc++Ïà¹ØµÄÎÊÌâ¡£ÕâЩÎÊÌâµÄÒ»¸öÔÒòÊÇÄã¿ÉÄÜûÓÐg++£¬»òÄã¿ÉÄÜÓÐg++µ«ÎÞlibg++»òlibstdc++¡£¿´Ò»Ï¡°config.log¡±Îļþ¡£ËüÓ¦¸Ã°üº¬ÄãµÄc++±àÒëÆ÷²»Äܹ¤×÷µÄ׼ȷÔÒò£¡ÎªÁ˽â¾öÕâЩÎÊÌ⣬Äã¿ÉÒÔʹÓÃgcc×÷ΪÄãµÄC++±àÒëÆ÷¡£ÊÔÊÔÉèÖû·¾³±äÁ¿CXXΪ"gcc -O3"¡£ÀýÈ磺 shell>CXX="gcc -O3" ./configure ËüÄܹ¤×÷£¬ÒòΪgccÏóg++Ò»Ñù±àÒëC++Ô´´úÂ룬µ«È±Ê¡µØËü²»Á´½Ólibg++»òlibstdc++¡£½â¾öÕâЩÎÊÌâµÄÆäËû·½·¨µ±È»Êǰ²×°g++¡¢libg++ºÍlibstdc++¡£ Èç¹ûÄãµÄ±àÒëÒÔÏÂÃæÈκδíÎó¶øÊ§°Ü£¬Äã±ØÐëÉý¼¶make°æ±¾µ½GNUmake£º making all in mit-pthreads make: Fatal error in reader: Makefile, line 18: Badly formed macro assignment ¡¡or make: file `Makefile' line 18: Must be a separator (: ¡¡or pthread.h: No such file or directory SolarisºÍFreeBSDÒÑÖªmake³ÌÐòÓÐÎÊÌâ¡£GNU make°æ±¾3.75ÒÑÖªÄܹ¤×÷¡£ Èç¹ûÄãÏëÒª¶¨ÒåÄãµÄC»òC++±àÒëÆ÷ËùʹÓõıêÖ¾£¬°Ñ±êÖ¾¼Óµ½CFLAGSºÍCXXFLAGS»·¾³±äÁ¿Öм´¿É¡£ÄãÒ²ÄÜʹÓÃCCºÍCXXÀ´Ö¸¶¨±àÒëÆ÷Ãû×Ö¡£ÀýÈ磺 shell>CC=gcc shell>CFLAGS=-O6 shell>CXX=gcc shell>CXXFLAGS=-O6 shell>export CC CFLAGS CXX CXXFLAGS ¶ÔÓÚÒѾ֪µÀÔÚ²»Í¬ÏµÍ³ÉÏÓÐÓõıêÖ¾¶¨ÒåÁÐ±í£¬¼û4.14 TcX ¶þ½øÖÆ´úÂë¡£ Èç¹ûÄãµÃµ½ÏóÈçϵÄÒ»Ìõ´íÎóÏûÏ¢£¬ÄãÐèÒªÉý¼¶ÄãµÄgcc±àÒëÆ÷£º client/libmysql.c:273: parse error brfore '__attribute__' gcc2.8.1ÒÑÖª¿ÉÒÔ¹¤×÷£¬µ«ÊÇÎÒÃÇÍÆ¼öʹÓÃegcs1.0.3a»ò¸üС£ Èç¹ûÄãÔÚ±àÒëmysqldʱÏÔʾÀýÈçÏÂÃæµÄÄÇЩ´íÎó, configureûÓÐÕýÈ·µØ¼ì²â´«µ½accept()¡¢getsockname()»ògetpeername()×îºó²ÎÊýµÄÀàÐÍ£º cxx: Error: mysqld.cc, line 645: In this statement, the referenced type of the pointer value "&length" is "unsigned long", which is not compatible with "int". new_sock = accept(sock, (struct sockaddr *)&cAddr, &length); ΪÁËÐÞÕýËü£¬±à¼¡°config.h¡±Îļþ(ËüÓÉconfigureÉú³É)¡£Ñ°ÕÒÕâЩÐУº /* Define as the base type of the last arg to accept */ #define SOCKET_SIZE_TYPE XXX ¸ü¸ÄXXXΪsize_t»òint£¬ÕâÈ¡¾öÓÚÄãµÄ²Ù×÷ϵͳ¡££¨×¢Ò⣺Äãÿ´ÎÔËÐÐconfigure¶¼±ØÐëÕâÑù×ö£¬ÒòΪconfigureÖØÐÂÉú³É¡°config.h¡±¡£) ¡°sql_yacc.cc¡±ÎļþÓÉ¡°sql_yacc.yy¡±Éú³É¡£Í¨³£¹¹Ôì¹ý³Ì²»ÐèÒª´´Ôì¡°sql_yacc.cc¡±£¬ÒòΪMySQLÓÐÒ»¸öÒѾÉú³ÉµÄ¿½±´£¬È»¶ø£¬Èç¹ûÄãȷʵÐèÒªÔÙ´´½¨Ëü£¬Äã¿ÉÄÜÅöµ½Õâ¸ö´íÎó£º "sql_yacc.yy", line xxx fatal: default action causes potential... ÕâÊÇÒ»¸öÄãµÄyacc°æ±¾²»ÍêÉÆµÄ¼£Ïó¡£Äã¿ÉÄÜÐèÒª°²×°bison£¨GNU °æ±¾yacc)²¢Ê¹ÓÃËü¡£ Èç¹ûÄãÐèÒªµ÷ÊÔmysqld»òMySQL¿Í»§£¬ÔËÐÐconfigure£¬Ê¹ÓÃ--with-debugÑ¡ÏȻºóÖØÐ±àÒë²¢ÇÒÁ´½ÓÄã¿Í»§³ÌÐòµ½ÐµĿͻ§¿â¡£¼ûG.2 µ÷ÊÔÒ»¸öMySQL¿Í»§¡£ 4.9 MIT-pthreads×¢ÒâÊÂÏî Õâ½ÚÃèÊöÔÚʹÓà MIT-pthreads ËùÉæ¼°µÄһЩÎÊÌâ¡£ ×¢Ò⣺ÔÚLinuxÉÏ£¬ÄãÓ¦¸Ã²»Ê¹ÓÃMIT-pthreads¶øÊǰ²×°LinuxThreads£¡¼û4.11.5 Linux ×¢ÒâÊÂÏî(ËùÓеÄLinux °æ±¾)¡£ Èç¹ûÄãµÄϵͳ²»ÌṩÔÉúµÄÏß³ÌÖ§³Ö£¬Ä㽫ÐèҪʹÓÃMIT-pthreads°ü¹¹ÔìMySQL¡£Õâ°üÀ¨´ó¶àÊýFreeBSDϵͳ¡¢SunOS 4.x ¡¢Solaris 2.4ºÍ¸üÔç°æ±¾¼°ÆäËû£¬¼û4.2 MySQL Ö§³ÖµÄ²Ù×÷ϵͳ¡£ ÔÚ´ó¶àÊýϵͳÉÏ£¬ÄãÄÜͨ¹ýʹÓÃconfigure£¬ÓÃ--with-mit-threadsÑ¡ÏîÀ´Ç¿ÆÈÔËÐÐMIT-pthreads£º shell> ./configure -- with-mit-threads µ±Ê¹ÓÃMIT-pthreadsʱ£¬²»Ö§³ÖÔÚÒ»¸ö·ÇÔ´´úÂëĿ¼¹¹Ô죬ÒòΪÎÒÃÇÏëҪʹÎÒÃǶԴúÂëµÄ¸Ä±ä¼õµ½×îС¡£ MIT-pthreads²»Ö§³ÖÓÃÓÚʵÏÖUnixÌ×½Ó×ÖµÄAF_UNIXÐÒé¡£ÕâÒâζ×ÅÈç¹ûÄãʹÓÃMIT-pthreads½øÐбàÒ룬ËùÓеÄÁ´½Ó±ØÐëʹÓÃTCP/IP½øÐÐ(ËüÓеãÂý)¡£Èç¹ûÔÚ¹¹ÔìMySQLºó£¬Äã·¢ÏÖÄã²»ÄÜÓë±¾µØµÄ·þÎñÆ÷Á¬½Ó£¬ºÜ¿ÉÄÜÊǿͻ§³ÌÐòÕýÔÚÊÔͼÓÃȱʡµÄUnixÌ×½Ó×ÖÓëlocalhostÁ¬½Ó¡£Ê¹ÓÃÖ÷»úÑ¡Ôñ(-h»ò--host)Ã÷È·µØÖ¸¶¨±¾µØµÄÖ÷»úÃû×Ö£¬³¢ÊÔ×öÒ»¸öTCP/IPÁ¬½Óµ½mysql¡£ ¾ö¶¨ÊÇ·ñʹÓÃMIT-pthreadsµÄ¼ì²é½öÔÚ´¦Àí·þÎñÆ÷´úÂëµÄÅäÖùý³ÌÆÚ¼ä·¢Éú¡£Èç¹ûÒѾÓÃ--without-serverÅäÖÃÁË·Ö·¢²¢Ö»¹¹Ôì¿Í»§´úÂ룬¿Í»§½«²»ÖªµÀMIT-pthreadsÊÇ·ñÕýÔÚ±»Ê¹Óò¢ÇÒÊÇ·ñʹÓÃȱʡµÄUnixÌ×½Ó×ÖÁ¬½Ó¡£ÒòΪUnixÌ×½Ó×Ö²»ÄÜÔÚMIT-pthreadsÏÂÃæ¹¤×÷£¬ÕâÒâζ×ŵ±ÄãÔËÐпͻ§³ÌÐòʱ£¬Ä㽫ÐèҪʹÓÃ-h»ò--host¡£ µ±Ê¹ÓÃMIT-pthreads±àÒëMySQLʱ£¬ÒòΪÐÔÄÜÔÒò£¬ÏµÍ³Ëø¶¨È±Ê¡Îª½ûֹʹÓá£Äã¿ÉÒÔÓÃ--use-lockingÑ¡Ïî¸æËß·þÎñÆ÷ʹÓÃÏµÍ³Ëø¶¨¡£ ÓÐʱpthreadbind()ÃüÁî²»Äܰó¶¨Ò»¸öÌ×½Ó×Öµ«Ã»ÓÐÈκδíÎóÏûÏ¢(ÖÁÉÙÔÚSolarisÉÏ)£¬½á¹ûÊÇËùÓе½·þÎñÆ÷µÄÁ¬½Ó¾ùʧ°Ü¡£ÀýÈ磺 shell> mysqladmin version mysqladmin: connect to server at ' failed; error: 'Can't connect to mysql server on localhost (146)' ½â¾öËüµÄ·½·¨ÊÇɱËÀmysqld·þÎñÆ÷²¢ÇÒÖØÆôËü¡£ÕâÖ»Óе±ÎÒÃÇÇ¿ÆÈ·þÎñÆ÷Í£Ö¹²¢ÂíÉϽøÐÐÖØÆôʱÔÚ·¢Éú¡£ ʹÓÃMIT-pthreads£¬sleep()ϵͳµ÷Óò»ÊÇ¿ÉÖжϵÄSIGINT£¨break)¡£ÕâÖ»ÓÐÔÚÄãÔËÐÐmysqladmin --sleepʱ²ÅÄÜ×¢Òâµ½¡£ÄãÔÚÖÐ¶ÏÆð×÷Óò¢ÇÒ½ø³Ìֹ֮ͣǰ±ØÐëµÈ´ýsleep()ÖÕÖ¹¡£ µ±Á´½Óʱ£¬Äã¿ÉÄÜ»áÊÕµ½ÕâÑùµÄ¾¯¸æÏûÏ¢(ÖÁÉÙÔÚSolarisÉÏ)£»ËûÃÇ¿ÉÒÔ±»ºöÊÓ£º ld: warning: symbol `_iob' has differing sizes: (file /my/local/pthreads/lib/libpthread.a(findfp.o) value=0x4; file /usr/lib/libc.so value=0x140); /my/local/pthreads/lib/libpthread.a(findfp.o) definition taken ld: warning: symbol `__iob' has differing sizes: (file /my/local/pthreads/lib/libpthread.a(findfp.o) value=0x4; file /usr/lib/libc.so value=0x140); /my/local/pthreads/lib/libpthread.a(findfp.o) definition taken һЩÆäËûµÄ¾¯¸æÒ²¿É±»ºöÂÔ£º implicit declaration of function `int strtoll(...)' implicit declaration of function `int strtoul(...)' ÎÒÃÇ»¹Ã»ÓÐÈÃreadline¿ÉÔÚMIT-pthreadsÉϹ¤×÷¡££¨Õâ²»ÐèÒª£¬µ«ÊÇ¿ÉÄÜijЩÈËÓÐÐËȤ¡££© 4.10 Perl °²×°ËµÃ÷ 4.10.1 ÔÚUnixÉϰ²×°Perl Perl¶ÔMySQLµÄÖ§³Ö½èÖúDBI/DBD¿Í»§½Ó¿Ú¶øÌṩ¡£¼û20.5 MySQL Perl API¡£Perl DBD/DBI¿Í»§´úÂëÒªÇóPerl 5.004»òÒÔºó°æ±¾¡£Èç¹ûÄãÓÐPerlµÄÒ»¸ö¸ü¾ÉµÄ°æ±¾£¬½Ó¿Ú½«²»Äܹ¤×÷¡£ MySQL PerlÖ§³ÖÒ²ÒªÇóÄã°²×°ÁËMySQL¿Í»§±à³ÌÖ§³Ö¡£Èç¹ûÄã´ÓRPMÎļþ°²×°MySQL£¬¿Í»§³ÌÐòÔÚ¿Í»§RPMÖУ¬µ«Êǿͻ§±à³ÌÖ§³ÖÔÚ¿ª·¢ÕßRPM¡£È·¶¨Äã°²×°Á˺óÒ»¸öRPM ¡£ ¶ÔÓÚ°æ±¾3.22.8£¬PerlÖ§³ÖÊÇÓëÖ÷ÒªMySQL·¢Ðа汾µ¥¶À·Ö·¢¡£Èç¹ûÄãÏëÒª°²×°PerlÖ§³Ö£¬ÄãÐèÒªµÄÎļþÄÜ´Óhttp://www.mysql.com/Contrib»ñµÃ¡£ Perl ·Ö·¢ÒÔѹËõµÄtarµµ°¸Ìṩ£¬²¢ÇÒÓÐÒ»¸öÀàËÆ¡°MODULE-VERSION.tar.gz¡±µÄÃû×Ö£¬ÕâÀïMODULEÊÇÄ£¿éÃû×Ö²¢ÇÒVERSIONÊǰ汾ºÅ¡£ÄãÓ¦¸ÃµÃµ½Data-Dumper¡¢DBIºÍMsql-Mysql-modules·Ö·¢²¢°´´Ë´ÎÐò°²×°ËûÃÇ¡£°²×°¹ý³ÌÏÔʾ³öÔÚÏÂÃæ£¬ÏÔʾµÄÀý×ÓÕë¶ÔData-DumperÄ£¿é, µ«ÊÇËùÓÐ3¸ö¹ý³ÌÊÇÏàͬµÄ¡£ ½â°ü·Ö·¢µ½µ±Ç°Ä¿Â¼£º shell> gunzip < Data-Dumper-VERSION.tar.gz | tar xvf - Õâ¸öÃüÁî´´½¨µÄÒ»¸öÃûΪ¡°Data-Dumper-VERSION¡±µÄĿ¼¡£ ½øÈë½â°ü·Ö·¢µÄ¶¥¼¶Ä¿Â¼£º shell> cd Data-Dumper-VERSION ¹¹Ôì·Ö·¢²¢ÇÒ±àÒëËùÓж«Î÷£º shell> perl Makefile.PL shell> make shell> make test shell> make install make testÃüÁîºÜÖØÒª£¬ÒòΪËüÑé֤ģ¿éÕýÔÚ¹¤×÷¡£×¢Ò⣺ÔÚÄãMsql-Mysql-modules°²×°ÆÚ¼äÔËÐиÃÃüÁîÊÔÑé½Ó¿Ú´úÂëʱ£¬MySQL·þÎñÆ÷±ØÐëÕýÔÚÔËÐУ¬·ñÔò²âÊÔ½«Ê§°Ü¡£ ÎÞÂÛºÎʱÄã°²×°Ò»¸öа汾µÄMySQL£¬Öؽ¨²¢ÇÒÖØÐ°²×°Msql-Mysql-modules·Ö·¢ÊÇÒ»¸öºÃÖ÷Òâ, ÌØ±ðÊÇÈç¹ûÄãÔÚÉý¼¶MySQLºó£¬¹Û²ìËùÓÐÒì³££¬ÈçÄãµÄDBI½Å±¾ºËÐÄÇãµ¹(core dump)¡£ Èç¹ûÄãûÓÐȨÏÞÔÚϵͳĿ¼Ï°²×°PerlÄ£¿é£¬»òÈç¹ûÄã°²×°±¾µØPerlÄ£¿é£¬ÏÂÁвο¼Êé¿ÉÒÔ°ïÖúÄ㣺 http://www.iserver.com/support/contrib/perl5/modules.html ÔÚ±êÌâInstalling New Modules that Require Locally Installed ModulesÏÂÃæ²éÕÒ¡£ 4.10.2 ÔÚWin32Éϰ²×°ActiveState Perl ÔÚ Win32 Éϰ²×° ActiveState PerlµÄMySQL DBDµÄÄ£¿é, ÄãÓ¦¸Ã×öÏÂÁв½Ö裺 ´ò¿ªÒ»¸öDOS shell¡£ Èç¹ûÐèÒª£¬ÉèÖÃHTTP_proxy±äÁ¿¡£ÀýÈç, Äã¿ÉÒÔÊÔÒ»ÊÔ£ºset HTTP_proxy=my.proxy.com:3128 Æô¶¯PPM³ÌÐò£ºC:perlinppm.pl Èç¹ûÄ㻹ûÓÐÕâÑù×ö£¬°²×°DBI£º install DBI Èç¹û³É¹¦£¬°²×°DBD::mysql£ºhttp://www.mysql.com/Contrib/ppd/DBD-mysql.ppd Èç¹ûÄã²»ÄÜʹÉÏÊö²½Ö蹤×÷£¬ÄãÓ¦¸Ã°²×°MyODBCÇý¶¯³ÌÐò²¢ÇÒͨ¹ýODBCÁ¬½ÓMySQL·þÎñÆ÷¡£ use DBI; $dbh= DBI->connect("DBI:ODBC:$dsn","$user","$password") || die "Got error $DBI::errstr when connecting to $dsn "; 4.10.3 ÔÚWin32Éϰ²×°MySQL Perl·Ö·¢ MySQL Perl·Ö·¢°üº¬DBI¡¢DBD:MySQLºÍDBD:ODBC¡£ ´Óhttp://www.mysql.com/download.htmlµÃµ½Win32µÄPerl·Ö·¢¡£ ÔÚC:½âѹËõ·Ö·¢£¬ÕâÑùÄãµÃµ½Ò»¸ö¡°C:PERL¡±Ä¿Â¼¡£ Ôö¼ÓĿ¼¡°C:PERLBIN¡±µ½ÄãµÄ·¾¶¡£ Ôö¼ÓĿ¼¡°C:PERLBINMSWin32-x86-thread¡±»ò¡°C:PERLBINMSWin32-x86¡±µ½ÄãµÄ·¾¶¡£ ÔÚ DOS shellÖ´ÐÐperl -v²âÊÔperlµÄÔËÐС£ 4.10.4 ʹÓÃPerlDBI/DBD½Ó¿ÚµÄÎÊÌâ Èç¹û Perl ±¨¸æËü²»ÄÜÕÒµ½../mysql/mysql.soÄ£¿é£¬ÄÇôÎÊÌâ¿ÉÄÜÊǸÃPerl²»ÄÜÕÒµ½¹²Ïí¿âÎļþ¡°libmysqlclient.so¡±¡£ Äã¿ÉÓÃÏÂÁÐÈκÎÒ»¸ö·½·¨ÐÞÕýËüÕ⣺ ÓÃperl Makefile.PL -static¶ø·Çperl Makefile.PL±àÒëMsql-Mysql-modules·Ö·¢¡£ ¿½±´libmysqlclient.soµ½ÆäËû¹²Ïí¿âÎļþËùÔÚµÄĿ¼(¿ÉÄÜÊÇ¡°/usr/lib¡±»ò¡°/lib¡±)¡£ ÔÚLinuxÉÏ£¬Äã¿ÉÒÔ°Ñlibmysqlclient.soËùÔÚĿ¼µÄ·¾¶Ãû¼Óµ½¡°/etc/ld.so.conf¡±ÎļþÖС£ °Ñlibmysqlclient.soËùÔÚĿ¼µÄ·¾¶Ãû¼Óµ½LD_RUN_PATH»·¾³±äÁ¿ÖС£ Èç¹ûÄã´ÓDBD-mysqlµÃµ½ÏÂÁдíÎó£¬Äã¿ÉÄÜÕýÔÚʹÓÃgcc£¨»òʹÓÃÒ»¸ö¾ÉµÄÓÃgcc±àÒëµÄ¶þ½øÖÆ´úÂë)£º /usr/bin/perl: can't resolve symbol '__moddi3' /usr/bin/perl: can't resolve symbol '__divdi3' µ±¡°mysql.so¡±¿âÎļþ±»¹¹Ôìʱºò£¬ÎªÁ´½ÓÃüÁî¼ÓÉÏ-L/usr/lib/gcc-lib/... -lgcc(µ±Äã±àÒëPerl¿Í»§Ê±¼ì²éÕë¶Ô¡°mysql.so¡±µÄmakeÊä³ö)¡£-LÑ¡ÏîÓ¦¸ÃÖ¸¶¨¡°libgcc.a¡±ÔÚÄãϵͳÉÏËùÔÚĿ¼µÄ·¾¶Ãû¡£ Õâ¸öÎÊÌâµÄÁíÒ»¸öÔÒò¿ÉÄÜÊÇPerlºÍMySQL¶¼²»ÊÇÓÃgcc±àÒëµÄ¡£ÔÚÕâÖÖÇé¿öÏ£¬Äã¿ÉÒÔ¶¼ÓÃgcc±àÒëÒÔ½â¾ö²»Æ¥Åä¡£ Èç¹ûÄãÏëÒªÔÚÒ»¸ö²»Ö§³Ö¶¯Ì¬Á´½Ó(ÏóSCOÄÇÑù)µÄϵͳÉÏʹÓÃPerlÄ£¿é£¬Äã¿ÉÒÔ²úÉú°üÀ¨DBIºÍDBD-mysqlµÄPerlµÄÒ»¸ö¾²Ì¬°æ±¾¡£ÕâÖÖÔËÐз½·¨ÊÇÄãÉú³ÉÒ»¸öÁ´½ÓÁËDBI´úÂëµÄPerl°æ±¾²¢ÔÚ×îеÄPerlÉϰ²×°Ëü£¬È»ºóÄãʹÓÃËüÀ´¹¹Ô츽¼ÓÁ´½ÓÁËDBD´úÂëµÄPerl°æ±¾£¬²¢ÇÒ°²×°Ëü¡£ ÔÚ SCO ÉÏ£¬Äã±ØÐëÓÐÏÂÁл·¾³±äÁ¿ÉèÖ㺠shell> LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:/usr/progressive/lib »ò shell> LD_LIBRARY_PATH=/usr/lib:/lib:/usr/local/lib:/usr/ccs/lib:/usr/progressive/lib:/usr/skunk/lib shell> LIBPATH=/usr/lib:/lib:/usr/local/lib:/usr/ccs/lib:/usr/progressive/lib:/usr/skunk/lib shell> MANPATH=scohelp:/usr/man:/usr/local1/man:/usr/local/man:/usr/skunk/man: Ê×ÏÈ, ÔÚDBI·Ö·¢ËùÔÚĿ¼ÏÂÔËÐÐÏÂÁÐÃüÁ´´Ôì°üÀ¨Ò»¸ö¾²Ì¬Á´½ÓµÄPerl DBI£º shell> perl Makefile.PL LINKTYPE=static shell> make shell> make install shell> make perl È»ºóÄã±ØÐ밲װеÄPerl¡£make perlµÄÊä³ö½«ÏÔʾÕýÈ·µÄÄãÐèÒªÖ´ÐÐÊ©Ðа²×°µÄmakeµÄÃüÁî¡£ÔÚSCOÉÏ£¬ÊÇmake -f Makefile.aperl inst_perl MAP_TARGET=perl. ½ÓÏÂÀ´£¬ÔÚMsql-Mysql-modules·Ö·¢ËùÔÚĿ¼Ï£¬Ê¹ÓøղŴ´½¨µÄPerlÀ´´´½¨Í¬Ñù°üÀ¨Ò»¸ö¾²Ì¬Á´½ÓµÄPerlDBD::mysqlµÄÁíÒ»¸öPerl£º shell> perl Makefile.PL LINKTYPE=static shell> make shell> make install shell> make perl ×îºó, ÄãÓ¦¸Ã°²×°Õâ¸öеÄPerl¡£¶øÇÒ£¬make perlµÄÊä³öÖ¸³öʹÓõÄÃüÁî¡£ 4.11 ÏµÍ³ÌØ¶¨µÄÎÊÌâ ÏÂÃæµÄÕ½Ú˵Ã÷ÔÚ´ÓÔ´´úÂë·Ö·¢°²×°MySQLʱ£¬·¢ÉúÔÚÌØ¶¨µÄϵͳÉϲ¢Òѹ۲쵽µÄһЩÎÊÌâ¡£ 4.11.1 Solaris×¢ÒâÊÂÏî ÔÚSolarisÉÏ£¬ÉõÖÁÔÚÄã½â¿ªMySQL·Ö·¢ÒÔǰ£¬Äã¿ÉÄÜÏÝÈëÀ§¾³£¡Solaris tar²»ÄÜ´¦Àí³¤ÎļþÃû×Ö£¬Òò´ËÄãÔÚ´ò¿ªMySQLʱ£¬¿ÉÄÜ¿´µ½ÕâÑùµÄÒ»¸ö´íÎó£º x mysql-3.22.12-beta/bench/Results/ATIS-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase, 0 bytes, 0 tape blocks tar: directory checksum error ÔÚÕâÖÖÇé¿öÏ£¬Äã±ØÐëʹÓà GNU tar(gtar) ´ò¿ª·Ö·¢¡£ÄãÄÜÔÚhttp://www.mysql.com/Downloads/ÕÒµ½ÎªSolarisµÄÒ»¸öÔ¤±àÒëµÄ¿½±´¡£ SunµÄÔÉúÏß³ÌÖ»¹¤×÷ÔÚSolaris 2.5ºÍ¸ü¸ß°æ±¾ÉÏ¡£¶ÔÓÚ2.4ºÍ¸üÔçµÄ°æ±¾£¬MySQL½«×Ô¶¯µØÊ¹Óà MIT-pthreads ¡£¼û4.9 MIT-pthreads ×¢ÒâÊÂÏî¡£ Èç¹ûÄã´ÓÅäÖõõ½ÏÂÁдíÎó£º checking for restartable system calls... configure: error can not run test programs while cross compiling ÕâÒâζ×ÅÄãµÄ±àÒëÆ÷°²×°ÓÐЩÎÊÌ⣡ÔÚÕâÖÖÇé¿öÏ£¬ÄãÓ¦¸ÃÉý¼¶±àÒëÆ÷µ½Ò»¸ö¸üеİ汾¡£ÄãÒ²¿ÉÒÔ°ÑÏÂÁÐÐвåÈëµ½config.cacheÎļþÀ´½â¾öÕâ¸öÎÊÌ⣺ ac_cv_sys_restartable_syscalls=${ac_cv_sys_restartable_syscalls='no'} Èç¹ûÄãÔÚÒ»¸öSPARCÉÏʹÓÃSolaris£¬ÍƼöµÄ±àÒëÆ÷ÊÇegcs1.1.2 »ò¸üС£ÄãÄÜÔÚhttp://egcs.cygnus.com/ÕÒµ½Ëü¡£×¢Ò⣺egs1.1.1 ºÍgcc2.8.1 ²»ÄÜÔÚ SPARC ÉϿɿ¿µØ¹¤×÷£¡ µ±Ê¹ÓÃʱegcs1.1.2ʱ£¬ÍƼöµÄconfigureÃüÁîÐÐÊÇ£º shell> CC=gcc CFLAGS="-O6" CXX=gcc CXXFLAGS="-O6 -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-low-memory Èç¹ûÄãÓÐSun Workshop 4.2 ±àÒëÆ÷£¬ÄãÄÜÕâÑùÔËÐÐconfigure£º CC=cc CFLAGS="-xstrconst -Xa -xO4 -native -mt" CXX=CC CXXFLAGS="-xO4 -native -noex -mt" ./configure --prefix=/usr/local/mysql shell> CC=cc CFLAGS="-Xa -fast -xO4 -native -xstrconst -mt" CXX=CC CXXFLAGS="-noex -XO4 -mt" ./configure ÄãÒ²¿ÉÒÔ±à¼configure½Å±¾¸Ä±ä¸ÃÐУº #if !defined(__STDC__) || __STDC__ != 1 Ϊ£º #if !defined(__STDC__) Èç¹ûÄãʹÓÃ-XcÑ¡Ïî´ò¿ª__STDC__£¬Sun±àÒëÆ÷²»ÄÜÓà Solaris µÄ¡°pthread.h¡±Í·Îļþ±àÒë¡£ÕâÊÇSunµÄÒ»¸öbug¡£ Èç¹ûmysqldÔÚÔËÐÐʱ·¢³öÏÔʾÔÚÏÂÃæµÄ´íÎóÏûÏ¢£¬ÄãÒѾ³¢ÊÔÓÃSun±àÒëÆ÷±àÒëMySQL£¬Ã»ÓÐÆôÓöàÏß³ÌÑ¡Ôñ(-mt)£º libc internal error: _rmutex_unlock: rmutex not held Ôö¼Ó-mtµ½CFLAGSºÍCXXFLAGS²¢ÇÒÔÙÊÔÒ»ÊÔ¡£ Èç¹ûÄãÔÚÓÃgcc±àÒëMySQLʱµÃµ½ÏÂÁдíÎó£¬ËüÒâζ×ÅÄãµÄgccûÓжÔÄãµÄSolaris°æ±¾½øÐÐÅäÖã¡ shell> gcc -O3 -g -O2 -DDBUG_OFF -o thr_alarm ... ./thr_alarm.c: In function `signal_hand': ./thr_alarm.c:556: too many arguments to function `sigwait' ÔÚÕâÖÖÇé¿öÏÂÕýÈ·µÄ×ö·¨Êǵõ½×îа汾µÄegcs£¬²¢ÇÒÓÃÄ㵱ǰµÄgcc±àÒëÆ÷±àÒëËü£¡ÖÁÉÙ¶ÔÓÚ Solaris 2.5£¬¼¸ºõËùÓеÄgcc¶þ½øÖư汾¶¼Óоɵġ¢²»¿ÉÓõİüº¬Îļþ£¬½«ÆÆ»³Ê¹ÓÃÏ̵߳ÄËùÓгÌÐòµÄÎļþ(²¢ÇÒ¿ÉÄÜÊÇÆäËûµÄ³ÌÐò)£¡ Solaris²»ÌṩËùÓÐϵͳ¿âµÄ¾²Ì¬°æ±¾(libpthreadsºÍlibdl)£¬ËùÒÔÄã²»ÄÜÓÃ--static±àÒëMySQL¡£Èç¹ûÄã³¢ÊÔÕâÑù×ö£¬Ä㽫µÃµ½´íÎó£º ld: fatal: library -ldl: not found Èç¹ûÌ«¶à½ø³ÌÊÔͼºÜ¿ìµØÁ¬½Ómysqld£¬Ä㽫ÔÚMySQLÈÕÖ¾ÎļþÖп´¼ûÕâ¸ö´íÎó£º Error in accept: Protocol error Äã¿ÉÒÔÊÔ×ÅÓÃ--set-variable back_log=50Ñ¡ÏîÆô¶¯·þÎñÆ÷×÷ΪËüµÄÒ»¸ö½â¾ö°ì·¨¡£ Èç¹ûÄãÕýÔÚÁ´½ÓÄã×Ô¼ºµÄMySQL¿Í»§£¬µ±ÄãÊÔ×ÅÖ´ÐÐËüʱ£¬Äã¿ÉÄܵõ½ÏÂÁдíÎó£º ld.so.1: ./my: fatal: libmysqlclient.so.#: open failed: No such file or directory Õâ¸öÎÊÌâÄÜÓÃÏÂÁз½·¨Ö®Ò»±ÜÃ⣺ ÓÃÏÂÁбêÖ¾Á´½Ó¿Í»§(¶ø²»ÊÇ-Lpath)£º -Wl,r/full-path-to-libmysqlclient.so¡£ ¿½±´libmysqclient.soµ½¡°/usr/lib¡±¡£ ÔÚÔËÐÐÄãµÄ¿Í»§³ÌÐòǰ£¬°Ñlibmysqlclient.soËùÔÚĿ¼µÄ·¾¶Ãû¼Óµ½LD_RUN_PATHµÄ»·¾³±äÁ¿ÖС£ 4.11.2 Solaris 2.7 ×¢ÒâÊÂÏî ͨ³£ÄãÄÜÔÚ Solaris 2.7 ÉÏʹÓà Solaris 2.6 ¶þ½øÖÆ´úÂë¡£´ó¶àÊýSolaris 2.6 µÄÎÊÌâÒ²ÊÊÓÃÓÚSolaris 2.7¡£ ×¢Ò⣺MySQL3.23.4 ºÍ¸ü¸ß°æ±¾Ó¦¸ÃÄÜ×Ô¶¯¼ì²â Solaris 2.7 ²¢ÇÒÆôÓÃÏÂÁÐÎÊÌâµÄ½â¾ö°ì·¨£¡ Solaris 2.7 ÔÚ°üÀ¨ÎļþÖÐÓÐһЩbug£¬ÔÚʹÓÃgccʱ£¬Äã¿ÉÒÔ¿´¼ûÏÂÁдíÎó£º /usr/include/widec.h:42: warning: `getwc' redefined /usr/include/wchar.h:326: warning: this is the location of the previous definition Èç¹û³öÏÖÕâÖÖÇé¿ö£¬Äã¿ÉÒÔ×öÏÂÁÐÊÂÇé½â¾öÕâ¸öÎÊÌ⣺ ¿½±´/usr/include/widec.hµ½.../lib/gcc-lib/os/gcc-version/include²¢ÇҸıäµÚ41ÐУº #if !defined(lint) && !defined(__lint) Ϊ #if !defined(lint) && !defined(__lint) && !defined(getwc) ÁíÍ⣬Äã¿ÉÒÔÖ±½Ó±à¼¡°/usr/include/widec.h¡±¡£ÕâÁ½ÖÖ·½·¨£¬ÔÚÄã½øÐÐÐÞÕýÒÔºó£¬ÄãÓ¦¸Ãɾ³ý¡°config.cache¡±²¢ÇÒÔÙÔËÐÐconfigure£¡ Èç¹ûµ±ÄãÔËÐÐmakeʱ£¬ÄãµÃµ½ÏóÕâÑù´íÎó£¬ÄÇÊÇÒòΪconfigureû¼ì²â¡°curses.h¡±Îļþ(¿ÉÄÜÒòΪ/usr/include/widec.hµÄ´íÎó)£º In file included from mysql.cc:50: /usr/include/term.h:1060: syntax error before `,' /usr/include/term.h:1081: syntax error before `;' ½â¾öËüµÄ·½°¸ÊÇ×öÏÂÁв½ÖèÖ®Ò»£º ÈçÉÏËùÊö±à¼¡°/usr/include/widec.h¡±²¢ÇÒÔÙ´ÎÔËÐÐconfigure¡£ ´Ó¡°config.h¡±Îļþɾ³ý#define HAVE_TERMÐв¢ÔÙ´ÎÔËÐÐmake¡£ ÓÃCFLAGS=-DHAVE_CURSES CXXFLAGS=-DHAVE_CURSES ./configure½øÐÐÅäÖᣠ4.11.3 Solaris x86 ×¢ÒâÊÂÏî Èç¹ûÄãÕýÔÚÔÚ Solaris x86ÉÏʹÓÃgcc»òegcs£¬²¢ÇÒÄãÅöµ½ÁËÔÚ×°ÔØÊ±µÄºËÐÄÇãµ¹£¨core dump£©ÎÊÌ⣬ÄãÓ¦¸ÃʹÓÃÏÂÁÐconfigureÃüÁ shell> CC=gcc CFLAGS="-O6 -fomit-frame-pointer" CXX=gcc CXXFLAGS="-O6 -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql ÓÃlibstdc++¿âºÍÓëC++Òì³£´¦ÀíÀ´±ÜÃâÕâ¸öÎÊÌâ¡£ Èç¹ûÕâûÓаïÖú£¬ÄãÓ¦¸Ã±àÒëÒ»¸öµ÷ÊÔ°æ±¾²¢ÇÒÓÃÒ»¸ö×Ù¼£ÎļþÔËÐÐËü»òÔÚgdbÏÂÔËÐÐËü¡£¼ûG.1 µ÷ÊÔÒ»¸ö MySQL ·þÎñÆ÷¡£ 4.11.4 SunOS 4 ×¢ÒâÊÂÏî ÔÚ SunOS 4 ÉÏ£¬ ÐèÒªMIT-pthreads ±àÒëMySQL£¬·´¹ýÀ´ÕâÒâζ×ÅÄ㽫ÐèÒªGNU make¡£ һЩSunOS 4ϵͳµÄ¶¯Ì¬¿âºÍlibtoolÓÐÎÊÌâ¡£Äã¿ÉÒÔʹÓÃÏÂÁÐconfigureÐÐÀ´±ÜÃâÕâ¸öÎÊÌ⣺ shell> ./configure --disable-shared --with-mysqld-ldflags=-all-static µ±±àÒëreadlineʱ£¬Äã¿ÉÄܵõ½¹ØÓÚÖØ¸´¶¨ÒåµÄ¾¯¸æ£¬ÕâЩ¿ÉÒÔ±»ºöÂÔ¡£ µ±±àÒëmysqldʱºò£¬ ½«ÓÐһЩimplicit declaration of function¾¯¸æ£¬ÕâЩ¿ÉÒÔ±»ºöÂÔ¡£ 4.11.5 Linux ×¢ÒâÊÂÏî(ËùÓÐLinux°æ±¾) MySQLÔÚLinuxÉÏʹÓà LinuxThreads ¡£Èç¹ûÄãÕýÔÚʹÓÃÒ»¸öûÓÐglibc2µÄÀϵÄLinux°æ±¾£¬Äã±ØÐëÔÚ³¢ÊÔ±àÒëMySQLǰ°²×°LinuxThreads¡£http://www.mysql.com/Downloads/Linux ×¢Ò⣺µ«Äã×öINSERT DELAYEDʱ£¬ËùÓõİüÀ¨2.1.1¼°ÒÔǰµÄglibc°æ±¾ÔÚpthread_mutex_timedwait´¦ÀíÉÏÓÐÒ»¸öÖÂÃü´íÎó£¬Èç¹ûÄãÕýÔÚʹÓÃINSERT DELAYED£¬Äã±ØÐë°ÑÏÂÁв¹¶¡¼Óµ½ÄãµÄglibc¿âÖУºhttp£º//www.mysql.com/Downloads/Patches/glibc-pthread_cond_timedwait.patch¡£MySQL 3.23.7°üº¬Á˶ÔÕâ¸ö´íÎóµÄÒ»¸öÁÙʱ½â¾ö°ì·¨¡£ Èç¹ûÄã²»ÄÜÆô¶¯mysqld»òÈç¹ûmysql_install_db²»¹¤×÷£¬Çë¼ÌÐø¶ÁÏÂÈ¥£¡Õâ½ö·¢ÉúÔÚÓÐLinuxThreadsÎÊÌâ»òlibc/glibc¿âΪÌâµÄLinuxϵͳÉÏ¡£Óкܶà¼òµ¥µÄ½â¾ö°ì·¨ÈÃMySQL¹¤×÷£¡×î¼òµ¥ÊÇʹÓÃÕë¶ÔLinux x86µÄ¶þ½øÖư汾µÄMySQL£¨²»ÊÇRPM)£¬Õâ¸ö°æ±¾µÄÒ»¸öºÃµÄ·½ÃæÊÇËü¿ÉÄܱÈÄã±àÒëÄã×Ô¼ºµÄÈκΰ汾¿ì10%£¡¼û10.2.1 ±àÒëºÍÁ´½ÓÈçºÎÓ°Ïì MySQL µÄËÙ¶È¡£ ¶þ½øÖÆ·Ö·¢µÄÒ»¸öÒÑÖªÎÊÌâÊÇÓëʹÓÃlibcµÄ¸üÀϵÄLinuxϵͳ£¨ÈçRedHat 4.x »ò Slackware)£¬Ä㽫µÃµ½ÓйØÖ÷»úÃû½â¾öµÄһЩ·ÇÖÂÃüÎÊÌâ¡£¼û4.6.3.1 Linux×¢ÒâÊÂÏî¡£ ʹÓÃlibc.so.5.3.12£¬myisamchk½«¹ÒÆð£¬Éý¼¶µ½×îÐÂlibcÒÔ½â¾öÕâ¸öÎÊÌâ¡£ µ±Ê¹Óà LinuxThreads ʱ£¬Ä㽫¿´µ½×îÉÙ 3 ½ø³ÌÔÚÔËÐС£ÕâЩÊÂʵÉϵÄỊ̈߳¬¶ÔLinuxThreads¹ÜÀíÆ÷½«ÓÐÒ»¸öỊ̈߳¬Ò»¸öÏ̴߳¦ÀíÁ¬½Ó£¬»¹ÓÐÒ»¸öÏ̴߳¦Àí¸æ¾¯ºÍÐźš£ Èç¹ûÄãÓÃps¿´µ½ÁËÒ»¸öËÀµôµÄmysqldÊØ»¤½ø³Ì£¬Õâͨ³£Òâζ×ÅÄã·¢ÏÖÁËMySQLÀïÃæµÄÒ»¸ö´íÎó»òÄãÓÐÒ»¸ö±»ÆÆ»µµÄÊý¾Ý¿â±í¡£¼û18.1 Èç¹ûMySQL×ÜÊDZÀÀ£Ôõô°ì¡£ Èç¹ûÄãÕýÔÚʹÓÃLinuxThreads²¢ÇÒmysqladmin shutdown²»¹¤×÷£¬Äã±ØÐëÉý¼¶µ½ LinuxThreads 0.7.1 »ò¸üС£ Èç¹ûÄãÕýÔÚʹÓà RedHat £¬Äã¿ÉÄܵõ½ÏóÕâÑùµÄ´íÎó£º /usr/bin/perl is needed... /usr/sh is needed... /usr/sh is needed... Èç¹ûÊÇÕâÑù£¬ÄãÓ¦¸ÃÉý¼¶rpm°æ±¾µ½¡°rpm-2.4.11-1.i386.rpm¡±ºÍ¡°rpm-devel-2.4.11-1.i386.rpm¡±(»òÒÔºó)¡£ ÄãÄÜ´Óftp://ftp.redhat.com/updates/4.2/i386µÃµ½RedHat 4.2µÄ¿âÎļþÉý¼¶£¬»ò¶ÔÆäËû·Ö·¢http://www.sunsite.unc.edu/pub/Linux/distributions/redhat/code/rpm/¡£ Èç¹ûÄãÕýÔÚÁ´½ÓÄã×Ô¼ºµÄMySQL¿Í»§²¢Çҵõ½´íÎó£º ld.so.1: ./my: fatal: libmysqlclient.so.4: open failed: No such file or directory µ±Ö´ÐÐËüÃÇʱ£¬Õâ¸öÎÊÌâ¿ÉÓÃÏÂÁз½·¨Ö®Ò»±ÜÃ⣺ ÓÃÏÂÁбêÖ¾Á´½Ó¿Í»§(¶ø²»ÊÇ-Lpath)£º -Wl,r/path-libmysqlclient.so¡£ ¿½±´libmysqclient.soµ½¡°/usr/lib¡±¡£ ÔÚÔËÐÐÄãµÄ¿Í»§³ÌÐòǰ£¬°Ñlibmysqlclient.soËùÔÚĿ¼µÄ·¾¶Ãû¼Óµ½LD_RUN_PATHµÄ»·¾³±äÁ¿ÖС£ Èç¹ûÄãÕýÔÚʹÓà Fujitsu ±àÒëÆ÷(fcc / FCC)£¬±àÒëMySQLÄ㽫ÓÐһЩÎÊÌ⣬ÒòΪ Linux Í·ÎļþÃæÏògcc¡£ ÏÂÁÐconfigureÐÐÓ¦¸ÃÓëfcc/FCC¹¤×÷£º CC=fcc CFLAGS="-O -K fast -K lib -K omitfp -Kpreex -D_GNU_SOURCE -DCONST=const -DNO_STRTOLL_PROTO" CXX=FCC CXXFLAGS="-O -K fast -K lib -K omitfp -K preex --no_exceptions --no_rtti -D_GNU_SOURCE -DCONST=const -Dalloca=__builtin_alloca -DNO_STRTOLL_PROTO '-D_EXTERN_INLINE=static __inline'" ./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static --disable-shared --with-low-memory 4.11.5.1 Linux-x86 ×¢ÒâÊÂÏî MySQLÒªÇólibc°æ±¾ 5.4.12 »ò¸üУ¬ÒÑÖª¿É¹¤×÷ÔÚlibc 5.4.46¡£glibc°æ±¾2.0.6ºÍÒÔºó°æ±¾Ó¦¸ÃÒ²¹¤×÷¡£Ê¹ÓÃRedHatµÄglibc RPMÓÐһЩÎÊÌ⣬ËùÒÔÈç¹ûÄãÓÐÎÊÌ⣬¼ì²éÊÇ·ñÓÐÈκθüУ¡glibc2.0.7-19ºÍ2.0.7-29 RPMÒÑÖª¿ÉÒÔ¹¤×÷¡£ ÔÚһЩ¸üÀ쵀 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ºêÔö¼ÓÒ»¸ö¶îÍâÏ»®Ïß ('__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' ÔÚDebian GNU/LinuxÉÏ£¬Èç¹ûÄãÏëÒªÔÚϵͳÆô¶¯Ê±×Ô¶¯Æô¶¯MySQL£¬×öÏÂÁÐÃüÁ shell> cp support-files/mysql.server /etc/init.d/mysql.server shell> /usr/sbin/update-rc.d mysql.server defaults 99 mysql.server¿ÉÒÔÔÚMySQL°²×°Ä¿Â¼µÄ¡°share/mysql¡±Ä¿Â¼ÏÂÃæÕÒµ½, »òÔÚMySQLÔ´´úÂëÊ÷µÄ¡°support-files¡±Ä¿Â¼ÏÂÕÒµ½¡£ Èç¹ûmysqldÔÚËüÆô¶¯Ê±×ÜÊǺËÐÄÇãµ¹(core dump), ÎÊÌâ¿ÉÄÜÊÇÄãÓÐÒ»¸öÀϰ汾µÄ¡°/lib/libc.a¡±£¬ÖØÃüÃûËü£¬È»ºóɾ³ý¡°sql/mysqld¡±²¢ÇÒÖØÐÂmake installÔÙÊÔÒ»ÊÔ¡£Õâ¸öÎÊÌâÔÚһЩ Slackware °²×°Éϱ»±¨¸æÁË¡£ÓÐ×îа汾µÄglibcµÄRedHat 5.0Ò²ÓÐһЩÀàËÆµÄÎÊÌâ¡£¼û4.11.5.2 RedHat 5.0 ×¢ÒâÊÂÏî¡£ Èç¹ûÔÙÁ´½Ómysqldʱ£¬ÄãµÃµ½ÏÂÁдíÎó, ËüÒâζ×ÅÄãµÄ¡°libg++.a¡±Ã»ÓÐÕýÈ·°²×°£º /usr/lib/libc.a(putc.o): In function `_IO_putc': putc.o(.text+0x0): multiple definition of `_IO_putc' ÏñÕâÑùÔËÐÐconfigure£¬ÄãÄܱÜÃâʹÓá°libg++.a¡±£º shell> CXX=gcc ./configure 4.11.5.2 RedHat 5.0 ×¢ÒâÊÂÏî Èç¹ûÄãÔÚRedHatÉÏÓÐMySQLµÄÈκÎÎÊÌ⣬ÄãÓ¦¸Ã¿ªÊ¼Éý¼¶glibcµ½×îпÉÄܵİ汾£¡ Èç¹ûÄã°²×°ËùÓеĹٷ½RedHat²¹¶¡(°üÀ¨glibc-2.0.7-19ºÍglibc-devel-2.0.7-19)£¬MySQLµÄ¶þ½øÖÆ´úÂëºÍÔ´´úÂë·Ö·¢ÔËÐÐÓ¦¸ÃûÓÐÈκÎÂé·³£¡ ÒòΪÔÚglibc2.0.5ÀïÃæÓйØÈçºÎÊÍ·Åpthread_key_create±äÁ¿ÓÐÒ»¸ö´íÎ󣬸üÐÂÊÇÐèÒªµÄ¡£ÓÃglibc2.0.5£¬Äã±ØÐëʹÓÃÒ»¸ö¾²Ì¬µØÁ´½ÓµÄMySQL¶þ½øÖÆ·Ö·¢¡£Èç¹ûÄãÏëÒª´ÓÔ´´úÂë±àÒ룬Äã±ØÐë°²×°À´×ÔÓÚhttp://www.mysql.com/Downloads/Linux µÄLinuxThreadsÐÞÕý°æ±¾»òÉý¼¶ÄãµÄglibc¡£ Èç¹ûÄãÓÐÒ»¸ö²»ÕýÈ·µÄglibc»òLinuxThreads°æ±¾£¬Æä½á¹ûÊÇmysqldÔÚÿ¸öÁ¬½ÓÒÔºó±ÀÀ£¡£ÀýÈ磬mysqladmin versionÍê³Éºó£¬mysqld½«±ÀÀ££¡ ÁíÒ»¸ö²»ÕýÈ·µÄ¿âµÄÖ¢×´Êǵ±mysqldÆô¶¯Ê±£¬ÂíÉϱÀÀ£¡£ÔÚһЩLinuxϵͳÉÏ£¬Õâ¸öÎÊÌâ¿ÉÒÔͨ¹ýÕâÑùµÄÅäÖÃÀ´ÐÞÕý£º shell> ./configure -- with-mysqld-ldflags=-all-static ÔÚRedhat 5.0ÉÏ£¬ÈÝÒ׵ķ½·¨Êǰ²×°glibc2.0.7-19 RPM²¢ÔËÐÐconfigure --with-mysqld-ldflags=-all-staticÑ¡Ïî¡£ ¶ÔÓÚglibc2.0.7µÄÔ´´úÂë·Ö·¢£¬ÈÝÒ×ÔËÓò¢±»MySQL²âÊÔµÄÒ»¸ö²¹¶¡¿ÉÒÔÔÚÏÂÃæÕÒµ½£º http://www.mysql.com/Download/Linux/glibc-2.0.7-total-patch.tar.gz Èç¹ûµ±Äã¹¹ÔìMySQLʱ£¬ÄãÓÐÀàËÆÓÚÕâЩ±ÀÀ£µÄ¾Àú, Äã×ÜÄÜÏÂÔØµ½×îеÄMySQL¶þ½øÖư汾¡£ÕâÊǾ²Ì¬Á´½ÓµÄÒÔ±ÜÃâ¿â³åÍ»¶øÇÒÓ¦¸ÃÔÚËùÓеÄLinuxϵͳÉϹ¤×÷£¡ MySQL×Ô´øÒ»¸öÄÚ²¿µÄµ÷ÊÔÆ÷¿ÉÒÔÓкܶàÐÅÏ¢²úÉú×Ù¼£Îļþ£¬Äܱ»ÓÃÀ´·¢ÏÖ²¢½â¾ö´óÁ¿²»Í¬µÄÎÊÌâ¡£¼ûG.1 µ÷ÊÔÒ»¸öMySQL·þÎñÆ÷¡£ 4.11.5.3 RedHat 5.1 ×¢ÒâÊÂÏî RedHat 5.1µÄglibc(glibc2.0.7-13 )ÓÐÒ»¸öÄÚ´æÈ±ÏÝ£¬ËùÒÔÒªµÃµ½Ò»¸öÎȶ¨µÄMySQL°æ±¾£¬Äã±ØÐëÉý¼¶glibcµ½2.0.7-19¡¢½µ¼¶glibc»òʹÓÃÒ»¸ömysqldµÄ¶þ½øÖư汾¡£Èç¹ûÄã²»ÕâÑù×ö£¬Ä㽫Åöµ½ÄÚ´æÎÊÌâ(´æ´¢Æ÷Òç³ö£¬µÈµÈ, µÈµÈ)¡£ÔÚÕâÖÖÇé¿öÏ£¬×î³£¼ûµÄ´íÎóÊÇ£º Can't create a new thread (errno 11). If you are not out of available memory, you can consult the manual for any possible OS dependent bug ÔÚÄãÉý¼¶µ½glibc2.0.7-19ÒÔºó£¬Äã¿ÉÒÔÓö¯Ì¬Á´½Ó(ȱʡ)ÅäÖÃMySQL£¬µ«ÊÇÔÚÄã´ÓÔ´´úÂë°²×°ÁËglibc 2.0.7-19֮ǰ£¬Äã²»ÄÜÔËÐÐconfigure --with-mysqld-ldflags=-all-staticÑ¡Ï Äã¿ÉÒÔÓÃrpm -q glibc¼ì²éÄãÓÐglibcÄĸö°æ±¾¡£ 4.11.5.4 Linux-SPARC ×¢ÒâÊÂÏî ÔÚһЩʵÏÖÖУ¬readdir_r()±»ÆÆ»µÁË¡£ÆäÖ¢×´ÊÇSHOW DATABASES×ÜÊÇ·µ»ØÒ»¸ö¿Õ¼¯ºÏ¡£Õâ¿ÉÒÔͨ¹ýÔÚ±àÒëǰ´Ó¡°config.h¡±ÖÐɾ³ýHAVE_READDIR_R½øÐиüÕý¡£ ÓÐЩÎÊÌ⽫ÐèÒª¸øÄãµÄLinux°²×°´ò²¹¶¡¡£²¹¶¡¿ÉÔÚhttp://www.mysql.com/patches/Linux-sparc-2.0.30.diffÕÒµ½£¬Õâ¸ö²¹¶¡ÊÇÕë¶ÔLinux·Ö·¢¡°sparclinux-2.0.30.tar.gz¡±£¬ËüÃǿɴÓvger.rutgers.edu£¨Ò»¸ö´ÓÀ´Ã»ÓÐÓë¹Ù·½µÄ2.0.30°æºÏ²¢µÄ°æ±¾)µÃµ½¡£ÄãÒ²±ØÐë°²×°LinuxThreads 0.6»ò¸üС£ ¸Ðлjacques@solucorp.qc.caÌṩÕâ¸öÐÅÏ¢¡£ 4.11.5.5 Linux-Alpha×¢ÒâÊÂÏî ÔÚLinux-AlphaÉϵĴóÎÊÌâÈÔÈ»ÊÇÔÚÕâ¸öƽ̨ÉϵÄglibcµÄÏß³ÌÓÐһЩÎÊÌâ¡£ÄãÓ¦¸Ã´ÓµÃµ½ÄãÄÜÕÒµ½µÄ×îÐÂglibc°æ±¾¿ªÊ¼¡£ ×¢Ò⣺ÔÚÄãÔËÐÐÈκÎʹÓÃÏ̵߳ijÌÐò֮ǰ(Ïómysqld¡¢thr_alarm»òthr_lock)£¬ÄãÓ¦¸ÃÔö¼õ¹²Ïí´æ´¢Æ÷µÄÏÞÖÆ(ÓÃulimit)¡£Èç¹ûÄãÍü¼ÇÕâÑù×ö£¬MySQL»ù×¼²âÊÔÒÑÖªÊÇʧ°ÜµÄ£¡ ÓÃÏÂÁÐÃüÁîÅäÖÃMySQL£º shell> CC=gcc CCFLAGS="-Dalpha_linux_port" CXX=gcc CXXFLAGS="-O3 -Dalpha_linux_port -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql ÊÔÊÔ±àÒëmysys/thr_lockºÍmysys/thr_alarm£¬²âÊÔÕâЩ³ÌÐòµÄÔËÐУ¡£¨²»ÓòÎÊýµ÷ÓÃÿһ¸ö£¬Èç¹ûÒ»ÇÐÕý³££¬Ã¿¸öÓ¦¸ÃÒÔtest_succeeded½áÊø¡££© ÔÚ°²×°MySQLÒÔºó£¬ÔÚsafe_mysqldÀïÈ¥µôulimitÃüÁîµÄ×¢ÊÍ£¬²¢¼ÓÈëÑ¡ÏîÒÔÔö¼Ó¹²Ïí´æ´¢Æ÷¡£ ×¢Òâ¶ÔMySQLÀ´Ëµ£¬Linux-AlphaÈÔÈ»ÊÇÒ»¸öalphaÖÊÁ¿µÄƽ̨¡£ÓÃ×îÐÂglibc£¬ÄãÓÐÒ»¸öÈÃËü¹¤×÷µÄºÜºÃ»ú»á¡£ Èç¹ûÄãÓÃÐźŷ½ÃæµÄÎÊÌâ(MySQL³öÈËÒâÁϵØÔڸ߸ºÔØÏÂËÀµô)£¬Äã¿ÉÄÜÕÒµ½ÁËÒ»¸öÏ̺߳ÍÐźÅÓйصÄOS´íÎó¡£ÔÚÕâÖÖÇé¿öÏ£¬Äã¿ÉÒÔ¸æËßMySQLÈçÏÂÅäÖÃÒÔ²»Ê¹ÓÃÐźţº shell> CFLAGS=-DDONT_USE_THR_ALARM CXXFLAGS=-DDONT_USE_THR_ALARM ./configure ... Õâ²»Ó°ÏìMySQLÐÔÄÜ£¬µ«ÊÇÓи±×÷Ó㬾ÍÊÇÄã²»ÄÜÓÃmysqladmin kill»òmysqladmin shutdownɱËÀÔÚÒ»¸öÁ¬½ÓÉÏ¡°Ë¯Ãß¡±µÄ¿Í»§¡£Ïà·´£¬µ±¿Í»§·¢³öÏÂÒ»¸öÃüÁîʱ£¬Ëü½«ËÀµô¡£ 4.11.5.6 MkLinux ×¢Òâ MySQLÓ¦¸ÃÄܹ¤×÷ÔÚÓÐ×îÐÂglibc°üµÄMkLinuxÉÏ(ÓÃglibc2.0.7²âÊÔ¹ý)¡£ 4.11.5.7 Qube2 Linux×¢ÒâÊÂÏî ΪÁËÈÃMySQLÔÚQube2ÉϹ¤×÷£¬(Linux Mips)£¬ÄãÐèÒª×îеÄglibc¿â(glibc-2.0.7-29C2ÒÑÖª¿É¹¤×÷)¡£ÄãÒ²±ØÐëʹÓÃegcsC++±àÒëÆ÷(egcs-1.0.2-9»ò¸üÐÂ)¡£ 4.11.6 Alpha-DEC-Unix ×¢ÒâÊÂÏî µ±ÔÚDigital UNIXϱàÒëÏ̳߳ÌÐòʱ£¬ÎĵµÍƼö¶ÔÓÚccºÍcxxʹÓÃ-pthreadÑ¡Ïî¶øÇÒ¿âÎļþÓÃ-lmach -lexc£¨³ýÁË-lpthreadÍâ)¡£ÄãÓ¦¸ÃÏóÏÂÃæÕâÑùÔËÐÐconfigure£º shell> CC="cc -pthread" CXX="cxx -pthread -O" ./configure --with-named-thread-libs="-lpthread -lmach -lexc -lc" µ±±àÒëmysqldʱ£¬Äã¿ÉÄÜ¿´¼ûÕâÑùһЩ¾¯¸æ£º mysqld.cc: In function void handle_connections()': mysqld.cc:626: passing long unsigned int *' as argument 3 of accept(int,sockadddr *, int *)' Äã¿ÉÒÔ°²È«µØºöÂÔÕâЩ¾¯¸æ£¬ËûÃǵķ¢ÉúÊÇÒòΪconfigureÖ»Äܼì²â³ö´íÎ󣬶ø²»ÊǾ¯¸æ¡£ Èç¹ûÄãÖ±½Ó´ÓÃüÁîÐÐÆô¶¯·þÎñÆ÷£¬µ±ÄãÍ˳öʱ£¬Äã¿ÉÄÜÓÐËÀµôµÄÎÊÌâ¡££¨µ±ÄãÍ˳öʱ£¬ÄãµÄÖØÒª½ø³ÌÊÕµ½Ò»¸öSIGHUPÐźÅ)£¬Èç¹ûÈç´Ë£¬ÊÔ×ÅÏóÕâÑùÆô¶¯·þÎñÆ÷£º shell> nohup mysqld [options] & nohupʹµÃ¸úËæËüµÄÃüÁîºöÊÓ´ÓÖÕ¶Ë·¢À´µÄÈκÎSIGHUPÐźÅÁË¡£ÁíÍ⣬ͨ¹ýÔËÐÐsafe_mysqldÆô¶¯·þÎñÆ÷£¬ËüΪÄãʹÓÃnohupµ÷ÓÃmysqld¡£ 4.11.7 Alpha-DEC-OSF1×¢ÒâÊÂÏî Èç¹ûÄãÓбàÒëÎÊÌâ²¢°²×°ÁËDECCCºÍgcc£¬³¢ÊÔÕâÑùÔËÐÐconfigure£º shell> CC=cc CFLAGS=-O CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql Èç¹ûÄãµÃµ½¡°c_asm.h¡±ÎļþµÄÎÊÌ⣬Äã¿ÉÒÔ´´½¨²¢Ê¹ÓÃÒ»¸ö¡°ÑÆ(dummy)¡±¡°c_asm.h¡±Îļþ£º shell> touch include/c_asm.h shell> CC=gcc CFLAGS=-I./include CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql ÔÚOSF1 V4.0DºÍ±àÒëÆ÷"DEC C V5.6-071 on Digital UNIX V4.0 (Rev. 878)" ÉÏ£¬±àÒëÆ÷ÓÐÁËÒ»Ð©Ææ¹ÖµÄÐÐΪ(䶨Òåasm±êÖ¾)¡£/bin/ldºÃÏóÒ²±»ÆÆ»µ(µ±Á´½Ómysqldʱ£¬·¢Éú_exit undefinedÎÊÌâ)¡£ÔÚÕâ¸öϵͳÉÏ£¬´ÓOSF 4.0CµÄ°æ±¾Ìæ»»ÁË/bin/ldºó£¬ÎÒÃÇÉè·¨ÓÃÏÂÁÐconfigureÃüÁîÐбàÒëMySQL£¬£º shell> CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql ÓÃ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µÄijЩ°æ±¾ÖУ¬alloca()º¯Êý±»ÆÆ»µ£¬Í¨¹ýɾ³ý¶¨Òå'HAVE_ALLOCA'µÄ¡°config.h¡±µÄÐиüÕýËü¡£ alloca()º¯ÊýÒ²¿ÉÄÜÔÚ/usr/include/alloca.hÀïÃæÓÐÒ»¸ö²»ÕýÈ·µÄÔÐÍ£¬Ô´Óڴ˵ľ¯¸æ¿ÉÒÔºöÂÔ¡£ configure½«×Ô¶¯µØÊ¹ÓÃÏÂÁÐÏ߳̿⣺ --with-named-thread-libs="-lpthread -lmach -lexc -lc"¡£ µ±Ê¹ÓÃgccʱ£¬ÄãÒ²¿ÉÒÔÊÔÊÔÕâÑùÔËÐÐconfigure£º shell> CFLAGS=-D_PTHREAD_USE_D4 CXX=gcc CXXFLAGS=-O3 ./configure ¡¡ Èç¹ûÄãµÄÐźÅÓÐÎÊÌâ(MySQL³öÈËÒâÁϵØÔڸ߸ºÔØÏÂËÀµô)£¬Äã¿ÉÄÜÕÒµ½ÁËÒ»¸öÏ̺߳ÍÐźÅÓйصÄOS´íÎó¡£ÔÚÕâÖÖÇé¿öÏ£¬Äã¿ÉÒÔ¸æËßMySQLÈçÏÂÅäÖÃÒÔ²»Ê¹ÓÃÐźţº shell> CFLAGS=-DDONT_USE_THR_ALARM CXXFLAGS=-DDONT_USE_THR_ALARM ./configure ... Õâ²»Ó°ÏìMySQLÐÔÄÜ£¬µ«ÊÇÓиºÃæÐ§Ó¦£¬¾ÍÊÇÄã²»ÄÜÓÃmysqladmin kill»òmysqladmin shutdownɱËÀÔÚÒ»¸öÁ¬½ÓÉÏ¡°Ë¯Ãß¡±µÄ¿Í»§¡£Ïà·´£¬µ±¿Í»§·¢³öÏÂÒ»¸öÃüÁîʱ£¬Ëü½«ËÀµô¡£ 4.11.8 SGI-Irix ×¢ÒâÊÂÏî Äã¿ÉÄÜÐèÒªÔÚÔËÐÐconfigureºóÇÒÔÚ±àÒëǰȥµôÔÚ¡°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/patches/patchset/6.2_indigo.rps.HTML ×îСµØ£¬ÄãÓ¦¸Ã°²×°×îеĺËÐľí(rollup)¡¢×îеÄrld¾íºÍ×îеÄlibc¾í¡£ ºÜÃ÷È·£¬¶ÔÓÚpthreadsÖ§³Ö£¬ÄãÐèÒª±¾Ò³ÉÏËùÓеÄPOSIX²¹¶¡£º http://support.sgi.com/surfzone/patches/patchset/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 Ó¦¸ÃÒ²Óа²ÅÅÉϵÄÎÊÌⱨ¸æ¡£Èç¹ûÖ»ÓÐÒ»¸öÏß³ÌÕýÔÚÔËÐУ¬ÊÂÇé»á±äÂýµÄ¡£Í¨¹ýÆô¶¯ÁíÍâÒ»¸ö¿Í»§À´±ÜÃâËü£¬Õâ¿ÉÒÔµ¼Ö´˺óÆäËûÏ̵߳ÄÖ´ÐÐËÙ¶ÈÔö¼Ó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.11.9 FreeBSD ×¢ÒâÊÂÏî ¶ÔÓÚÔËÐÐMySQL£¬FreeBSD 3.xÊDZ»ÍƼöµÄ£¬ÒòΪÆäḬ̈߳üÊǸü¼ÓÍêÕû¡£ ×îÈÝÒ×Òò´ËÊDZȽÏÊÜϲ»¶µÄ°²×°·½·¨ÊÇʹÓÃ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µÄÒÔºó°æ±¾Ê¹ÓÃÔÉúÏß³ÌÔËÐÐÊÇ¿ÉÄܵ쬵«ÊÇÄã¿ÉÄÜÅöµ½mysqld¹ØµôµÄÎÊÌâ¡£ È·¶¨ÈÃÄãµÄÃû×Ö½âÎö³ÌÐò°²×°ÕýÈ·£¬·ñÔòµ±Á¬½Ó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 £©¡£ ÄãÓÃSELECT NOW()·µ»ØGMTÐÎʽµÄÖµ¶ø²»ÊÇÄãµÄ±¾µØÊ±¼ä£¬Èç¹ûÓÐÕâÑùµÄÎÊÌ⣬Äã±ØÐëÉ趨TZ»·¾³±äÁ¿ÎªÄãµÄµ±Ç°Ê±ÇøµÄ¡£ÕâÓ¦¸ÃÉèÖ÷þÎñÆ÷ÔËÐеĻ·¾³£¬ÀýÈçÔÚsafe_mysqld»òmysql.serverÀï¡£ ΪÁ˵õ½Ò»¸ö°²È«²¢ÇÒÎȶ¨µÄϵͳ£¬ÄãÓ¦¸ÃÖ»½öʹÓñ»±ê¼ÇΪ-STABLEµÄFreeBSDÄںˡ£ 4.11.10 NetBSD ×¢ÒâÊÂÏî ΪÁËNetBSDÉϱàÒ룬ÄãÐèÒªGNU make£¬·ñÔòµ±makeÊÔͼÔÚC++ÎļþÉÏÔËÐÐlintʱ£¬±àÒ뽫±ÀÀ£¡£ 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 ÊÔÊÔʹÓÃulimit -v 80000²¢ÔÙÔËÐÐmake¡£Èç¹ûÕ⻹²»Ðв¢ÇÒÄãÕýÔÚʹÓÃbash£¬ÊÔÊÔ»»µ½csh»òsh£»Ò»Ð©BSDIÓû§±¨¸æÁËÓëbashºÍulimitÓйØÎÊÌâ¡£ Èç¹ûÄãÕýÔÚʹÓÃgcc£¬ÄãÒ²¿ÉÄܱØÐëΪconfigureʹÓÃ--with-low-memory±êÖ¾²ÅÄܱàÒë¡°sql_yacc.cc¡±¡£ ÄãÓÃSELECT NOW()·µ»ØGMTÐÎʽµÄÖµ¶ø²»ÊÇÄãµÄ±¾µØÊ±¼ä£¬Èç¹ûÓÐÕâÑùµÄÎÊÌ⣬Äã±ØÐëÉ趨TZ»·¾³±äÁ¿ÎªÄãµÄµ±Ç°Ê±ÇøµÄ¡£ÕâÓ¦¸ÃΪ·þÎñÆ÷ÔËÐеĻ·¾³ÉèÖã¬ÀýÈçÔÚsafe_mysqld»òmysql.serverÀï¡£ 4.11.12.2 BSD/OS 3.x ×¢ÒâÊÂÏî Éý¼¶µ½BSD/OS 3.1¡£Èç¹ûÄDz»¿ÉÄÜ£¬°²×°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 ÏÂÁÐÒ²ÒÑÖª¿ÉÓ㺠shell> env CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql --with-unix-socket-path=/var/mysql/mysql.sock Èç¹ûÄãÔ¸Ò⣬Äã¿ÉÒԸıäĿ¼µØµã£¬»ò²»Ö¸¶¨ÈÎºÎµØµã¶øÊ¹ÓÃȱʡ¡£ Èç¹ûÄãÔÚÖØ¸ºÔÙϵÄÐÔÄÜÓÐÎÊÌ⣬ÊÔÊÔʹÓöÔsafe_mysqldʹÓÃ--skip-thread-priorityÑ¡ÏÕ⽫ÒÔÏàͬÓÅÏȼ¶ÔËÐÐËùÓÐỊ̈߳»ÔÚBSDI 3.1ÉÏ£¬ÕâµÃµ½½ÏºÃµÄÐÔÄÜ(ÖÁÉÙÖ±µ½BSDIÐÞÕýÆäÏ̵߳÷¶È³ÌÐò)¡£ Èç¹ûÄãÔÚ±àÒëʱµÃµ½virtual memory exhausted´íÎó£¬ÊÔÊÔʹÓÃulimit -v 80000²¢ÔÙÔËÐÐmake¡£Èç¹ûÕ⻹²»Ðв¢ÇÒÄãÕýÔÚʹÓÃbash£¬ÊÔÊÔ»»µ½csh»òsh£»Ò»Ð©BSDIÓû§±¨¸æÁËÓëbashºÍulimitÓйØÎÊÌâ¡£ 4.11.12.3 BSD/OS 4.x ×¢ÒâÊÂÏî BSDI 4.xÓÐһЩÏß³ÌÓйصĴíÎó¡£Èç¹ûÄãÏëÒªÔÚÕâÉÏÃæÊ¹ÓÃMySQL£¬ÄãÓ¦¸Ã°²×°ËùÓÐÓëÏß³ÌÏà¹ØµÄ²¹¶¡£¬ÖÁÉÙÓ¦¸Ã°²×°M400-023¡£ 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)£¬ÕâÊDZØÒªµÄ£¬ÒòΪÔÚSkunkware 97ÉϵÄGNU gcc 2.7.2 ûÓÐGNU as¡£ÄãÒ²¿ÉÒÔʹÓÃegcs1.1.2»ò¸üУºhttp://www.egcs.com/¡£Èç¹ûÄãÕýÔÚʹÓÃegcs1.1.2£¬Äã±ØÐëÖ´ÐÐÏÂÁÐÃüÁ 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°æ±¾ÉÏÊDZØÐèµÄ£¬Äã²»ÄÜֻʹÓÃGCC Devϵͳ¡£ ÄãÓ¦¸ÃµÃµ½ FSU Pthreads °ü²¢ÇÒÊ×ÏȰ²×°Ëü£¬Ëü¿ÉÔÚhttp://www.cs.wustl.edu/~ schmidt/ACE_wrappers/FSU-threads.tar.gzÕÒµ½¡£ÄãÒ²¿ÉÒÔ´Óftp://www.mysql.com/pub/mysql/Downloads/SCO/FSU-threads-3.5c.tar.gzµÃµ½Ò»¸öÔ¤±àÒëµÄ°ü¡£ 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¡±Ä¿Â¼ÏÂÔËÐÐ./configure²¢ÇÒÑ¡ÔñSCO OpenServerÑ¡Ïî¡£Õâ¸öÃüÁ±´¡°Makefile.SCO5¡±µ½¡°Makefile¡±¡£ ÔËÐÐmake¡£ ΪÁËÔÚȱʡµÄ¡°/usr/include¡±Ä¿Â¼°²×°£¬×÷ΪrootµÇ¼£¬È»ºócd µ½¡°thread/src¡±Ä¿Â¼£¬²¢ÔËÐÐmake install¡£ ¼ÇµÃÔÚÖÆ×÷MySQLʱҪʹÓÃGNU make¡£ ÔÚOSR 5.0.5ÉÏ£¬ÄãÓ¦¸ÃʹÓÃÏÂÁÐÅäÖÃÃüÁîÐУº shell> CC="gcc -DSCO" CXX="gcc -DSCO" ./configure ÐèÒª-DSCO°ïÖúÅäÖÃÕýÈ·¼ì²âһЩÏ̺߳¯Êý¡£Èç¹ûÄãÍü¼Ç-DSCO£¬ÔÚ±àÒëʱ£¬Ä㽫µÃµ½ÏÂÁдíÎóÏûÏ¢£º my_pthread.c: In function `my_pthread_mutex_init': my_pthread.c:374: `pthread_mutexattr_default' undeclared (first use this function) Èç¹ûÄã²»ÊÇ×÷ΪrootÆô¶¯safe_mysqld£¬Ä㽫¿ÉÄÜÿ½ø³ÌÖ»ÓÐȱʡµÄ110¸ö´ò¿ªÎļþ¡£mysqld½«ÔÚÈÕÖ¾ÎļþдϹØÓڴ˵Ä×¢½â¡£ ÓÃSCO 3.2 V5.0.5£¬ÄãÓ¦¸ÃʹÓÃÒ»¸öFSU Pthreads°æ±¾3.5c»ò¸üС£ÏÂÁÐconfigureÃüÁîÓ¦¸Ã¹¤×÷£º shell> CC="gcc -belf" ./configure --prefix=/usr/local/mysql --disable-shared ÓÃSCO 3.2V4.2£¬ÄãÓ¦¸ÃʹÓÃÒ»¸öFSU Pthreads°æ±¾3.5c»ò¸üС£ÏÂÁÐconfigureÃüÁîÓ¦¸Ã¹¤×÷£º shell> CFLAGS="-D_XOPEN_XPG4" CXX=gcc CXXFLAGS="-D_XOPEN_XPG4" ./configure --with-debug --prefix=/usr/local/mysql --with-named-thread-libs="-lgthreads -lsocket -lgen -lgthreads" --with-named-curses-libs="-lcurses" Äã¿ÉÄܵõ½Ò»Ð©°üÀ¨ÎļþµÄijЩÎÊÌâ¡£ÔÚÕâÖÖÇé¿öÏ£¬ÄãÄÜÔÚftp://www.mysql.com/pub/mysql/Downloads/SCO/SCO-3.2v4.2-includes.tar.gzÕÒµ½ÐµÄSCOÌØ¶¨µÄ°üÀ¨Îļþ¡£ÄãÓ¦¸ÃÔÚÄãµÄMySQLÔ´´úÂëÊ÷µÄ¡°include¡±Ä¿Â¼Ï´ò¿ªÕâ¸öÎļþ¡£ 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¡±£º OLD: NEW: CC = cc CC = gcc -belf CCCDLFLAGS = -KPIC -W1,-Bexport CCCDLFLAGS = -fpic CCDLFLAGS = -wl,-Bexport CCDLFLAGS = LD = ld LD = gcc -belf -G -fpic LDDLFLAGS = -G -L/usr/local/lib LDDLFLAGS = -L/usr/local/lib LDFLAGS = -belf -L/usr/local/lib LDFLAGS = -L/usr/local/lib LD = ld LD = gcc -belf -G -fpic OPTIMISE = -Od OPTIMISE = -O1 OLD: CCCFLAGS = -belf -dy -w0 -U M_XENIX -DPERL_SCO5 -I/usr/local/include NEW: CCFLAGS = -U M_XENIX -DPERL_SCO5 -I/usr/local/include ÕâʱÈç¹ûËûÃÇÓÃicc»òcc±àÒ룬Perl¶¯Ì¬×°ÔØÆ÷(dynaloader)½«²»×°ÔØDBIÄ£¿é¡£ µ±ÓÃcc±àÒëʱ£¬Perl¹¤×÷µÃ×îºÃ¡£ 4.11.14 SCO Unixware 7.0 ×¢ÒâÊÂÏî Äã±ØÐëʹÓÃÒ»¸ö×îеÄMySQL°æ±¾£¬ÖÁÉÙÊÇ3.22.13£¬ÒòΪ¸Ã°æ±¾ÔÚUnixwareÏÂÃæ½â¾öÒ»Ð©ÒÆÖ²ÐÔÎÊÌâ¡£ ÔÚUnixWare 7.0.1ÉÏ£¬ÎÒÃÇ¿ÉÓÃÏÂÁÐconfigureµÄÃüÁî±àÒëMySQL£º shell> CC=cc CXX=CC ./configure --prefix=/usr/local/mysql 4.11.15 IBM-AIX ×¢ÒâÊÂÏî xlC×Ô¶¯¼ì²â´ÓAutoconf¶ªÊ§£¬µ±Ê¹Óà IBM ±àÒëÆ÷ʱ£¬ÐèÒªÈçÏÂÕâÑùÒ»¸öconfigureÃüÁ shell> CC="xlc_r -ma -O3 -qstrict -DHAVE_INT_8_16_32" CXX="xlC_r -ma -O3 -qstrict -DHAVE_INT_8_16_32" ./configure Èç¹ûÄãÕýÔÚʹÓÃegcs±àÒëMySQL£¬Äã±ØÐëʹÓÃ-fno-exceptions±êÖ¾£¬ÒòΪegcsµÃÒì³£´¦Àí²»ÊǶÔḬ̈߳²È«µÄ£¡£¨ÕâÓÃegcs1.1±»²âÊÔ¹ý)¡£ÔÚ AIX ÉÏʹÓÃegcsºÍgcc£

