VFP ·R¥ÎªÌªÀ°Ï ­º­¶ VFP ·R¥ÎªÌªÀ°Ï
¥»°Q½×°Ï¬° Visual Foxpro ·R¥ÎªÌ¸gÅç¥æ¬yªº¦a¤è, ½Ð¦h¦h§Q¥Î"·j´M"ªº¥\¯à, ¥ý¬d¬Ý¬Ý¦³µL«e¨Ò¥i´`, ¦pªGÁÙ¦³¤£À´ªº¦Aµo°Ý. ³¡¥÷¥DÃD¦³ªþ¥[ÀÉ®×, ¶·¥ýµù¥U¦¨¬°ªÀ°Ï©~¥Á¤~¥i¥H¤U¸ü.
 
 ±`¨£°ÝÃD±`¨£°ÝÃD   ·j´M·j´M   ·|­û¦Cªí·|­û¦Cªí   ·|­û¸s²Õ·|­û¸s²Õ   ·|­ûµù¥U·|­ûµù¥U 
 ­Ó¤H¸ê®Æ­Ó¤H¸ê®Æ   µn¤JÀˬd±zªº¨p¤H°T®§µn¤JÀˬd±zªº¨p¤H°T®§   µn¤Jµn¤J

[Âà¶K]MySQL¸ê®Æ®w¦w¥þ°t¸m

 
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> SQL °Q½×°Ï
¤W¤@½g¥DÃD :: ¤U¤@½g¥DÃD  
µoªí¤H ¤º®e
Ruey



µù¥U®É¶¡: 2003-03-12
¤å³¹: 1698
¨Ó¦Û: tunglo

²Ä 1 ¼Ó

µoªíµoªí©ó: ¬P´Á¤T ¤Q¤ë 08, 2003 6:34 pm    ¤å³¹¥DÃD: [Âà¶K]MySQL¸ê®Æ®w¦w¥þ°t¸m ¤Þ¨¥¦^ÂÐ

1¡B«e¨¥

MySQL ¬O§¹¥þºô¸ô¤Æªº¸ó¥­»OÃö«Y«¬¼Æ¾Ú®w¨t²Î¡A¦P®É¬O¨ã¦³«È¤á¾÷/¦øªA¾¹Åé¨tµ²ºcªº¤À´²¦¡¸ê®Æ®wºÞ²z¨t²Î¡C¥¦¨ã¦³¥\¯à±j¡B¨Ï¥Î²«K¡BºÞ²z¤è«K¡B¹B¦æ³t«×§Ö¡B¦w¥þ¥i¾a©Ê±jµ¥ÀuÂI¡A¥Î¤á¥i§Q¥Î³\¦h»y¨¥½s¼g³X°ÝMySQL ¸ê®Æ®wªºµ{¦¡¡A¯S§O¬O»PPHP§ó¬O¶Àª÷²Õ¦X¡A¹B¥Î¤Q¤À¼sªx¡C

¥Ñ©óMySQL¬O¦h¥­»Oªº¸ê®Æ®w¡A¥¦ªºÀq»{°t¸m­n¦Ò¼{¦UºØ±¡ªp¤U³£¯à¾A¥Î¡A©Ò¥H¦b§Ú­Ì¦Û¤vªº¨Ï¥ÎÀô¹Ò¤UÀ³¸Ó¶i¦æ¶i¤@¨Bªº¦w¥þ¥[©T¡C§@¬°¤@­ÓMySQLªº¨t²ÎºÞ²z­û¡A§Ú­Ì¦³³d¥ôºûÅ@MySQL¸ê®Æ®w¨t²Îªº¸ê®Æ¦w¥þ©Ê©M§¹¾ã©Ê¡C

MySQL¸ê®Æ®wªº¦w¥þ°t¸m¥²¶·±q¨â­Ó¤è­±¤J¤â¡A¨t²Î¤º³¡¦w¥þ©M¥~³¡ºô¸ô¦w¥þ¡A¥t¥~§Ú­ÌÁÙ±N²³æ¤¶²Ð½sµ{®É­nª`·Nªº¤@¨Ç°ÝÃD¥H¤Î¤@¨Ç¤p¬ªù¡C

2¡B¨t²Î¤º³¡¦w¥þ

­º¥ý²³æ¤¶²Ð¤@¤UMySQL¸ê®Æ®w¥Ø¿ýµ²ºc¡CMySQL¦w¸Ë¦n¡A¹B¦æ¤Fmysql_db_install¸}¥»¥H«á´N·|«Ø¥ß¸ê®Æ¥Ø¿ý©Mªì©l¤Æ¸ê®Æ®w¡C¦pªG§Ú­Ì¥ÎMySQL·½½X¥]¦w¸Ë¡A¦Ó¥B¦w¸Ë¥Ø¿ý¬O/usr/local/mysql¡A¨º»ò¸ê®Æ¥Ø¿ý¤@¯ë·|¬O/usr/local/mysql/var¡C¸ê®Æ®w¨t²Î¥Ñ¤@¨t¦C¸ê®Æ®w²Õ¦¨¡A¨C­Ó¸ê®Æ®w¥]§t¤@¨t¦C¸ê®Æ®wªí¡CMySQL¬O¥Î¸ê®Æ®w¦W¦b¸ê®Æ¥Ø¿ý«Ø¥ß«Ø¥ß¤@­Ó¸ê®Æ®w¥Ø¿ý¡A¦U¸ê®Æ®wªí¤À§O¥H¸ê®Æ®wªí¦W§@¬°ÀɮצW¡A°ÆÀɦW¤À§O¬°MYD¡BMYI¡Bfrmªº¤T­ÓÀÉ©ñ¨ì¸ê®Æ®w¥Ø¿ý¤¤¡C

MySQLªº±ÂÅvªíµ¹¸ê®Æ®wªº³X°Ý´£¨Ñ¤FÆF¬¡ªº³\¥iÅv±±¨î¡A¦ý¬O¦pªG¥»¦a¥Î¤á¾Ö¦³¹ï®wÀɪºÅª³\¥iÅvªº¸Ü¡A§ðÀ»ªÌ¥u»Ý§â¸ê®Æ®w¥Ø¿ý¥´¥]«þ¨«¡AµM«á«þ¨ì¦Û¤v¥»¾÷ªº¸ê®Æ¥Ø¿ý¤U´N¯à³X°ÝÅѨúªº¸ê®Æ®w¡C©Ò¥HMySQL©Ò¦bªº¥D¾÷ªº¦w¥þ©Ê¬O³Ì­º­nªº°ÝÃD¡A¦pªG¥D¾÷¤£¦w¥þ¡A³Q§ðÀ»ªÌ±±¨î¡A¨º»òMySQLªº¦w¥þ©Ê¤]µL±q½Í°_¡C¨ä¦¸´N¬O¸ê®Æ¥Ø¿ý©M¸ê®ÆÀɮתº¦w¥þ©Ê¡A¤]´N¬O³\¥iÅv³]¸m°ÝÃD¡C

