¡¡¡¡
¡¡¡¡Ò»¸ö±ØÐë´æ´¢»ò·ÃÎÊ´óÁ¿ÐÅÏ¢µÄÓ¦ÓóÌÐò¿ÉÒÔ´ÓʹÓõÚÈý·½Êý¾Ý¿â²úÆ·ÖÐÊÜÒæ·Ëdz¡£ÔÚ¶ÔÐÅÏ¢µÄ·ÃÎʱØÐëÔÚ³ÌÐòµÄ¶à¸öʵÀýÉϽøÐÐʱ¸üÊÇÈç´Ë¡£»ùÓÚWebµÄÓ¦Ó㨰üÀ¨µç×ÓóÒ×£©¾ÍÊÇËüµÄÁ¼ºÃÀýÖ¤¡£
¡¡¡¡
¡¡¡¡ÎªÊ²Ã´Ê¹ÓöÀÁ¢Êý¾Ý¿â£¿
¡¡¡¡
¡¡¡¡Web·þÎñÆ÷±ØÐëʹÆä´¦Àí½Å±¾Óа취À´´æ´¢Óйع©ÆäÒÔºó·ÃÎʵÄ״̬ÐÅÏ¢¡£¾¡¹ÜÓпÉÄÜʹÓñȽÏÔʼһЩµÄ·½·¨--ÀýÈçת´¢µ½Îı¾Îļþ»ò¿ª·¢×ÔÖƵÄÃÔÄãÊý¾Ý¿â--µ«Ö»ÓгÉÊìµÄÊý¾Ý¿âÓ¦ÓòÅÄÜÌṩ¸üΪ¸´ÔÓµÄWebÓ¦ÓÃËùÐèµÄËùÓзþÎñ¡£ÒòΪÓÐһЩÃâ·Ñ»ñµÃµÄÈí¼þ°ü¿ÉÓÃÓÚ¸ÃÄ¿µÄ£¬ËùÒÔ±àд¶¨ÖƵÄÌض¨ÓÚÓ¦ÓõÄÊý¾Ý¿âÒýÇæ²¢ÎÞÌ«´óºÃ´¦¡£ ÁíÍ⣬ʹÓõÚÈý·½Êý¾Ý¿â»¹Ê¹Web¿ª·¢Õß²»±ØͶÈëµ½¿ª·¢ºÍά»¤Êý¾Ý¿âµÄÈÎÎñÖС£
¡¡¡¡
¡¡¡¡MySQLÊý¾Ý¿â
¡¡¡¡
¡¡¡¡Í¨¹ýʹÓýű¾ÓïÑԺͱàÒëÐÍϵͳÓïÑÔ£¨ÀýÈç C£©£¬½«Êý¾Ý¿â¼¯³Éµ½LinuxÓ¦ÓþͿÉÄÜÏ൱ÈÝÒס£¿ÉÃâ·Ñ»ñµÃµÄMySQL£¨ÔÚGNU Public LicenseÏ·¢ÐУ©Êý¾Ý¿âÌṩÁËһϵÁи´ÔÓµÄSQL¹¦ÄÜ£¬²¢Ò×ÓÚ¼¯³Éµ½Ó¦ÓÃÖС£MySQLÊÇ¿ìËÙ¡¢¶àÏ̵߳ģ¬²¢Ö§³ÖANSIºÍODBC SQL±ê×¼¡£¼ÓÉϵÚÈý·½Èí¼þ£¬MySQL¾ÍÖ§³ÖÓÃÓÚÊÂÎñ´¦ÀíÓ¦ÓõÄÊÂÎñ°²È«µÄ±í¡£
¡¡¡¡
¡¡¡¡×¢£ºÊ²Ã´ÊÇÊÂÎñ´¦Àí£¿
¡¡¡¡
¡¡¡¡ÊÂÎñÊÇÐèÒªÒÔÔ×Ó·½Ê½Ö´ÐеĶÔÊý¾Ý¿âËù×öµÄһϵÁиü¸Ä¡£ËüÃÇҪô±ØÐëÈ«²¿Ö´ÐУ¬ÒªÃ´Ò»¸ö¶¼²»Ö´ÐС£ ÀýÈ磬ÔÚWebÉÏÏúÊÛ²úƷʱËùÓбØÐèµÄÊý¾Ý¿â¸ü¸Ä×é³ÉÒ»¸öÊÂÎñ¡£
¡¡¡¡
¡¡¡¡Êý¾Ý¿âÐèҪͬʱ¼õÈ¥¿Í»§ÕÊ»§Óà¶îºÍ²úÆ·¿â´æ£¬·ñÔòʧ°Ü²¢ÇÒÒ»¸ö²Ù×÷¶¼²»Ö´ÐС£
¡¡¡¡
¡¡¡¡ÎÞÂÛ·þÎñÆ÷³öÓÚºÎÖÖÔÒò·¢Éú±ÀÀ£¶¼²»Ó¦¸ÃÒýÆðÊÂÎñ±»²¿·ÖÖ´ÐС£ÀýÈçÕʵ¥¶àËã¡¢²úƷûÓн»¸¶£¬»òÕß¿â´æ²»ÊµµÈ¶¼ÓпÉÄÜÊDz¿·ÖÍê³ÉµÄÊÂÎñµÄ½á¹û¡£
¡¡¡¡
¡¡¡¡Ö§³ÖÊÂÎñ´¦ÀíµÄÊý¾Ý¿â¿ÉÒÔ½«Ò»×éÊý¾Ý¿â´úÂë·â×°ÔÚÒ»¸öÊÂÎñÖУ¬ÔÚÊÂÎñÖ´ÐÐÆÚ¼äµÄÈκÎʧ°Ü»áÈÃÊý¾Ý¿â»Ø¹öµ½ÊÂÎñ¿ªÊ¼Ö®Ç°µÄ״̬¡£
¡¡¡¡
¡¡¡¡ÕâÊÇͨ¹ýά»¤ËùÓÐÊý¾Ý¿â²Ù×÷µÄÈÕÖ¾£¬ÒÔ¼°ÆäÔʼ״̬±íµÄ¸±±¾À´ÊµÏֵģ¬ÔÚʧ°ÜºóÏÂÒ»´ÎÖØÐÂÆô¶¯·þÎñÆ÷ʱÔÊÐí»Ø¹ö²Ù×÷¡£ ÕâÖÖʱ¼äºÍ¿Õ¼äÉϵĿªÏúÊÇÊÂÎñ°²È«Êý¾Ý¿âϵͳËù±ØÐèµÄÒ»ÖÖÕÛÖÔ¡£
¡¡¡¡
¡¡¡¡µ¥Ò»MySQL·þÎñÆ÷¿ØÖÆ×ÅһϵÁÐÊý¾Ý¿â£¬ËüÃǶ¼¿ÉÒÔͨ¹ý·þÎñÆ÷ÒÔÀàËÆ·½Ê½À´·ÃÎÊ¡£ ÿ¸öÊý¾Ý¿âʵ¼ÊÉ϶¼ÊÇÒ»×éÈÎÒâÊýÁ¿µÄ±í£¬¸ÅÄîÓëÆäËüSQLÊý¾Ý¿âµÄÓû§ÀàËÆ¡£Ã¿¸ö±í¶¼ÓÉ´øÀàÐ͵ÄÊý¾ÝÁÐ×é³É¡£ Êý¾Ý¿ÉÒÔÊÇÕûÊý¡¢ÊµÊýÖµ¡¢×Ö·û´®»òÆäËüÀàÐÍ£¬°üÀ¨Ôʼ¶þ½øÖÆÁ÷¡£ ±íÖеÄÿһÐж¼ÊÇ´æ´¢ÔÚÊý¾Ý¿âÖеÄÒ»¸ö¼Ç¼¡£
¡¡¡¡
¡¡¡¡MySQL±»Éè¼ÆºÍ¹¹Ôì³É¿Í»§»ú£¯·þÎñÆ÷¡£ ·þÎñÆ÷mysqld¿ÉÒÔÔÚÄÜ´ÓÒòÌØÍø·ÃÎʵ½µÄÈκλúÆ÷ÉÏÔËÐУ¨×îºÃÓëWeb·þÎñÆ÷ÔÚͬһ̨»ò×î½Ó½üµÄһ̨»úÆ÷ÉÏ£¬ÒÔÈ·±£ºÏÀíµÄÏìӦʱ¼ä£©¡£MySQL¿Í»§»úʹÓÃÇëÇóÀ´ÓëMySQL·þÎñÆ÷ÁªÏµ£¬Ð޸Ļò²éѯ·þÎñÆ÷ËùÓµÓеÄÊý¾Ý¿â¡£ ÔÚÖ§³ÖÊý¾Ý¿âµÄWebÓ¦ÓóÌÐòÖУ¬Êý¾Ý¿â¿Í»§»úÊÇWeb·þÎñÆ÷»òÓÉWeb·þÎñÆ÷²úÉúµÄCGI½Å±¾¡£ ÕâЩ¿Í»§»ú¿ÉÒÔÓø߼¶½Å±¾ÓïÑÔ»òµÍ¼¶ÏµÍ³ÓïÑÔ±àд£¬Ö»Òª´æÔÚÕâÖÖÓïÑÔµÄÊý¾Ý¿âAPI¼´¿É¡£ÔÚLinuxÖУ¬´ó¶àÊý½Å±¾ÓïÑÔÊÇÒÔC ʵÏֵģ¬ÒòΪ´æÔÚMySQL C API£¬ËùÒÔÒª½«MySQLÖ§³ÖÌí¼Óµ½ÈκÎÏÖÓеĽű¾ÓïÑÔ»ò¹¤¾ßÓ¦¸ÃºÜÈÝÒס£¾ø´ó²¿·Ö½Å±¾ÓïÑÔÒѾÍê³ÉÁËÕâÒ»²½¡£
¡¡¡¡
¡¡¡¡MySQL API
¡¡¡¡
¡¡¡¡MySQL API¿ÉÓÃÓÚ¸÷ÖÖÓïÑÔ£¬°üÀ¨¼¸ºõËùÓбàдÍøÕ¾ºó¶ËËùʵ¼ÊʹÓõÄÓïÑÔ¡£ ʹÓÃÕâЩAPI£¬ÎÒÃÇ¿ÉÒÔ¹¹½¨ÓÉWeb·þÎñÆ÷¿ØÖÆµÄ MySQL¿Í»§»ú¡£
¡¡¡¡
¡¡¡¡API£¨ÓÃÓÚÊý¾Ý¿â·ÃÎÊ£©ÒÔ»ùÓÚÁ¬½ÓµÄģʽ¹¤×÷¡£¿Í»§»ú±ØÐë×öµÄµÚÒ»¼þÊÂÊÇ´ò¿ªÓëMySQL·þÎñÆ÷µÄÁ¬½Ó¡£ Õâ°üÀ¨Êʵ±µØʹÓ÷þÎñÆ÷ÈÏʶµÄÓû§ÃûºÍ¿ÚÁîÀ´¶ÔÁ¬½Ó½øÐÐÉí·ÝÈÏÖ¤¡£½¨Á¢ÁËÁ¬½Óºó£¬·þÎñÆ÷Ñ¡ÔñҪʹÓõÄÌض¨Êý¾Ý¿â¡£ È·¶¨Á˳õʼ»¯ºó£¬¿Í»§»úÓ¦ÓóÌÐò£¨¾ÍÎÒÃÇÀ´ËµÊÇ·þÎñÆ÷·½CGI½Å±¾£©¾ÍÄÜ×ÔÓɵØÓëÊý¾Ý¿âÒÔÁ½ÖÖ·½Ê½ÖеÄÒ»ÖÖ½øÐн»»¥£º¿ÉÒÔÔËÐг£¹æSQLÃüÁ°üÀ¨Ìí¼ÓºÍɾ³ý±í£¬ÒÔ¼°ÏòËüÃÇÌí¼Ó¼Ç¼£»Ò²¿ÉÒÔ¶Ô·µ»Ø½á¹ûµÄÊý¾Ý¿âÔËÐвéѯ¡£ ²éѯÉú³ÉÒ»×éÓë²éѯƥÅäµÄ¼Ç¼£¬È»ºó£¬¿Í»§»ú¿ÉÒÔÖðÒ»·ÃÎʼǼ£¬Ö±µ½²é¿´ÍêËùÓмǼ£¬»òÕß¿Í»§»úÈ¡ÏûÔݹҵļǼ¼ìË÷¡£Ò»µ©½Å±¾Íê³ÉÁ˶ÔÊý¾Ý¿âµÄ²Ù×÷ºó£¬Óë·þÎñÆ÷µÄÁ¬½Ó¾Í±»¹Ø±Õ¡£
¡¡¡¡
¡¡¡¡Òª¹¹½¨¼¯³ÉÊý¾Ý¿â·ÃÎʵÄÍøÕ¾£¬ÐèÒª±àдCGI½Å±¾À´¸ù¾ÝÊý¾Ý¿â״̬Éú³É¶¯Ì¬½á¹û¡£Web·þÎñÆ÷Æô¶¯CGI½Å±¾£¬È»ºó½«Êʵ±¸ñʽ»¯µÄHTMLÊä³öµ½ËüÃǵıê×¼Êä³öÁ÷ÖС£Web·þÎñÆ÷²¶×½µ½HTMLºó½«Ëü·¢Ëͻؿͻ§»ú£¬ÈçͬÇëÇóÊǶԾ²Ì¬HTMLÒ³Ãæ½øÐеÄÄÇÑù¡£ ÔÚÉú³É HTML µÄ¹ý³ÌÖУ¬½Å±¾¿ÉÒÔÐÞ¸ÄÊý¾Ý¿â£¬Ò²¿ÉÒÔ²éѯ²¢½«½á¹ûºÏ²¢µ½ËüÃǵÄÊä³öÖС£
¡¡¡¡
¡¡¡¡×÷Ϊ¼òµ¥½âÊÍÉÏÊö¹ý³ÌµÄÒ»¸öʾÀý£¬ÏÂÃæµÄ´úÂ루ÒÔCºÍTcl±àд£©²éѯһ¸ö°üº¬Ä³¹«Ë¾¹©ÏúÊ۵IJúÆ·Çåµ¥µÄÊý¾Ý¿â¡£ Õâ¾øûÓÐʹÓÃÁ½ÖÖÓïÑÔMySQL APIµÄËùÓÐÌØÐÔ£¬µ«ÌṩÁË¿ìËÙ¡¢¼òÒ×À©Õ¹µÄʾÀý£¬¿ÉÒÔ¶ÔÊý¾Ý¿âÄÚÈÝÖ´ÐÐÈκÎSQLÃüÁî¡£ ÔÚ¸ÃÀýÖУ¬½Å±¾ÏÔʾÁ˵ÍÓÚÌض¨¼Û¸ñµÄËùÓвúÆ·¡£ ÔÚʵ¼ùÖУ¬Óû§¿ÉÄÜÔÚWebä¯ÀÀÆ÷ÖÐÊäÈë¸Ã¼Û¸ñ£¬È»ºó½«Ëü·¢¸ø·þÎñÆ÷¡£ ÎÒÃÇÊ¡È¥ÁË´Ó»·¾³±äÁ¿ÖнøÐжÁÈ¡À´È·¶¨ HTML ±íµ¥ÖµµÄϸ½Ú£¬ÒòΪËüÓë²»Ö§³ÖÊý¾Ý¿âµÄ CGI ½Å±¾ÖÐÖ´ÐеÄÇé¿öûÓÐʲô²î±ð¡£ ΪÇåÎúÆð¼û£¬ÎÒÃǼÙÉèÊÂÏÈÉèÖÃÁËÌض¨Ò»Ð©²ÎÊý£¨ÀýÈçÒª²éѯµÄ¼Û¸ñ£©¡£
¡¡¡¡
¡¡¡¡ÒÔÏ´úÂëÊÇʹÓÃÃâ·Ñ»ñµÃµÄTcl Generic Database InterfaceÒÔTclʵÏֵġ£ÕâÑùÒ»Öֽӿڵĺô¦ÔÚÓÚTclÊǽâÊÍÐ͵ģ¬¿ÉÒÔ¶Ô´úÂë½øÐÐѸËÙ¿ª·¢ºÍ¿ìËÙÐ޸ġ£
¡¡¡¡
¡¡¡¡TclʾÀý
¡¡¡¡
¡¡¡¡#This code prints out all products in the database
¡¡¡¡# that are below a specified price (assumed to have been determined
¡¡¡¡# beforehand, and stored in the variable targetPrice)
¡¡¡¡# The output is in HTML table format, appropriate for CGI output
¡¡¡¡
¡¡¡¡#load the SQL shared object library. the Tcl interpreter could also
¡¡¡¡#have been compiled with the library, making this line unnecessary
¡¡¡¡load /home/aroetter/tcl-sql/sql.so
¡¡¡¡
¡¡¡¡#these are well defined beforehand, or they could
¡¡¡¡#be passed into the script
¡¡¡¡set DBNAME "clientWebSite";
¡¡¡¡set TBLNAME "products";
¡¡¡¡set DBHOST "backend.company.com"
¡¡¡¡set DBUSER "mysqluser"
¡¡¡¡set DBPASSWD "abigsecret"
¡¡¡¡
¡¡¡¡set targetPrice 200;
¡¡¡¡
¡¡¡¡#connect to the database
¡¡¡¡set handle [sql connect $DBHOST $DBUSER $DBPASSWD]
¡¡¡¡sql selectdb $handle $DBNAME ;# get test database
¡¡¡¡
¡¡¡¡#run a query using the specified sql code
¡¡¡¡sql query $handle "select * from $TBLNAME where price <= $targetPrice"
¡¡¡¡
¡¡¡¡
¡¡¡¡#print out html table header
¡¡¡¡puts "
Product Id | Description | Price (\$)"
¡¡¡¡ ¡¡¡¡#output table rows - each fetchrow retrieves one result ¡¡¡¡#from the sql query ¡¡¡¡while {[set row [sql fetchrow $handle]] != ""} { ¡¡¡¡¡¡¡¡set prodid [lindex $row 0] ¡¡¡¡¡¡¡¡set descrip [lindex $row 1] ¡¡¡¡¡¡¡¡set price [lindex $row 2] ¡¡¡¡¡¡¡¡puts " |
---|---|---|
$prodid | $descrip | $price"
¡¡¡¡} ¡¡¡¡ ¡¡¡¡puts " |
¡¡¡¡
¡¡¡¡#empty the query result buffer - should already be empty in this case
¡¡¡¡sql endquery $handle
¡¡¡¡#close the db connection - in practice this same connection
¡¡¡¡#is used for multiple queries
¡¡¡¡sql disconnect $handle
¡¡¡¡
¡¡¡¡ÏÂÃæµÄ´úÂëÊÇʹÓÃÕýʽMySQL C++ API MySQL++ÒÔC++±àдµÄµÈ¼Û½Å±¾¡£¸Ã°æ±¾µÄÓÅÊÆÔÚÓÚËüÊDZàÒëÐ͵ģ¬Òò´Ë±È½âÊÍÓïÑÔ¸ü¿ì¡£¾³£ÓÃÔÚÌض¨Õ¾µãµÄÊý¾Ý¿â´úÂëÓ¦¸ÃÒÔC»òC++±àд£¬È»ºóÓɽű¾»òÖ±½ÓÓÉWeb·þÎñÆ÷·ÃÎÊ£¬ÒԸĽøÕûÌåÔËÐÐʱ¼ä¡£
¡¡¡¡
¡¡¡¡C++ʾÀý
¡¡¡¡
¡¡¡¡#include
¡¡¡¡#include
¡¡¡¡#include
¡¡¡¡
¡¡¡¡const char *DBNAME = "clientWebSite";
¡¡¡¡const char *DBTABLE = "products";
¡¡¡¡const char *DBHOST = "backend.company.com";
¡¡¡¡const char *DBUSER = "mysqluser";
¡¡¡¡const char *DBPASSWD = "abigsecret":
¡¡¡¡
¡¡¡¡int main() {
¡¡¡¡¡¡try {
¡¡¡¡¡¡¡¡//open the database connection and query
¡¡¡¡¡¡¡¡Connection con(DBNAME, DBHOST, DBUSER, DBPASSWD);
¡¡¡¡¡¡¡¡Query query = con.query();
¡¡¡¡
¡¡¡¡¡¡¡¡//write valid sql code to the query object
¡¡¡¡¡¡¡¡query << "select * from " << DBTABLE;
¡¡¡¡
¡¡¡¡¡¡¡¡//run the query and store the results
¡¡¡¡¡¡¡¡Result res = query.store();
¡¡¡¡
¡¡¡¡¡¡¡¡//write out the html table header
¡¡¡¡¡¡¡¡cout << "
Product Id | Description"
¡¡¡¡ << " | Price ($)" << endl;
¡¡¡¡ ¡¡¡¡¡¡¡¡Result::iterator curResult; ¡¡¡¡ Row row; ¡¡¡¡ ¡¡¡¡¡¡¡¡//iterate over each result and put it into an html table ¡¡¡¡¡¡¡¡for (curResult = res.begin(); curResult != res.end(); curResult++) { ¡¡¡¡¡¡¡¡¡¡row = *curResult; ¡¡¡¡¡¡¡¡¡¡cout << " |
---|---|---|
" << row[0]
¡¡¡¡¡¡¡¡¡¡ ¡¡ << " | " << row[1]
¡¡¡¡¡¡¡¡¡¡ ¡¡ << " | " << row[2] << endl;
¡¡¡¡ ¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡cout << " |
¡¡¡¡
¡¡¡¡¡¡} catch (BadQuery er) {
¡¡¡¡¡¡¡¡// handle a bad query (usually caused by a sql syntax error)
¡¡¡¡¡¡¡¡cerr << "Error: " << er.error <<¡¡endl;
¡¡¡¡¡¡¡¡return -1;
¡¡¡¡
¡¡¡¡¡¡} catch (BadConversion er) {
¡¡¡¡ //handle conversion errors out of the database as well
¡¡¡¡¡¡¡¡cerr << "Error: Can't convert \"" << er.data << "\" to a \""
¡¡¡¡ << er.type_name << "\"." << endl;
¡¡¡¡¡¡¡¡return -1;
¡¡¡¡¡¡}
¡¡¡¡¡¡return 0;
¡¡¡¡}
¡¡¡¡
¡¡¡¡°²È«ÐÔ
¡¡¡¡
¡¡¡¡ÔÚWebÉÏ´´½¨ÒÔWebÖ§³ÖµÄÓ¦ÓÃÓÐһЩ¿ª·¢ÕßÐèÒª¿¼ÂǵÄÎÊÌâ¡£ËùÓÐÓйØWeb·þÎñÆ÷ÉÏCGI³ÌÐòµÄÎÊÌ⣬ÀýÈçWeb·þÎñÆ÷´¦ÀíÐí¿ÉȨºÍ½Å±¾·½µÄÊäÈë¼ì²é£¬Ò²ÈÔÈ»ÐèÒª¿¼ÂÇ¡£
¡¡¡¡
¡¡¡¡³ý´ËÖ®Í⣬ά»¤Êý¾Ý¿âϵͳµÄ°²È«ÐÔÒ²ºÜÓбØÒª¡£ÕâÉæ¼°±£»¤Êý¾Ý¿â·þÎñÆ÷µÄÐí¿ÉȨϵͳ£¬ÒÔ¼°Ê¹´ÓÊý¾Ý¿â¿Í»§»úµ½·þÎñÆ÷µÄÁ¬½Ó°²È«¡£
¡¡¡¡
¡¡¡¡MySQLÌṩÁËÉîÈëµÄ°²È«ÐÔϵͳ£¬ÓÐÈËÐÎÈÝËüÊÇ¡°¸ß¼¶µ«²»±ê×¼¡±¡£MySQLÔÊÐí¸ù¾ÝÓû§Ãû¡¢¿Í»§»úÖ÷»úºÍÒª·ÃÎʵÄÊý¾Ý¿â¶Ô¿Í»§»ú½øÐзÃÎÊ¡£Òª´´½¨°²È«µÄϵͳ£¬ÈÃËùÓÐÓû§Ê¹ÓÃÇ¿¿ÚÁ²»Òª¸øËûÃÇÈκÎËûÃDz»ÊǾø¶ÔÐèÒªµÄ·ÃÎÊȨ¡£Õâ°üÀ¨±íÃæÉÏÎÞº¦µÄÌØȨ£¬ÀýÈç¿ÉÒÔÈÃÓû§²é¿´ËùÓÐÕýÔÚÔËÐеĽø³Ì£¨°üÀ¨¸ü¸ÄÆäËûÓû§¿ÚÁîµÄÄÇЩ£©µÄ´¦ÀíÌØȨ¡£×îºÃµÄ°ì·¨ÊÇÒÔÎÞÌØȨµÄUnixÓû§ÔËÐзþÎñÆ÷½ø³Ì±¾Éí£¬ÕâÑùÈç¹ûÒ»¸öÊý¾Ý¿â±»Ð¹Â¶£¬Ò²²»ÖÁÓÚ»÷¿åÕû¸öϵͳ¡£ ÕâÓëÒÔÓû§nobody¶ø·ÇrootÓû§ÔËÐÐhttpdÀàËÆ¡£ ÃèÊöϵͳ·ÃÎʵıíÊÇ×÷Ϊµ¥¶ÀµÄMySQLÊý¾Ý¿â´æ´¢µÄ£¬¿ÉÒÔÓÉMySQL rootÓû§¸üС£ Çë×¢Ò⣬MySQL·þÎñÆ÷¸ù¾ÝMySQLÓû§ÃûÊÚÓèÌØȨ£¬ÕâЩÓû§ÃûÓëUnixÓû§Ãû²»Í¬¡£²»¹ý£¬ÓÐÒ»¸öMySQL rootÓû§Ãû£¬Ëü¶ÔÊý¾Ý¿âÓÐÈ«²¿È¨ÏÞ¡£ Ò»µ©·þÎñÆ÷È·¶¨ÁËÁ¬½Ó¿Í»§»úÊÇË£¬ÒÔ¼°ËüÃÇÔÚ³¢ÊÔÁ¬½Óʲô֮ºó£¬¾Í¸ù¾Ý¸ø¶¨µÄÒ»×éȨÏÞÀ´¿ØÖÆ·ÃÎÊȨ¡£Òª·ÀÖ¹·ÃÎʱíÖÐÖ÷»úÃû±»DNSµç×ÓÆÛÆ£¬¿ÉÒÔÊäÈëËùÓÐÖ÷»úµÄIPµØÖ·£¬»òÇëÇó·þÎñÆ÷½«IPµØÖ·½âÎö»ØÔʼÖ÷»úÃûÀ´Ê¹ÆäËûÈ˽ػñDNSÇëÇóºÍ»Ø´ð¸üÀ§ÄÑ¡£
¡¡¡¡
¡¡¡¡³ýÁË·þÎñÆ÷·ÃÎʱíÒÔÍ⣬Óë·þÎñÆ÷µÄͨÐÅÒ²±ØÐëºÜ°²È«¡£´Ó¿Í»§»úµÇ¼µ½·þÎñÆ÷ÉÏʱ£¬¿ÚÁî²»ÒÔ´¿Îı¾·½Ê½·¢ËÍ£»²»¹ýËùÓкóÐø SQL ÃüÁÒÔ´¿Îı¾·½Ê½·¢ËÍ¡£Îª´ïµ½¸ü¸ßµÄ°²È«ÐÔ£¬Ê¹ÓÃsshÀ´ÉèÖö˿Úת·¢¡£Ëü½«·þÎñÆ÷ºÍ¿Í»§»úÖ®¼äµÄËùÓÐͨÐŽøÐмÓÃÜ£¬·ÀÖ¹ÓÐÈËÔÚ´«ÊäÖй۲ìËü¡£À´×Ô¿Í»§»úµÄÊý¾Ý·¢Ë͵½¿Í»§»ú±¾µØ»úÆ÷Öб¾µØssh·þÎñÆ÷ËùÕìÌýµÄ¶Ë¿ÚÉÏ¡£ËüÓɱ¾µØssh·þÎñÆ÷ʹÓ㬼ÓÃܺó·¢Ë͸øÔ¶³Ìssh·þÎñÆ÷£¬ÓÉËü½øÐнâÃܲ¢×ª·¢µ½MySQL·þÎñÆ÷¶Ë¿Ú¡£
¡¡¡¡
¡¡¡¡ÔÚʵ¼ÊÖУ¬×ȫµÄ·½·¨ÊÇÔÚ Web ·þÎñÆ÷ËùÔڵĻúÆ÷ÉÏÔËÐÐÊý¾Ý¿â·þÎñÆ÷£¬²¢ÈÃÓÉWeb·þÎñÆ÷²úÉúµÄCGI½Å±¾Í¨¹ýUNIX£¨±¾µØ£©Ì×½Ó×ÖÓëMySQL·þÎñÆ÷½øÐÐͨÐÅ¡£¸ÃÉèÖÿÉÒÔÈÃÊý¾Ý¿â¹ÜÀíÔ±½ûÓÃËùÓÐÓëMySQL·þÎñÆ÷µÄÔ¶³ÌÁ¬½Ó¡£Èç¹ûWebºÍÊý¾Ý¿â·þÎñÆ÷±ØÐëλÓÚ²»Í¬µÄ»úÆ÷ÉÏ£¬¼ÓÃÜËüÃÇÖ®¼äµÄËùÓÐͨÐÅ£¬»òÕß½«Á½Ì¨»úÆ÷ͨ¹ýÆä×Ô¼º×¨Óõġ¢ÎïÀíÉϸôÀëµÄÍøÂçÁ¬½Ó¡£Ö»´´½¨Ò»¸öÓÉWeb·þÎñÆ÷ʹÓõÄÓû§ÕÊ»§£¨³ý root Óû§Í⣩ÒԵǼµ½Êý¾Ý¿â·þÎñÆ÷¡£
¡¡¡¡
¡¡¡¡ÓÉÊý¾Ý¿âÇý¶¯µÄÍøÕ¾ÊÇһЩ¹¦ÄÜÇ¿´óµÄ¹¤¾ß£¬¿ÉÒÔÈÿª·¢Õß´´½¨Ìṩ¸üÐÂÐÅÏ¢µÄ¶¯Ì¬Õ¾µã£¬²¢ÈÃÓÉ¿Í»§»ú·¢ÆðµÄ¸ü¸ÄÔÚ¶à¸ö»á»°Ö®¼ä³ÖÐø¡£ºó¶ËÊý¾Ý¿âµÄʹÓöÔÓÚ¹ÜÀíµç×ÓóÒ׺ÍÆäËüÓ¦ÓõÄÓû§À´Ëµ±Ø²»¿ÉÉÙ¡£Í¨¹ýʹÓÿÉÃâ·Ñ»ñµÃµÄÈí¼þ£¬ÓпÉÄܽ¨Á¢ÓÉÊý¾Ý¿âÇý¶¯µÄÕ¾µã£¬°²È«µØ½«Êý¾Ý¿âÁ¬Í¨ÐÔ¼¯³Éµ½Õ¾µãÏÖÓеÄCGIÌåϵ½á¹¹ÖС£
jerry520 ÓÚ 2009-03-27 16:44:35·¢±í:
ºÇºÇ,²»´í°¡!ѧϰÁË.
Myiozzdoc ÓÚ 2005-10-03 00:08:47·¢±í:
Ö§³Ö
WWW ÓÚ 2005-08-15 00:28:17·¢±í:
ѧϰ
zzy020128 ÓÚ 2005-07-09 09:24:46·¢±í:
Ö§³Ö°¡
²»¹ýµÄ¶«Î÷