|
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¸ü.
|
¤W¤@½g¥DÃD :: ¤U¤@½g¥DÃD |
µoªí¤H |
¤º®e |
Ruey
µù¥U®É¶¡: 2003-03-12 ¤å³¹: 1698 ¨Ó¦Û: tunglo
²Ä 1 ¼Ó
|
µ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¸mn¦Ò¼{¦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«Dn¥Î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¸Ë«á¤@©wn¶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¡Cn¨ú®ø¤@ӥΤ᪺³\¥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ùئ³¤@ÂInª`·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¤@©wn¦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¤~·|§ó¦³½ì~
############################# |
|
¦^³»ºÝ |
|
|
|
|
±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§@
|