±qMySQL¥D¯¸¤@¨Ç¦Ñªºbinaryµo¦æª©¨Ó¬Ý¡A3.21.xxª©¥»¤¤¸ê®Æ¥Ø¿ýªºÄݩʬO775¡A³o¼Ë«D±`¦MÀI¡A¥ô¦ó¥»¦a¥Î¤á³£¥i¥HŪ¼Æ¾Ú¥Ø¿ý¡A©Ò¥H¸ê®Æ®wÀɫܤ£¦w¥þ¡C3.22.xxª©¥»¤¤¸ê®Æ¥Ø¿ýªºÄݩʬO770¡A³oºØÄݩʤ]¦³¨Ç¦MÀI¡A¥»¦aªº¦P²Õ¥Î¤á¬J¯àŪ¤]¯à¼g¡A©Ò¥H¸ê®ÆÀɮפ]¤£¦w¥þ¡C3.23.xxª©¥»¸ê®Æ¥Ø¿ýªºÄݩʬO700¡A³o¼Ë´N¤ñ¸û¦n¡A¥u¦³±Ò°Ê¸ê®Æ®wªº¥Î¤á¥i¥HŪ¼g¸ê®Æ®wÀÉ¡A«OÃÒ¤F¥»¦a¸ê®ÆÀɮתº¦w¥þ¡C

¦pªG±Ò°ÊMySQL¸ê®Æ®wªº¥Î¤á¬Omysql¡A¨º»ò¶H¦p¤Uªº¥Ø¿ý©MÀɪº¬O¦w¥þªº¡A½Ðª`·N¸ê®Æ¥Ø¿ý¤Î¤U­±ªºÄÝ©Ê¡G

shell>ls -l /usr/local/mysql
total 40


drwxrwxr-x 2 root root 4096 Feb 27 20:07 bin
drwxrwxr-x 3 root root 4096 Feb 27 20:07 include
drwxrwxr-x 2 root root 4096 Feb 27 20:07 info
drwxrwxr-x 3 root root 4096 Feb 27 20:07 lib
drwxrwxr-x 2 root root 4096 Feb 27 20:07 libexec
drwxrwxr-x 3 root root 4096 Feb 27 20:07 man
drwxrwxr-x 6 root root 4096 Feb 27 20:07 mysql-test
drwxrwxr-x 3 root root 4096 Feb 27 20:07 share
drwxrwxr-x 7 root root 4096 Feb 27 20:07 sql-bench
drwx------ 4 mysql mysql 4096 Feb 27 20:07 var

shell>ls -l /usr/local/mysql/var
total 8


drwx------ 2 mysql mysql 4096 Feb 27 20:08 mysql
drwx------ 2 mysql mysql 4096 Feb 27 20:08 test


shell>ls -l /usr/local/mysql/var/mysql
total 104

-rw------- 1 mysql mysql 0 Feb 27 20:08 columns_priv.MYD
-rw------- 1 mysql mysql 1024 Feb 27 20:08 columns_priv.MYI
-rw------- 1 mysql mysql 8778 Feb 27 20:08 columns_priv.frm
-rw------- 1 mysql mysql 302 Feb 27 20:08 db.MYD
-rw------- 1 mysql mysql 3072 Feb 27 20:08 db.MYI
-rw------- 1 mysql mysql 8982 Feb 27 20:08 db.frm
-rw------- 1 mysql mysql 0 Feb 27 20:08 func.MYD
-rw------- 1 mysql mysql 1024 Feb 27 20:08 func.MYI
-rw------- 1 mysql mysql 8641 Feb 27 20:08 func.frm
-rw------- 1 mysql mysql 0 Feb 27 20:08 host.MYD
-rw------- 1 mysql mysql 1024 Feb 27 20:08 host.MYI
-rw------- 1 mysql mysql 8958 Feb 27 20:08 host.frm
-rw------- 1 mysql mysql 0 Feb 27 20:08 tables_priv.MYD
-rw------- 1 mysql mysql 1024 Feb 27 20:08 tables_priv.MYI
-rw------- 1 mysql mysql 8877 Feb 27 20:08 tables_priv.frm
-rw------- 1 mysql mysql 428 Feb 27 20:08 user.MYD
-rw------- 1 mysql mysql 2048 Feb 27 20:08 user.MYI
-rw------- 1 mysql mysql 9148 Feb 27 20:08 user.frm


¦pªG³o¨ÇÀɪºÄÝ¥D¤ÎÄݩʤ£¬O³o¼Ë¡A½Ð¥Î¥H¤U¨â­Ó©R¥O­×¥¿¤§¡G

shell>chown -R mysql.mysql /usr/local/mysql/var
shell>chmod -R go-rwx /usr/local/mysql/var

¥Îroot¥Î¤á±Ò°Ê»·ºÝªA°È¤@ª½¬O¦w¥þ¤j§Ò¡A¦]¬°¦pªGªA°Èµ{¦¡¥X²{°ÝÃD¡A»·ºÝ§ðÀ»ªÌ·¥¦³¥i¯àÀò±o¥D¾÷ªº§¹¥þ±±¨îÅv¡CMySQL±q3.23.15ª©¥»¶}©l®É§@¤F¤p¤pªº§ï°Ê¡AÀq»{¦w¸Ë«áªA°È­n¥Îmysql¥Î¤á¨Ó±Ò°Ê¡A¤£¤¹³\root¥Î¤á±Ò°Ê¡C¦pªG«D­n¥Îroot¥Î¤á¨Ó±Ò°Ê¡A¥²¶·¥[¤W--user=rootªº°Ñ¼Æ(./safe_mysqld --user=root &)¡C¦]¬°MySQL¤¤¦³LOAD DATA INFILE©MSELECT ... INTO OUTFILEªºSQL»y¥y¡A¦pªG¬Oroot¥Î¤á±Ò°Ê¤FMySQL¦øªA¾¹¡A¨º»ò¡A¸ê®Æ®w¥Î¤á´N¾Ö¦³¤Froot¥Î¤áªº¼g³\¥iÅv¡C¤£¹LMySQLÁÙ¬O°µ¤F¤@¨Ç­­¨îªº¡A¤ñ¦pLOAD DATA INFILE¥u¯àŪ¥þ§½¥iŪªºÀÉ¡ASELECT ... INTO OUTFILE¤£¯àÂл\¤w¸g¦s¦bªºÀÉ¡C

¥»¦aªº¤é»xÀɤ]¤£¯à©¿µø¡A¥]¬Ashellªº¤é»x©MMySQL¦Û¤vªº¤é»x¡C¦³¨Ç¥Î¤á¦b¥»¦aµn³°©Î³Æ¥÷¸ê®Æ®wªº®É­Ô¬°¤F¹Ï¤è«K¡A¦³®É·|¦b©R¥O¦æ°Ñ¼Æùت½±µ±a¤F¸ê®Æ®wªº±K½X¡A¦p¡G

