¡¾·±ÌåÖÐÎÄ¡¿
¡¾ÉèΪÊ×Ò³¡¿
¡¾¼ÓÈëÊղء¿
µ±Ç°Î»ÖãºÊý¾Ý¿â¼¼ÊõÊ×Ò³ >> MySQL >> MySQLÖÐÎIJο¼ÊÖ²á5(°²×°MySQLÉÏ)

MySQLÖÐÎIJο¼ÊÖ²á5(°²×°MySQLÉÏ)

2007-03-15 08:00:00  ×÷Õߣº  À´Ô´£º»¥ÁªÍø  ä¯ÀÀ´ÎÊý£º0  ÎÄ×Ö´óС£º¡¾´ó¡¿¡¾ÖС¿¡¾Ð¡¡¿
¼ò½é£ºMySQLÖÐÎIJο¼ÊÖ²á5(°²×°MySQLÉÏ)www.iTbulo.comMVQGl×ªÔØ ÒëÕߣºêÌ×Ó ¡¼·µ»Ø¡½¡¼×ª·¢¡½ ÒëÕߣºêÌ×Ó (clyan@sohu.com)Ö÷Ò³£ºhttp://linuxdb.yeah.net 4 °²×°MySQL ±¾ÕÂÃèÊöÔõÑù»ñµÃ²¢°²×°MySQL£º ¶ÔÓÚÄãÄÜ´ÓÆä»ñ...
¹Ø¼ü×Ö£ºMySQL ÖÐÎÄ ²Î¿¼ ÊÖ²á

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£

ÔðÈα༭£ºadmin
Ïà¹ØÎÄÕÂ