shell>/usr/local/mysql/bin/mysqldump -uroot -ptest test>test.sql
shell>/usr/local/mysql/bin/mysql -uroot -ptest

³o¨Ç©R¥O·|³Qshell°O¿ý¦b¾ú¥vÀÉùØ¡A¤ñ¦pbash·|¼g¤J¥Î¤á¥Ø¿ýªº.bash_historyÀÉ¡A¦pªG³o¨ÇÀɤ£·V³QŪ¡A¨º»ò¸ê®Æ®wªº±K½X´N·|¬ªº|¡C¥Î¤áµn³°¸ê®Æ®w«á°õ¦æªºSQL©R¥O¤]·|³QMySQL°O¿ý¦b¥Î¤á¥Ø¿ýªº.mysql_history¤å¥óùØ¡C¦pªG¸ê®Æ®w¥Î¤á¥ÎSQL»y¥y­×§ï¤F¸ê®Æ®w±K½X¡A¤]·|¦].mysql_history¤å¥ó¦Ó¬ªº|¡C©Ò¥H§Ú­Ì¦bshellµn³°¤Î³Æ¥÷ªº®É­Ô¤£­n¦b-p«áª½±µ¥[±K½X¡A¦Ó¬O¦b´£¥Ü«á¦A¿é¤J¸ê®Æ®w±K½X¡C
¥t¥~³o¨â­ÓÀɧڭ̤]À³¸Ó¤£Åý¥¦°O¿ý§Ú­Ìªº¾Þ§@¡A¥H¨¾¸U¤@¡C

shell>rm .bash_history .mysql_history
shell>ln -s /dev/null .bash_history
shell>ln -s /dev/null .mysql_history

¤Wªù³o¨â±ø©R¥O§â³o¨â­ÓÀÉÃìµ²¨ì/dev/null¡A¨º»ò§Ú­Ìªº¾Þ§@´N¤£·|³Q°O¿ý¨ì³o¨â­ÓÀÉùؤF¡C

3¡B¥~³¡ºô¸ô¦w¥þ

MySQL¸ê®Æ®w¦w¸Ë¦n¥H«á¡AUnix¥­»Oªºuserªí¬O³o¼Ëªº¡G

mysql> use mysql;
Database changed
mysql> select Host,User,Password,Select_priv,Grant_priv from user;

+-----------+------+----------+-------------+------------+
| Host | User | Password | Select_priv | Grant_priv |
+-----------+------+----------+-------------+------------+
| localhost | root | | Y | Y |
| redhat | root | | Y | Y |
| localhost | | | N | N |
| redhat | | | N | N |
+-----------+------+----------+-------------+------------+

4 rows in set (0.00 sec)

Windows¥­»Oªºuserªí¬O³o¼Ëªº¡G
mysql> use mysql;
Database changed
mysql> select Host,User,Password,Select_priv,Grant_priv from user;

+-----------+------+----------+-------------+------------+
| Host | User | Password | Select_priv | Grant_priv |
+-----------+------+----------+-------------+------------+
| localhost | root | | Y | Y |
| % | root | | Y | Y |
| localhost | | | Y | Y |
| % | | | N | N |
+-----------+------+----------+-------------+------------+

4 rows in set (0.00 sec)

§Ú­Ì¥ý¨Ó¬ÝUnix¥­»Oªºuserªí¡C¨ä¤¤redhat¥u¬O§Ú¸ÕÅç¾÷ªº¾÷¾¹¦W¡A©Ò¥H¹ê»Ú¤WUnix¥­»OªºMySQLÀq»{¥u¤¹³\¥»¾÷¤~¯à³s±µ¸ê®Æ®w¡C¦ý¬O¯Ê¬Ùroot¥Î¤á¤f¥O¬OªÅ¡A©Ò¥H·í°È¤§«æ¬Oµ¹root¥Î¤á¥[¤W¤f¥O¡Cµ¹¸ê®Æ®w¥Î¤á¥[¤f¥O¦³¤TºØ¤èªk¡G

1)¦bshell´£¥Ü²Å¤U¥Îmysqladmin©R¥O¨Ó§ïroot¥Î¤á¤f¥O:

shell>mysqladmin -uroot password test

³o¼Ë¡AMySQL¸ê®Æ®wroot¥Î¤áªº¤f¥O´N³Q§ï¦¨test¤F¡C¡]test¥u¬OÁ|¨Ò¡A§Ú­Ì¹ê»Ú¨Ï¥Îªº¤f¥O¤@©w¤£¯à¨Ï¥Î³oºØ©ö²qªº®z¤f¥O¡^

2)¥Îset password­×§ï¤f¥O¡G

mysql> set password for root@localhost=password('test');

³o®Éroot¥Î¤áªº¤f¥O´N³Q§ï¦¨test¤F¡C

3)ª½±µ­×§ïuserªíªºroot¥Î¤á¤f¥O¡G

mysql> use mysql;
mysql> update user set password=password('test') where user='root';
mysql> flush privileges;

³o¼Ë¡AMySQL¸ê®Æ®wroot¥Î¤áªº¤f¥O¤]³Q§ï¦¨test¤F¡C¨ä¤¤³Ì«á¤@¥y©R¥Oflush privilegesªº·N«ä¬O±j¨î¨ê·s°O¾ÐÅé±ÂÅvªí¡A§_«h¥ÎªºÁÙ¬O½w½Ä¤¤ªº¤f¥O¡A³o®É«Dªk¥Î¤áÁÙ¥i¥H¥Îroot¥Î¤á¤ÎªÅ¤f¥Oµn³°¡Aª½¨ì­«±ÒMySQL¦øªA¾¹¡C

§Ú­ÌÁ٬ݨìuser¬°ªÅªº°Î¦W¥Î¤á¡AÁöµM¥¦¦bUnix¥­»O¤U¨S¤°»ò³\¥iÅv¡A¦ý¬°¤F¦w¥þ°_¨£§Ú­ÌÀ³¸Ó§R°£¥¦¡G

mysql> delete from user where user='';

Windowsª©¥»MySQLªºuserªí¦³«Ü¤j¤£¦P¡A§Ú­Ì¬Ý¨ìHostÄæ¦ì°£¤FlocalhostÁÙ¦³¬O%¡C³oùØ%ªº·N«ä¬O¤¹³\¥ô·Nªº¥D¾÷³s±µMySQL¦øªA¾¹¡A³o¬O«D±`¤£¦w¥þªº¡Aµ¹§ðÀ»ªÌ³y¦¨¥i­¼¤§¾÷¡A§Ú­Ì¥²¶·§R°£HostÄæ¦ì¬°%ªº°O¿ý¡G

mysql>delete from user where host='%';

Àq»{root¥Î¤áªºªÅ±K½X¤]¬O¥²¶·­×§ï¡A¤TºØ­×§ï¤èªk©MUnix¥­»O¤@¼Ë¡C

§Ú­Ìª`·N¨ìHostÄæ¦ì¬°localhostªº°Î¦W¥Î¤á¾Ö¦³©Ò¦³ªº³\¥iÅv¡I´N¬O»¡¥»¦a¥Î¤á¥ÎªÅªº¥Î¤á¦W©MªÅªº¤f¥Oµn³°MySQL¸ê®Æ®w¦øªA¾¹¥i¥H±o¨ì³Ì°ªªº³\¥iÅv¡I©Ò¥H°Î¦W¥Î¤á¥²¶·§R°£¡I

mysql> delete from user where user='';

¹ïuserªí¾Þ§@¥H«á¤£­n§Ñ¤F¥Îflush privileges¨Ó±j¨î¨ê·s°O¾ÐÅé±ÂÅvªí¡A³o¼Ë¤~¯à¥Í®Ä¡C

Àq»{¦w¸ËªºWindowsª©MySQL¦s¦bªº¤£¦w¥þ¦]¯À¤Ó¦h¡A§Ú­Ì¦b¦w¸Ë«á¤@©w­n¶i¤@¨B°t¸m¡I

MySQLªº5­Ó±ÂÅvªí¡Guser, db, host, tables_priv©Mcolumns_priv´£¨Ñ«D±`ÆF¬¡ªº¦w¥þ¾÷¨î¡A±qMySQL 3.22.11¶}©l¤Þ¤J¤F¨â±ø»y¥yGRANT©MREVOKE¨Ó³Ð«Ø©M§R°£¥Î¤á³\¥iÅv¡A¥i¥H¤è«Kªº­­¨î­þ­Ó¥Î¤á¥i¥H³s±µ¦øªA¾¹¡A±q­þ¨½³s±µ¥H¤Î³s±µ«á¥i¥H°µ¤°»ò¾Þ§@¡C§@¬°MySQLºÞ²z­û¡A§Ú­Ì¥²¶·ÁA¸Ñ±ÂÅvªíªº·N¸q¥H¤Î¦p¦ó¥ÎGRANT©MREVOKE¨Ó³Ð«Ø¥Î¤á¡B±ÂÅv©MºMÅv¡B§R°£¥Î¤á¡C

¦b3.22.11ª©¥»¥H«eªºMySQL±ÂÅv¾÷¨î¤£§¹µ½¡A©M·sª©¥»¤]¦³¸û¤jªº¤£¦P¡A«Øij¤É¯Å¨ì³Ì·sª©¥»ªºMySQL¡C¡]¥»®Ñªº¾Þ§@¨Ò¤l¬O¥HMySQL 3.23.49
¬°¼Ë¥»¡^§Ú­Ì¥ý¨ÓÁA¸Ñ±ÂÅvªíªºµ²ºc¡C

1)MySQL±ÂÅvªíªºµ²ºc»P¤º®e¡G

mysql> desc user;

+-----------------+-----------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+-----------------+------+-----+---------+-------+
| Host | char(60) binary | | PRI | | |
| User | char(16) binary | | PRI | | |
| Password | char(16) binary | | | | |
| Select_priv | enum('N','Y') | | | N | |
| Insert_priv | enum('N','Y') | | | N | |
| Update_priv | enum('N','Y') | | | N | |
| Delete_priv | enum('N','Y') | | | N | |
| Create_priv | enum('N','Y') | | | N | |
| Drop_priv | enum('N','Y') | | | N | |
| Reload_priv | enum('N','Y') | | | N | |
| Shutdown_priv | enum('N','Y') | | | N | |
| Process_priv | enum('N','Y') | | | N | |
| File_priv | enum('N','Y') | | | N | |
| Grant_priv | enum('N','Y') | | | N | |
| References_priv | enum('N','Y') | | | N | |
| Index_priv | enum('N','Y') | | | N | |
| Alter_priv | enum('N','Y') | | | N | |
+-----------------+-----------------+------+-----+---------+-------+

17 rows in set (0.01 sec)

userªí¬O5­Ó±ÂÅvªí¤¤³Ì­«­nªº¤@­Ó¡A¦C¥X¥i¥H³s±µ¦øªA¾¹ªº¥Î¤á¤Î¨ä¥[±K¤f¥O¡A¨Ã¥B¥¦«ü©w¥L­Ì¦³­þºØ¥þ§½¡]¶W¯Å¥Î¤á¡^³\¥iÅv¡C¦buserªí±Ò¥Îªº¥ô¦ó³\¥iÅv§¡¬O¥þ§½³\¥iÅv¡A¨Ã¾A¥Î©ó©Ò¦³¸ê®Æ®w¡C©Ò¥H§Ú­Ì¤£¯àµ¹¥ô¦ó¥Î¤á³X°Ýmysql.userªíªº³\¥iÅv¡I
³\¥iÅv»¡©ú¡G

+-----------+-------------+-----------------------------------------------------------------------+
| ³\¥iÅv«ü©w²Å| ¦C¦W |³\¥iÅv¾Þ§@ |
+-----------+-------------+-----------------------------------------------------------------------+
| Select | Select_priv | ¤¹³\¹ïªíªº³X°Ý¡A¤£¹ï¸ê®Æªí¶i¦æ³X°Ýªºselect»y¥y¤£¨ü¼vÅT¡A¤ñ¦pselect 1+1|
+-----------+-------------+-----------------------------------------------------------------------+
| Insert | Insert_priv | ¤¹³\¹ïªí¥Îinsert»y¥y¶i¦æ¼g¤J¾Þ§@¡C |
+-----------+-------------+-----------------------------------------------------------------------+
| Update | Update_priv | ¤¹³\¥Îupdate»y¥y­×§ïªí¤¤²{¦³°O¿ý¡C |
+-----------+-------------+-----------------------------------------------------------------------+
| Delete | Delete_priv | ¤¹³\¥Îdelete»y¥y§R°£ªí¤¤²{¦³°O¿ý¡C |
+-----------+-------------+-----------------------------------------------------------------------+
| Create | Create_priv | ¤¹³\«Ø¥ß·sªº¸ê®Æ®w©Mªí¡C |
+-----------+-------------+-----------------------------------------------------------------------+
| Drop | Drop_priv | ¤¹³\§R°£²{¦³ªº¸ê®Æ®w©Mªí¡C |
+-----------+-------------+-----------------------------------------------------------------------+
| Index | Index_priv | ¤¹³\³Ð«Ø¡B­×§ï©Î§R°£¯Á¤Þ¡C |
+-----------+-------------+-----------------------------------------------------------------------+
| Alter | Alter_priv | ¤¹³\¥Îalter»y¥y­×§ïªíµ²ºc¡C |
+-----------+-------------+-----------------------------------------------------------------------+
| Grant | Grant_priv | ¤¹³\±N¦Û¤v¾Ö¦³ªº³\¥iÅv±Â¤©¨ä¥L¥Î¤á¡A¥]¬Agrant¡C |
+-----------+-------------+-----------------------------------------------------------------------+
| Reload | Reload | ¤¹³\­«¸ü±ÂÅvªí¡A¨ê·s¦øªA¾¹µ¥©R¥O¡C |
+-----------+-------------+-----------------------------------------------------------------------+
| Shutdown | Shudown_priv| ¤¹³\¥Îmysqladmin shutdown©R¥OÃö³¬MySQL¦øªA¾¹¡C¸Ó³\¥iÅv¤ñ¸û¦MÀI¡A |
| | | ¤£À³¸ÓÀH«K±Â¤©¡C |
+-----------+-------------+-----------------------------------------------------------------------+
| Process | Process_priv| ¤¹³\¬d¬Ý©M²×¤îMySQL¦øªA¾¹¥¿¦b¹B¦æªº½uµ{¡]¶iµ{¡^¥H¤Î¥¿¦b°õ¦æªº¬d¸ß»y¥y |
| | | ¡A¥]¬A°õ¦æ­×§ï±K½Xªº¬d¸ß»y¥y¡C¸Ó³\¥iÅv¤ñ¸û¦MÀI¡A¤£À³¸ÓÀH«K±Â¤©¡C |
+-----------+-------------+-----------------------------------------------------------------------+
| File | File_priv | ¤¹³\±q¦øªA¾¹¤WŪ¥þ§½¥iŪÀÉ©M¼gÀÉ¡C¸Ó³\¥iÅv¤ñ¸û¦MÀI¡A¤£À³¸ÓÀH«K±Â¤©¡C|
+-----------+-------------+-----------------------------------------------------------------------+


mysql> desc db;

+-----------------+-----------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+-----------------+------+-----+---------+-------+
| Host | char(60) binary | | PRI | | |
| Db | char(64) binary | | PRI | | |
| User | char(16) binary | | PRI | | |
| Select_priv | enum('N','Y') | | | N | |
| Insert_priv | enum('N','Y') | | | N | |
| Update_priv | enum('N','Y') | | | N | |
| Delete_priv | enum('N','Y') | | | N | |
| Create_priv | enum('N','Y') | | | N | |
| Drop_priv | enum('N','Y') | | | N | |
| Grant_priv | enum('N','Y') | | | N | |
| References_priv | enum('N','Y') | | | N | |
| Index_priv | enum('N','Y') | | | N | |
| Alter_priv | enum('N','Y') | | | N | |
+-----------------+-----------------+------+-----+---------+-------+

13 rows in set (0.01 sec)

dbªí¦C¥X¸ê®Æ®w¡A¦Ó¥Î¤á¦³³\¥iÅv³X°Ý¥¦­Ì¡C¦b³oùØ«ü©wªº³\¥iÅv¾A¥Î©ó¤@­Ó¸ê®Æ®w¤¤ªº©Ò¦³ªí¡C

mysql> desc host;

+-----------------+-----------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+-----------------+------+-----+---------+-------+
| Host | char(60) binary | | PRI | | |
| Db | char(64) binary | | PRI | | |
| Select_priv | enum('N','Y') | | | N | |
| Insert_priv | enum('N','Y') | | | N | |
| Update_priv | enum('N','Y') | | | N | |
| Delete_priv | enum('N','Y') | | | N | |
| Create_priv | enum('N','Y') | | | N | |
| Drop_priv | enum('N','Y') | | | N | |
| Grant_priv | enum('N','Y') | | | N | |
| References_priv | enum('N','Y') | | | N | |
| Index_priv | enum('N','Y') | | | N | |
| Alter_priv | enum('N','Y') | | | N | |
+-----------------+-----------------+------+-----+---------+-------+

12 rows in set (0.01 sec)

hostªí»Pdbªíµ²¦X¨Ï¥Î¦b¤@­Ó¸û¦n¼h¦¸¤W±±¨î¯S©w¥D¾÷¹ï¸ê®Æ®wªº³X°Ý³\¥iÅv¡A³o¥i¯à¤ñ³æ¿W¨Ï¥Îdb¦n¨Ç¡C³o­Óªí¤£¨üGRANT©MREVOKE»y¥yªº¼vÅT
¡A©Ò¥H¡A§A¥i¯àµoı§A®Ú¥»¤£¬O¥Î¥¦¡C

mysql> desc tables_priv;

+-------------+-----------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-----------------------------+------+-----+---------+-------+
| Host | char(60) binary | | PRI | | |
| Db | char(64) binary | | PRI | | |
| User | char(16) binary | | PRI | | |
| Table_name | char(60) binary | | PRI | | |
| Grantor | char(77) | | MUL | | |
| Timestamp | timestamp(14) | YES | | NULL | |
| Table_priv | set('Select','Insert', | | | | |
| | 'Update','Delete','Create', | | | | |
| | 'Drop','Grant','References',| | | | |
| | 'Index','Alter') | | | | |
| Column_priv | set('Select','Insert', | | | | |
| | 'Update','References') | | | | |
+-------------+-----------------------------+------+-----+---------+-------+

8 rows in set (0.01 sec)

tables_privªí«ü©wªí¯Å³\¥iÅv¡C¦b³oùØ«ü©wªº¤@­Ó³\¥iÅv¾A¥Î©ó¤@­Óªíªº©Ò¦³¦C¡C

mysql> desc columns_priv;

+-------------+------------------------+------+-----+---------+----+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------------------+------+-----+---------+----+
| Host | char(60) binary | | PRI | | |
| Db | char(64) binary | | PRI | | |
| User | char(16) binary | | PRI | | |
| Table_name | char(64) binary | | PRI | | |
| Column_name | char(64) binary | | PRI | | |
| Timestamp | timestamp(14) | YES | | NULL | |
| Column_priv | set('Select','Insert', | | | | |
| | 'Update','References') | | | | |
+-------------+------------------------+------+-----+---------+-------+

7 rows in set (0.00 sec)

columns_privªí«ü©w¦C¯Å³\¥iÅv¡C¦b³oùØ«ü©wªº³\¥iÅv¾A¥Î©ó¤@­Óªíªº¯S©w¦C¡C

2)MySQL±ÂÅvªí¹B¦æ¾÷¨î
MySQLªº³X°Ý±±¨î¤À¨â­Ó¨BÆJ¡G
a)¦øªA¾¹Àˬd¬O§_¤¹³\¸Ó¥Î¤á³s±µ¡C
b)¦pªG¸Ó¥Î¤á¦³Åv³s±µ¡A¨º»ò¦øªA¾¹ÁÙ·|Àˬd¥¦ªº¨C¤@­Ó½Ð¨D¬O§_¦³¨¬°÷ªº³\¥iÅv¡C¤ñ¦p¡G¥Î¤áÀ˯Á¸ê®Æ®w¤¤ªº¤@­Óªí»Ý­n¦³³o­Ó¸ê®Æ®wªºselect³\¥iÅv¡A¥Î¤á§R°£¸ê®Æ®w¤¤ªº¤@­Óªí»Ý­n¦³³o­Ó¸ê®Æ®wªºdrop³\¥iÅv¡C

±ÂÅvªíªºuser, db, hostªí¨Ï¥Î³o¨â­Ó¨BÆJ¡Atables_priv©Mcolumns_privªí¥u¨Ï¥Î²Ä¤G¨B¡]Àˬd½Ð¨D¡^¡C¨C­Ó±ÂÅvªí¥]§t¨M©w¤@­Ó³\¥iÅv¦ó®É¹B¥Îªº½d³ò¦C©M¨M©w±Â¤©­þºØ³\¥iÅvªº³\¥iÅv¦C¡C
½d³ò¦C«ü©wªí¤¤ªº³\¥iÅv¦ó®É¹B¥Î¡C¨C­Ó±ÂÅvªí±ø¥Ø¥]§tUser©MHost¦C¨Ó«ü©w³\¥iÅv¦ó®É¹B¥Î©ó¤@­Óµ¹©w¥Î¤á±qµ¹©w¥D¾÷ªº³s±µ¡C¨ä¥Lªí¥]§tªþ¥[ªº½d³ò¦C¡A¦pdbªí¥]§t¤@­ÓDb¦C«ü¥X³\¥iÅv¹B¥Î©ó­þ­Ó¸ê®Æ®w¡CÃþ¦ü¦a¡Atables_priv©Mcolumns_privªí¥]§t½d³òÄæ¦ì¡AÁY¤p½d³ò¨ì¤@­Ó¸ê®Æ®w¤¤ªº¯S©wªí©Î¤@­Óªíªº¯S©w¦C¡C
¤U­±¬OuserªíªºHostÄæ¦ì©MUserÄæ¦ì²Õ¦Xªº¤@¨Ç¨Ò¤l¡G

+-----------------------------+--------+------------------------------------------------+
| Host­È | User­È | ¤Ç°tªº³s±µ |
+-----------------------------+--------+-----------------------------------------------+
| 'x.y.z' | 'test' | test¥Î¤á¥u¯à±qx.y.z³s±µ¸ê®Æ®w |
+-----------------------------+--------+-----------------------------------------------+
| 'x.y.z' | '' | ¥ô¦ó¥Î¤á¥i¥H±qx.y.z³s±µ¸ê®Æ®w |
+-----------------------------+--------+-----------------------------------------------+
| '%' | 'test' | test¥Î¤á¥i¥H±q¥ô·N¥D¾÷³s±µ¸ê®Æ®w |
+-----------------------------+--------+----------------------------------------------+
| '' | '' | ¥ô¦ó¥Î¤á¥i¥H±q¥ô·N¥D¾÷³s±µ¸ê®Æ®w |
+-----------------------------+--------+-----------------------------------------------+
| '%.y.z' | 'test' | test¥Î¤á¥i¥H±qy.z°ìªº¥ô·N¥D¾÷³s±µ¸ê®Æ®w |
+-----------------------------+--------+----------------------------------------------+
| 'x.y.% ' | 'test' | test¥Î¤á¥i¥H±qx.y.net, x.y.com, x.y.eduµ¥¥D¾÷³s±µ¸ê®Æ®w|
+-----------------------------+--------+----------------------------------------------+
| '192.168.1.1' | 'test' | test¥Î¤á¥i¥H±qIP¦ì§}¬°192.168.1.1ªº¥D¾÷³s±µ¸ê®Æ®w |
+-----------------------------+--------+---------------------------------------------+
| '192.168.1.% ' | 'test' | test¥Î¤á¥i¥H±qCÃþ¤lºô192.168.1¤¤ªº¥ô·N¥D¾÷³s±µ¸ê®Æ®w |
+-----------------------------+--------+---------------------------------------------+
| '192.168.1.0/255.255.255.0' | 'test' | ¦P¤W |
+-----------------------------+--------+--------------------------------------------+

SQLªº¦r¦ê³q°t²Å%ªí¥Ü¤Ç°t¥ô·N¦r¤¸¡A¥i¥H¬O0­Ó¦r¤¸¡A³q°t²Å_ªí¥Ü¤Ç°t¤@­Ó¦r¤¸¡C

³\¥iÅv¦C«ü¥X¦b½d³ò¦C¤¤«ü©wªº¥Î¤á¾Ö¦³¦óºØ³\¥iÅv¡C¸Óªí¨Ï¥ÎGRANT»y¥yªº³\¥iÅv¦WºÙ¡C¹ï©óµ´¤j¦h¼Æ¦buser¡Bdb©Mhostªí¤¤ªº³\¥iÅv¦Cªº¦WºÙ»PGRANT»y¥y¤¤¦³©úÅ㪺Ápô¡C¦pSelect_priv¹ïÀ³©óSELECT³\¥iÅv¡C

3)±ÂÅvªí¨Ï¥ÎÁ|¨Ò
grant¥Î©óµ¹¼W¥[¥Î¤á©M³Ð«Ø³\¥iÅv¡Arevoke¥Î©ó§R°£¥Î¤á³\¥iÅv¡C
¤U­±¬O¤@¨Ç¥Îgrant¼W¥[¥Î¤á©M³Ð«Ø³\¥iÅvªº¨Ò¤l¡G

mysql> grant all privileges on *.* to test@localhost identified by 'test' with grant option;

³o¥y¼W¥[¤@­Ó¥»¦a¨ã¦³©Ò¦³Åv­­ªºtest¥Î¤á¡]¶W¯Å¥Î¤á¡^¡A±K½X¬Otest¡CON¤l¥y¤¤ªº*.*·N¨ýµÛ"©Ò¦³¸ê®Æ®w¡B©Ò¦³ªí\"¡Cwith grant optionªí¥Ü¥¦¨ã¦³grant³\¥iÅv¡C

mysql> grant select,insert,update,delete,create,drop privileges on test.* to test1@\192.168.1.0/255.255.255.0' identified by 'test';

³o¥y¬O¼W¥[¤F¤@­Ótest1¥Î¤á¡A¤f¥O¬Otest¡A¦ý¬O¥¦¥u¯à±qCÃþ¤lºô192.168.1³s±µ¡A¹ïtest®w¦³select,insert,update,delete,create,drop¾Þ§@³\¥iÅv¡C
¥Îgrant»y¥y³Ð«Ø³\¥iÅv¬O¤£»Ý­n¦A¤â¤u¨ê·s±ÂÅvªíªº¡A¦]¬°¥¦¤w¸g¦Û°Ê¨ê·s¤F¡C
µ¹¥Î¤á³Ð«Ø³\¥iÅvÁÙ¥i¥H³q¹Lª½±µ­×§ï±ÂÅvªí¡G

mysql> insert into user values("localhost","test",password("test"),"Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y");
mysql> flush privileges;

³o¨â¥y©M¤W­±²Ä¤@¥ygrantªº®ÄªG¬O¤@¼Ëªº¡A¤]¬O¼W¥[¤F¤@­Ó¥»¦aªºtest¶W¯Å¥Î¤á¡C§Ú­Ì¬Ý¨ì¥Îgrant¤è«K¦h¤F¡A¦Ó¥BÁÙ¤£»Ýflush privileges
¡C
mysql> insert into user (host,user,password) values("192.168.1.0/255.255.255.0","test1",PASSWORD("test"));
mysql> insert into db values("192.168.1.0/255.255.255.0","test","test1","Y","Y","Y","Y","Y","Y","N","N","N","N")
mysql> flush privileges;

³o¤T¥y©M¤W­±²Ä¤G¥ygrantªº®ÄªG¤]¬O¤@¼Ëªº¡A¤]¬O¼W¥[¤F¤@­Ó¥u¯à±qCÃþ¤lºô192.168.1³s±µ¡A¹ïtest®w¦³select,insert,update,delete,create,drop¾Þ§@³\¥iÅvªºtest1¥Î¤á¡A¤f¥O¬Otest¡C­n¨ú®ø¤@­Ó¥Î¤áªº³\¥iÅv¡A¨Ï¥Îrevoke»y¥y¡Crevokeªº»yªk«D±`Ãþ¦ü©ógrant»y¥y¡A°£¤Fto¥Îfrom¨ú¥N¨Ã¥B¨S¦³identified by©Mwith grant
option¤l¥y¡A¤U­±¬O¥Îrevoke§R°£¥Î¤á³\¥iÅvªº¨Ò¤l¡G

mysql> revoke all on test.* from test1@\192.168.1.0/255.255.255.0';

³o¥yrevoke´NºM¾P¤F¤W­±²Ä¤G¥ygrant³Ð«Øªº³\¥iÅv¡A¦ý¬Otest1¥Î¤á¨Ã¨S¦³³Q§R°£¡A¥²¶·¤â¤u±quserªí§R°£¡G

mysql> delete from user where user='test1';
mysql> flush privileges;

³o¼Ë¡Atest1¥Î¤á´N¹ý©³§R°£¤F¡C

³o¨Ç¥u¬OMySQL±ÂÅvªíªºÂ²³æ¨Ï¥Î¡A§ó¦h¸Ô²Óªº¸ê®Æ½Ð¨£MySQL´£¨Ñªº¤â¥U¡C

3¡B½sµ{»Ý­nª`·Nªº¤@¨Ç°ÝÃD

¤£ºÞ¬O¥Î­þºØµ{¦¡»y¨¥¼g³s±µMySQL¸ê®Æ®wªºµ{¦¡¡A¦³¤@±ø·Ç«h¬O¥Ã»·¤£­n¬Û«H¥Î¤á´£¥æªº¸ê®Æ¡I
¹ï©ó¼Æ¦rÄæ¦ì¡A§Ú­Ì­n¨Ï¥Î¬d¸ß»y¥y¡GSELECT * FROM table WHERE ID='234'¡A¤£­n¨Ï¥ÎSELECT * FROM table WHERE ID=234³o¼Ëªº¬d¸ß»y¥y¡CMySQL·|¦Û°Ê§â¦r¦êÂà´«¬°¼Æ¦ì¦r¤¸¨Ã¥B¥h°£«D¼Æ¦ì¦r¤¸¡C¦pªG¥Î¤á´£¥æªº¸ê®Æ¸g¹L¤Fmysql_escape_string³B²z¡A³o¼Ë§Ú­Ì´N¥i¥H§¹¥þ§ùµ´¤Fsql inject§ðÀ»¡AÃö©ósql inject§ðÀ»½Ð°Ñ¦Ò¤U­±Ãìµ²ªº¤å³¹¡G
http://www.spidynamics.com/papers/SQLInjectionWhitePaper.pdf
http://www.ngssoftware.com/papers/advanced_sql_injection.pdf
¦UºØ½sµ{»y¨¥¸Óª`·Nªº°ÝÃD¡G

1)©Ò¦³Webµ{¦¡¡G
a)¹Á¸Õ¦bWebªí³æ¿é¤J³æ¤Þ¸¹©MÂù¤Þ¸¹¨Ó´ú¸Õ¥i¯à¥X²{ªº¿ù»~¡A¨Ã§ä¥X­ì¦]©Ò¦b¡C
b)­×§ïURL°Ñ¼Æ±aªº%22 ('"'), %23 ('#'), ©M %27 (''')¡C
c)¹ï©ó¼Æ¦ìÄæ¦ìªºÅܼơA§Ú­ÌªºÀ³¥Îµ{¦¡¥²¶·¶i¦æÄY®æªºÀˬd¡A§_«h¬O«D±`¦MÀIªº¡C
d)Àˬd¥Î¤á´£¥æªº¸ê®Æ¬O§_¶W¹LÄæ¦ìªºªø«×¡C
e)¤£­nµ¹¦Û¤vµ{¦¡³s±µ¸ê®Æ®wªº¥Î¤á¹L¦hªº³X°Ý³\¥iÅv¡C

2)PHP¡G
a)Àˬd¥Î¤á´£¥æªº¸ê®Æ¦b¬d¸ß¤§«e¬O§_¸g¹Laddslashes³B²z¡A¦bPHP 4.0.3¥H«á´£¨Ñ¤F°ò©óMySQL C APIªº¨ç¼Æmysql_escape_string()¡C

3)MySQL C API¡G
a)Àˬd¬d¸ß¦r¦ê¬O§_¥Î¤Fmysql_escape_string() API½Õ¥Î¡C

4)MySQL++¡G
a)Àˬd¬d¸ß¦r¦ê¬O§_¥Î¤Fescape©Mquote³B²z¡C

5)Perl DBI¡G
a)Àˬd¬d¸ß¦r¦ê¬O§_¥Î¤Fquote()¤èªk¡C

6)Java JDBC¡G
a)Àˬd¬d¸ß¦r¦ê¬O§_¥Î¤FPreparedStatementª«¥ó¡C

4¡B¤@¨Ç¤p¬ªù

1)¦pªG¤£·V§Ñ°O¤FMySQLªºroot±K½X¡A§Ú­Ì¥i¥H¦b±Ò°ÊMySQL¦øªA¾¹®É¥[¤W°Ñ¼Æ--skip-grant-tables¨Ó¸õ¹L±ÂÅvªíªºÅçÃÒ (./safe_mysqld --skip-grant-tables &)¡A³o¼Ë§Ú­Ì´N¥i¥Hª½±µµn³°MySQL¦øªA¾¹¡AµM«á¦A­×§ïroot¥Î¤áªº¤f¥O¡A­«±ÒMySQL´N¥i¥H¥Î·s¤f¥Oµn³°¤F¡C

2)±Ò°ÊMySQL¦øªA¾¹®É¥[¤W--skip-show-database¨Ï¤@¯ë¸ê®Æ®w¥Î¤á¤£¯à¬yÄý¨ä¥L¸ê®Æ®w¡C

3)±Ò°ÊMySQL¦øªA¾¹®É¥[¤W--chroot=path°Ñ¼Æ¡AÅýmysqld¦uÅ@¶iµ{¹B¦æ¦bchrootÀô¹Ò¤¤¡C³o¼ËSQL»y¥yLOAD DATA INFILE©MSELECT ... INTO OUTFILE´N­­©w¦bchroot_path¤UŪ¼g¤å¥ó¤F¡C³oùئ³¤@ÂI­nª`·N¡AMySQL±Ò°Ê«á·|«Ø¥ß¤@­Ómysql.sockÀÉ¡AÀq»{¬O¦b/tmp¥Ø¿ý¤U¡C¨Ï¥Î¤Fchroot«á¡AMySQL·|¦bchroot_path/tmp¥h«Ø¥ßmysql.sockÀÉ¡A¦pªG¨S¦³chroot_path/tmp¥Ø¿ý©Î±Ò°ÊMySQLªº¥Î¤á¨S¦³³o­Ó¥Ø¿ý¼g³\¥iÅv´N¤£¯à«Ø¥ßmysql.sockÀÉ¡AMySQL·|±Ò°Ê¥¢±Ñ¡C¤ñ¦p§Ú­Ì¥[¤F--chroot=/usr/local/mysql/±Ò°Ê°Ñ¼Æ¡A¨º»ò³Ì¦n«Ø¥ß¤@­Ó±Ò°ÊMySQLªº¥Î¤á¯à¼gªº
/usr/local/mysql/tmp¥Ø¿ý¡A·íµM§Ú­Ì¤]¥i¥H¥Î--socket=path¨Ó«ü©wmysql.sockÀɪº¸ô®|¡A¦ý³o­Ópath¤@©w­n¦bchroot_pathùØ­±¡C

4)±Ò°ÊMySQL¦øªA¾¹®É¥[¤W--log-slow-queries[=file]°Ñ¼Æ¡A³o¼Ëmysqld·|§âSQL©R¥O°õ¦æ®É¶¡¶W¹Llong_query_timeªº¼g¤JfileÀÉ¡C¦pªG¨S¦³«ü©w=file¡AmysqldÀq»{·|¼g¨ì¸ê®Æ¥Ø¿ý¤Uªºhostname-slow.log¡C¦pªG¥u«ü©w¤Ffilename¡A¨S¦³«ü©w¸ô®|¡A¨º»òmysqld¤]·|§âfilename¼g¨ì¸ê®Æ¥Ø¿ý¤U¡C§Ú­Ì³q¹L³o­Ó¤é»xÀÉ¥i¥H§ä¥X°õ¦æ®É¶¡¶Wªøªº¬d¸ß»y¥y¡AµM«áºÉ¥i¯àªºÀu¤Æ¥¦´î»´MySQL¦øªA¾¹ªº­t¾á¡C

5)¦pªG§Ú­Ì¥u»Ý¥»¾÷¨Ï¥ÎMySQLªA°È¡A¨º»ò§Ú­ÌÁÙ¥i¥H¥[¤W--skip-networking±Ò°Ê°Ñ¼Æ¨ÏMySQL¤£ºÊÅ¥¥ô¦óTCP/IP³s±µ¡A¼W¥[¦w¥þ©Ê¡C¡]«D±`±ÀÂË¡^

6)MySQLªº§ó¦hmysqld±Ò°Ê¿ï¶µ½Ð¨£MySQL¤â¥U4.16.4 mysqld Command-line Options

5¡BReferences
MySQL Manual(http://www.mysql.com/documentation/index.html)
Access Granted(http://www.devshed.com/Server_Side/MySQL/Access)

_________________
#############################
§Ö¼Ö¶ý«}¨t¦C©¯ºÖ¦v°t,³Ü¤Q¥þÂû´ö~­ì¨Ó©¯ºÖ¨º»ò²³æ!!

¾Ç·|VFP¨Ï¥ÎªÌªÀ°Ïªº·j´M,Code¤~·|§ó¦³½ì~
#############################
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
±q¤§«eªº¤å³¹¶}©lÅã¥Ü:   
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> SQL °Q½×°Ï ©Ò¦³ªº®É¶¡§¡¬° ¥x¥_®É¶¡ (GMT + 8 ¤p®É)
²Ä1­¶(¦@1­¶)

 
«e©¹:  
±z µLªk ¦b³o­Óª©­±µoªí¤å³¹
±z µLªk ¦b³o­Óª©­±¦^ÂФ峹
±z µLªk ¦b³o­Óª©­±½s¿è¤å³¹
±z µLªk ¦b³o­Óª©­±§R°£¤å³¹
±z µLªk ¦b³o­Óª©­±¶i¦æ§ë²¼
±z µLªk ¦b³o­Óª©­±ªþ¥[ÀÉ®×
±z µLªk ¦b³o­Óª©­±¤U¸üÀÉ®×


Powered by phpBB © 2001, 2005 phpBB Group
¥¿Å餤¤å»y¨t¥Ñ phpbb-tw ºûÅ@»s§@