HOME   ·Î±×ÀΠ  ȸ¿ø°¡ÀÔ
    
ȸ¿ø°¡ÀÔ
ºñ¹Ð¹øÈ£ ã±â ÀÚµ¿·Î±ä
ÀÌÀü°Ô½ÃÆÇ
   free_board
   °Ç°­°Ô½ÃÆÇ
   ¿À¶óŬDB
   Linux
   HTML/javascript
   Áú¹®°ú ´ä
È£¼­±â
   À̹ÌÁö°Ô½ÃÆÇ  
   °Ç°­°Ô½ÃÆÇ  
   À½¾ÇÀÚ·á  
   ¼ºÁØÀÌ °Ô½ÃÆÇ  
[ÀϹÝ] MYSQL manual Çѱ۹ø¿ª(260k)
  È£¼® ´Ô²²¼­ ¾´ ±ÛÀÔ´Ï´Ù - 211.¢½.74.31 ÀÐÀ½:4930  
[º»¹®½ºÅ©·¦] mySQL manual Çѱ۹ø¿ª(260k) (1999/01/07) | ³ªÀÇ °ü½ÉÁ¤º¸   2007/02/10 12:02    
 
È£¼­±â(hosuck99)   http://memolog.blog.naver.com/hosuck99/57
 
 
 ºí·Î±× > ¡ÙJ_h[Kwon]¡Ù
 http://blog.naver.com/kjh20020/60028364869 
## ¿øº» : mysql 3.21 Reference Manual PostScript ¸Å´º¾ó
(ÇöÀç ÃֽŠ¸Å´º¾óÀº 3.22 ·¹ÆÛ·±½º ¸Å´º¾óÀ̸ç 3.22.14b-gammaÀÔ´Ï´Ù.)

5, 6, 9, 10, 11, 12, 13, 15, 17, 18Àå ¹ø¿ª : ¹®ÅÂÁØ(taejun@hitel.net)
18Àå Áß C-API ºÎºÐ ¹ø¿ª : ±Ç¿ëÂù (golmong@cre.co.kr)


À̸ÞÀÏ : taejun@hitel.net, taejun@taejun.pe.kr
À¥ : http://taejun.pe.kr (Mysql °ü·Ã ÀÚ·á°¡ ¸ð¾ÆÁ® ÀÖ½À´Ï´Ù)

ÀڷḦ °øÀ¯Çϱâ ÆíÇϵµ·Ï ȨÆäÀÌÁö¸¦ ¿­¾ú½À´Ï´Ù.
¸¹ÀÌ ¾Ö¿ëÇØÁÖ½Ã¸é °¨»ç~ÇÏ°Ú½À´Ï´Ù.


°³ÀÎÀûÀÎ Áú¹®Àº °¢ Åë½Å¸ÁÀÇ ¸®´ª½º µ¿È£È¸³ª ÀÎÅͳÝÀ» Âü°íÇϼ¼¿ä.

**·Î ¹­ÀÎ °ÍÀº Á¦°¡ ÁÖ¸¦ ´Ü °ÍÀÔ´Ï´Ù.

¼³Ä¡¿Í °ü·ÃµÈ ºÎºÐÀº kldp.orgÀÇ database Ç׸ñ¿¡¼­ °ü·ÃµÈ Á¤º¸°¡ ÀÖÀ¸¹Ç·Î Âü°íÇÏ½Ã¸é µË´Ï´Ù.



0. ¸ñÂ÷
1. MySQL ÀÏ¹Ý Á¤º¸
2. MySQL ¸ÞÀϸµ ¸®½ºÆ® ¹× Áú¹® ¿äû ¹æ¹ý, ¿¡·¯(¹ö±×) ¾Ë¸®±â
3. ¶óÀ̼¾½Ì / mysql¿¡ ÁöºÒÇØ¾ß ÇÒ °æ¿ì
4. mysql ¼³Ä¡
5. mysqlÀÇ Ç¥ÁØ È£È¯¼º
6. mysql Á¢±Ù ±ÇÇÑ ½Ã½ºÅÛ
7. mysql ¾ð¾î ·¹ÆÛ·±½º
8. SQL ÁúÀÇ ¿¹Á¦
9. mysql ¼­¹ö ±â´É
10. mysqlÀÇ ÃÖ´ë ¼º´É Çâ»ó ¹æ¹ý
11. mysql º¥Ä¡¸¶Å©
12. mysql À¯Æ¿¸®Æ¼
13. Å×À̺í À¯Áöº¸¼ö ¹× ÆÄ¼Õ º¹±¸¿¡ isamchk »ç¿ëÇϱâ
14. mysql¿¡ »õ·Î¿î ±â´É Ãß°¡
15. mysql ODBC Áö¿ø
16. ÀϹÝÀûÀÎ ¹®Á¦ ¹× ¿¡·¯
17. ÀϹÝÀûÀÎ ¹®Á¦ ÇØ°á ¹æ¹ý
18. mysql Ŭ¶óÀ̾ðÆ® Åø°ú API
19. ´Ù¸¥ µ¥ÀÌÅͺ£À̽º¿Í ºñ±³

ºÎ·Ï A ; MYSQL »ç¿ëÀÚ
ºÎ·Ï B ; °³¹ß ÇÁ·Î±×·¥
ºÎ·Ï C ;MYSQL °³¹ßÀÚ
ºÎ·Ï D ; MYSQL ¹öÀü¾÷ ¿ª»ç
ºÎ·Ï E ; MYSQLÀÇ ¾Ë·ÁÁø ¿¡·¯ ¹× ¼³°è¿¡¼­ ºÎÁ·ÇÑ ºÎºÐ
ºÎ·Ï F ; MYSQL¿¡ Àå·¡ Ãß°¡ÇÒ³»¿ë(The TODO)
ºÎ·Ï G ; ´Ù¸¥ ½Ã½ºÅÛ¿¡ Æ÷ÆÃÇϱâ
ºÎ·Ï H ; MYSQL Á¤±ÔÇ¥Çö½Ä ¼³¸í
ºÎ·Ï I ; Unireg ¼³¸í
ºÎ·Ï J ; ºñMS ¿î¿µÃ¼Á¦¿¡¼­ MYSQL ¼­¹ö ¶óÀ̼¾½º
ºÎ·Ï K ; MS ¿î¿µÃ¼Á¦¿¡¼­ MYSQL ¶óÀ̼¾½º
SQL ¸í·É, ŸÀÔ, ÇÔ¼ö À妽º
°³³ä À妽º

1. MySQL ÀÏ¹Ý Á¤º¸
1.1 MYSQLÀº ¹«¾ùÀΰ¡?
1.2 ¸Å´º¾ó¿¡ °üÇÏ¿©
        1.2.1 ¸Å´º¾ó¿¡¼­ ¾²ÀÎ ±ÔÁ¤
1.3 MYSQL ¿ª»ç
1.4 ÁÖ¿äƯ¡
1.5 ¾ÈÁ¤¼º
1.6 2000³â ¹®Á¦
1.7 ÀϹÝÀûÀÎ SQL Á¤º¸ ¹× Âü°íÀÚ·á
1.8 °ü·Ã ¸µÅ©

2. MySQL ¸ÞÀϸµ ¸®½ºÆ® ¹× Áú¹® ¿äû ¹æ¹ý, ¿¡·¯(¹ö±×) ¾Ë¸®±â
2.1 mysql ¸ÞÀϸµ ¸®½ºÆ®
2.2 Áú¹®Çϱâ, ¹ö±× ¾Ë¸®±â
2.3 ¹ö±×³ª ¹®Á¦¸¦ ¾Ë¸®´Â ¹æ¹ý
        2.3.1 mysqlÀÌ ¼Õ»óµÇ¾úÀ»¶§
2.4 ¸ÞÀϸµ¸®½ºÆ®¿¡¼­ Áú¹® ´äº¯¿¡ ´ëÇÑ ¾È³»

3. ¶óÀ̼¾½Ì / mysql¿¡ ÁöºÒÇØ¾ß ÇÒ °æ¿ì
3.1 mysql ºñ¿ë
3.2 »ó¾÷ÀûÀÎ Áö¿ø ¹æ´Â ¹æ¹ý
        3.2.1 ±âº» À̸ÞÀÏ Áö¿ø
        3.2.2 È®Àå À̸ÞÀÏ Áö¿ø
        3.2.3 login Áö¿ø
        3.2.4 È®Àå login Áö¿ø

3.3 ¶óÀ̼¾½ÌÀ̳ª Áö¿ø¿¡ ÁöºÒÇÏ´Â ¹æ¹ý
3.4 ¶óÀ̼¾½Ì/Áö¿ø °ü·Ã Á¤º¸ ´ã´çÀÚ
3.5 »ç¿ëÀÚ ÀúÀÛ±Ç °ü·Ã
3.6 mysql¿¡ ¿ä±ÝÀ» ³»Áö ¾Ê°í »ó¾÷ÀûÀ¸·Î ÆǸÅÇÏ´Â °æ¿ì
3.7 mysqlÀ» »ç¿ëÇØ¾ß ¼³Á¤ÇÒ ¼ö ÀÖ´Â Á¦Ç°À» ÆǸÅÇÏ´Â °æ¿ì
3.8 mysqlÀ» »ç¿ëÇÏ¿© »ó¾÷ÀûÀÎ À¥ ¼­¹ö¸¦ ¿î¿µÇÏ´Â °æ¿ì
3.9 »ó¾÷¿ë Perl/Tcl/PHP/±âŸ ¾ÖÇø®ÄÉÀ̼ÇÀ» ÆǸÅÇÏ´Â °æ¿ì
3.10 ¾ÕÀ¸·ÎÀÇ ¶óÀ̼¾½Ì º¯È­

4. mysql ¼³Ä¡
4.1 mysql ±¸Çϱâ
4.2 mysql¿¡¼­ Áö¿øÇÏ´Â ¿î¿µÃ¼Á¦
4.3 »ç¿ëÇÒ ¼ö ÀÖ´Â mysql ¹öÀü
4.4 ¾÷µ¥ÀÌÆ® ¹æ¹ý ¹× ½Ã±â
4.5 ¼³Ä¡ °³°ý
4.6 ¹ÙÀ̳ʸ®·Î ¼³Ä¡Çϱâ
        4.6.1 Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥ ¸¸µé±â
        4.6.2 ½Ã½ºÅÛ °ü·Ã Âü°í»çÇ×
                4.6.2.1 ¸®´ª½º
                4.6.2.2 HP-UX
4.7 ¼Ò½º·Î ¼³Ä¡Çϱâ
        4.7.1 ºü¸¥ ¼³Ä¡
        4.7.2 ÆÐÄ¡ Àû¿ëÇϱâ
        4.7.3 ÀÏ¹Ý ¼³Á¤ ¿É¼Ç
4.8 ÄÄÆÄÀÏ¿¡¼­ ¹®Á¦Á¡ÀÌ »ý±æ¶§
4.9 MIT-pthreads ÁÖÀÇ»çÇ×
4.10 ÆÞ ¼³Ä¡
        4.10.1 ÆÞ DBI/DBD ÀÎÅÍÆäÀ̽º »ç¿ë½Ã ¹®Á¦Á¡
4.11 ½Ã½ºÅÛ °ü·Ã Âü°í»çÇ×
        -¼Ö¶ó¸®½º, ¼Ö¶ó¸®½º x86, ¼±OS4, ¾ËÆÄ-DEC-À¯´Ð½º, ¾ËÆÄ-DEC-OSF1,
         SGI-IRIX, FreeBSD, BSD/OS 2, SCO, SCO Unixware 7.0, IBM-AIX, HP-UX
        -¸®´ª½º : ¸®´ª½º-x86, ·¹µåÇÞ 5.0/5.1, ¸®´ª½º-½ºÆÅ,¸®´ª½º-¾ËÆÄ,MkLinux
         ¸®´ª½º RPM
4.12 TcX ¹ÙÀ̳ʸ®
4.13 Win32 °ü·Ã»çÇ×
4.14 ¼³Ä¡ÈÄ ¼Â¾÷ ¹× Å×½ºÆ®
        4.14.1 mysql_install_db ½ÇÇà½Ã ¹®Á¦Á¡
        4.14.2 mysql ¼­¹ö ½ÇÇà½Ã ¹®Á¦Á¡
        4.14.3 ÀÚµ¿ ½ÃÀÛ/Á¤Áö ½ÃÅ°±â
        4.14.5 ¿É¼Ç ÆÄÀÏ
4.15 ¾÷±×·¹À̵å/´Ù¿î±×·¹À̵åÇÒ¶§ÀÇ ÁÖÀÇ»çÇ×
        4.15.1 3.21¿¡¼­ 3.22·Î ¾÷±×·¹À̵å
        4.15.2 3.20¿¡¼­ 3.21·Î ¾÷±×·¹À̵å
        4.15.3 ´Ù¸¥ ¾ÆÅ°ÅØÃÄ·Î ¾÷±×·¹À̵å

5. mysqlÀÇ Ç¥ÁØ È£È¯¼º
5.1 mysqlÀÇ ANSI SQL92 È®Àå ºÎºÐ
5.2 mysql¿¡¼­ ºüÁø ±â´É
        5.2.1 sub-selects
        5.2.2 SELECT INTO TABLE
        5.2.3 Æ®·£Àè¼Ç
        5.2.4 ÀúÀå ÇÁ·Î½ÃÁ®/Æ®¸®°Å
        5.2.5 ¿Ü·¡Å°
                5.2.5.1 ¿Ü·¡Å° »ç¿ëÇÏÁö ¾Ê´Â ÀÌÀ¯
        5.2.6 ºä
        5.2.7 '--' ·Î ÁÖ¼®¹® ½ÃÀÛ
5.3 mysql¿¡¼­ µû¸£°í Àִ ǥÁØ
5.4 BLOB/TEXT ŸÀÔÀÇ Á¦ÇÑ»çÇ×
5.5 COMMIT-ROLLBACK ¾øÀÌ »ç¿ëÇÏ´Â ¹æ¹ý

6. mysql Á¢±Ù ±ÇÇÑ ½Ã½ºÅÛ
6.1 Á¢±Ù ±ÇÇÑ ½Ã½ºÅÛÀ̶õ ¹«¾ùÀΰ¡
6.2 mysql ¼­¹ö¿¡ ¿¬°áÇϱâ
        6.2.1 ºñ¹Ð¹øÈ£¸¦ ¾ÈÀüÇÏ°Ô À¯ÁöÇϱâ
6.3 mysql¿¡¼­ Á¦°øÇÏ´Â ±ÇÇÑ
6.4 ±ÇÇÑ ½Ã½ºÅÛ ÀÛµ¿ ¹æ½Ä
6.5 Á¢±Ù Á¦¾î 1 : ¿¬°É ÀÎÁõ
6.6 Á¢±Ù Á¦¾î 2 : ¿äû ÀÎÁõ
6.7 ±ÇÇѺ¯°æ½Ã Àû¿ë ¹æ¹ý
6.8 Ãʱâ mysql ±ÇÇÑ ¼³Á¤
6.9mysql¿¡ »õ·Î¿î »ç¿ëÀÚ ±ÇÇÑ Ãß°¡
6.10 ºñ¹Ð¹øÈ£ ¼³Á¤ ¹æ¹ý
6.11 Á¢±Ù ±ÝÁö ¿¡·¯°¡ ³ª´Â ÀÌÀ¯
6.12 Å©·¢Ä¿¿¡ ´ëºñÇÏ¿© mysqlÀ» ¾ÈÀüÇÏ°Ô ¸¸µå´Â ¹æ¹ý

7. mysql ¾ð¾î ·¹ÆÛ·±½º
7.1 ¹®ÀÚ : ¹®ÀÚ¿­°ú ¼ýÀÚ ±â·ÏÇϱâ
        7.1.1 ¹®ÀÚ¿­
        7.1.2 ¼ýÀÚ
        7.1.3 NULL °ª
        7.1.4 µ¥ÀÌÅͺ£À̽º, Å×À̺í, À妽º, Ä÷³, ¾Ë¸®¾Æ½º À̸§
                7.1.4.1 À̸§¿¡¼­ ´ë¼Ò¹®ÀÚ ±¸º°
7.2 Ä÷³ ŸÀÔ
        7.2.1 Ä÷³ ŸÀÔ ÀúÀå ¿ä±¸·®
        7.2.2 ¼ýÀÚ Å¸ÀÔ
        7.2.3 ³¯Â¥/½Ã°£ ŸÀÔ
                7.2.3.1 DATETIME, DATE, TIMESTAMP ŸÀÔ
                7.2.3.2 TIME ŸÀÔ
                7.2.3.3 YEAR ŸÀÔ
        7.2.4 ¹®ÀÚ¿­ ŸÀÔ
                7.2.4.1 CHAR, VARCHAR ŸÀÔ
                7.2.4.2 BLOB, TEXT ŸÀÔ
                7.2.4.3 ENUM ŸÀÔ
                7.2.4.4 SET ŸÀÔ
        7.2.5 Ä÷³¿¡ ÀûÀýÇÑ Å¸ÀÔ °í¸£±â
        7.2.6 Ä÷³ À妽º
        7.2.7 ´ÙÁß Ä÷³ À妽º
        7.2.8 ´Ù¸¥ µ¥ÀÌÅͺ£À̽º ¿£ÁøÀÇ Ä÷³ ŸÀÔ »ç¿ë
7.3 SELECT ¿Í WHERE ¹®¿¡¼­ÀÇ ÇÔ¼ö(functions)
        7.3.1 ±×·ì(Group)À¸·Î ¹­´Â ±â´É
        7.3.2 »ê¼ú¿¬»êÀÚ
        7.3.3 ºñÆ®(Bit) ÇÔ¼ö
        7.3.4 ³í¸®(logical) ¿¬»êÀÚ
        7.3.5 ºñ±³ ¿¬»êÀÚ
        7.3.6 ¹®ÀÚ¿­ ºñ±³ ÇÔ¼ö
        7.3.7 È帧 Á¦¾î(control flow) ÇÔ¼ö
        7.3.8 »ê¼ú ÇÔ¼ö
        7.3.9 ¹®ÀÚ¿­ ÇÔ¼ö
        7.3.10 ³¯Â¥/½Ã°£ ÇÔ¼ö
        7.3.11 ±âŸ ÇÔ¼ö
        7.3.12 GROUP BY ¹®¿¡¼­ »ç¿ëÇÏ´Â ÇÔ¼ö
7.4 CREATE DATABASE
7.5 DROP DATABASE
7.6 CREATE DATABASE
        7.6.1 ÀÚµ¿ Ä÷³ º¯È¯
7.7 ALTER TABLE
7.8 OPTIMIZE TABLE
7.9 DROP TABLE
7.10 DELETE
7.11 SELECT
7.12 JOIN
7.13 INSERT
7.14 REPLACE
7.15 LOAD DATA INFILE
7.16 UPDATE
7.17 USE
7.18 FLUSH(ij½¬ »èÁ¦)
7.19 KILL
7.20 SHOW(Å×À̺í, Ä÷³ Á¤º¸ ¾ò±â)
7.21 EXPLAIN(SELECT °ü·Ã Á¤º¸ ¾ò±â)
7.22 DESCRIBE(Ä÷³ Á¤º¸ ¾ò±â)
7.23 LOCAK TABLES/UNLOCK TABLES
7.24 SET OPTION
7.25 GRANT / REVOKE
7.26 CREATE INDEX(ȣȯ¼º ±â´É)
7.27 DROP INDEX(ȣȯ¼º ±â´É)
7.28 ÁÖ¼®
7.29 CREATE FUNCTION/DROP FUNCION
7.30 ¿¹¾àµÈ ¹®ÀÚ »ç¿ëÇÏ´Â °æ¿ì

8. SQL ÁúÀÇ ¿¹Á¦
        8.1 twin project¿¡¼­ÀÇ ÁúÀÇ
                8.1.1 Find all non-distributed twins
                8.1.2 Show a table on twin pair status

9. mysql ¼­¹ö ±â´É
        9.1 mysql¿¡¼­ Áö¿øÇÏ´Â ¾ð¾î
                9.1.1 µ¥ÀÌÅÍ¿Í Á¤¿­¿¡ »ç¿ëÇÏ´Â ¹®ÀÚ ¼Â
                9.1.2 »õ·Î¿î ¹®Àڼ Ãß°¡
                9.1.3 ¸ÖƼ¹ÙÀÌÆ® ¹®ÀÚ Áö¿ø
        9.2 ¾÷µ¥ÀÌÆ® ·Î±×
        9.3 mysql Å×À̺í ÃÖ´ë Å©±â

10. mysqlÀÇ ÃÖ´ë ¼º´É Çâ»ó ¹æ¹ý
10.1 ¹öÆÛ Å©±â Á¶Á¤
10.2 ¸Þ¸ð¸® »ó¿ë ¹æ¹ý
10.3 ¼Óµµ Çâ»ó¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â ÄÄÆÄÀÏ/¸µÅ© ¹æ¹ý
10.4 À妽º »ç¿ë¹æ¹ý
10.5 WHERE ¹®¿¡¼­ ÃÖÀûÈ­Çϱâ
10.6 Å×ÀÌºí ¿­°í ´Ý´Â ¹æ¹ý
        10.6.1 µ¥ÀÌÅͺ£À̽º¿¡¼­ ¸¹Àº ¼öÀÇ Å×À̺íÀ» ¸¸µé¶§ÀÇ ´ÜÁ¡
10.7 ¸¹Àº Å×À̺íÀ» ¿©´Â ÀÌÀ¯
10.8 µ¥ÀÌÅͺ£À̽º¿Í Å×ÀÌºí¿¡¼­ ½Éº¼¸µ ¸µÅ© »ç¿ë
10.9 Å×ÀÌºí¿¡ ¶ô °Å´Â ¹æ¹ý
10.10 Å×À̺íÀ» ºü¸£°í ÀÛ°Ô ¹è¿­ÇÏ´Â ¹æ¹ý
10.11 INSERT ¹®¿¡¼­ ¼Óµµ¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â ºÎºÐ
10.12 DELETE ¹®¿¡¼­ ¼Óµµ¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â ºÎºÐ
10.13 mysql¿¡¼­ ÃÖ´ë ¼Óµµ¸¦ ¾ò´Â ¹æ¹ý
10.14 ·Î¿ì Æ÷¸Ë°ú ´Ù¸¥ Á¡Àº ¹«¾ùÀΰ¡? ¾ðÁ¦ VARCHAR/CHARÀ» »ç¿ëÇØ¾ß Çϴ°¡?

11. mysql º¥Ä¡¸¶Å©

12. mysql À¯Æ¿¸®Æ¼
        12.1 ¼­·Î ´Ù¸¥ mysql ÇÁ·Î±×·¥ °³°ý
        12.2 ÅؽºÆ® ÆÄÀÏ¿¡¼­ µ¥ÀÌÅÍ °¡Á®¿À±â
        12.3 mysql ¾ÐÃà Àбâ Àü¿ë Å×ÀÌºí »ý¼º±â

13. Å×À̺í À¯Áöº¸¼ö ¹× ÆÄ¼Õ º¹±¸¿¡ isamchk »ç¿ëÇϱâ
        13.1 isamchk ¸í·É¾î »ç¿ë¹ý
        13.2 isamchk ¸Þ¸ð¸® »ç¿ë¹ý
        13.3 Å×À̺í À¯Áöº¸¼ö ¼³Á¤
        13.4 Å×ÀÌºí¿¡¼­ Á¤º¸ ¾ò±â
        13.5 ÆÄ¼Õ º¹±¸¿¡ isamchk »ç¿ëÇϱâ
                13.5.1 ¿¡·¯°¡ ³µÀ»¶§ Å×À̺í Á¡°Ë ¹æ¹ý
                13.5.2 Å×ÀÌºí º¹±¸ ¹æ¹ý
                13.5.3 Å×À̺í ÃÖÀûÈ­Çϱâ

14. mysql¿¡ »õ·Î¿î ±â´É Ãß°¡
        14.1 »õ·Î¿î »ç¿ëÀÚ Á¤ÀÇ ±â´É Ãß°¡
                14.1.1 UDF calling sequences
                14.1.2 Argument processing
                14.1.3 Return values and error handling
                14.1.4 »ç¿ëÀÚ Á¤ÀÇ ±â´É ÄÄÆÄÀÏ ¹× ¼³Ä¡Çϱâ

        14.2 »õ·Î¿î native ±â´É Ãß°¡

15. mysql ODBC Áö¿ø
        15.1 MyODBC°¡ Áö¿øÇÏ´Â ¿î¿µÃ¼Á¦
        15.2 MyODBC¿¡ ¹®Á¦°¡ ÀÖÀ»¶§
        15.3 MyODBC¿Í ÀÛµ¿ÇÏ´Â ÇÁ·Î±×·¥
        15.4 ODBC °ü¸®ÀÚ ÇÁ·Î±×·¥ ¼³Á¤ ¹æ¹ý
        15.5 ODBC¿¡¼­ AUTO_INCREMENT Ä÷³ÀÇ °ª °¡Á®¿À±â

16. ÀϹÝÀûÀÎ ¹®Á¦ ¹× ¿¡·¯
        16.1 mysql »ç¿ë½Ã ÀϹÝÀûÀÎ ¿¡·¯
                16.1.1 mysql ¼­¹ö°¡ ¸ÀÀÌ °£ °æ¿ì
                16.1.2 local mysql ¼­¹ö¿¡ Á¢¼ÓÀÌ ¾ÈµÇ´Â °æ¿ì
                16.1.3 Host '...' is blocked ¿¡·¯
                16.1.4 Out of Memory ¿¡·¯
                16.1.5 Packet too large ¿¡·¯
                16.1.6 The table is full ¿¡·¯
                16.1.7 Commands out of sync ¿¡·¯(Ŭ¶óÀ̾ðÆ®)
                16.1.8 Ignoring user ¿¡·¯
                16.1.9 Table 'xxx' doesn't exist ¿¡·¯
        16.2 mysql¿¡¼­ µð½ºÅ©°¡ ²Ë áÀ»¶§
        16.3 ÅؽºÆ® ÆÄÀÏ¿¡¼­ SQL ¹®Àå ½ÇÇàÇϱâ
        16.4 mysql¿¡¼­ Àӽà ÆÄÀÏÀ» ÀúÀåÇÏ´Â °÷
        16.5 /tmp/mysql.sockÀ» Áö¿öÁöÁö ¾Êµµ·Ï º¸È£ÇÏ´Â ¹æ¹ý
        16.6 Access denied ¿¡·¯
        16.7 ÀÏ¹Ý »ç¿ëÀÚ·Î mysql ½ÇÇàÇϱâ
        16.8 ÆÄÀÏ ÆÛ¹Ì¼Ç ¹®Á¦
        16.9 File not found
        16.10 DATE Ä÷³ »ç¿ëÇÒ¶§ ¹®Á¦
        16.11 °Ë»ö¿¡¼­ ´ë¼Ò¹®ÀÚ ±¸º°
        16.12 NULL °ª¿¡¼­ ¹®Á¦
        16.13 alias¿¡¼­ ¹®Á¦
        16.14 °ü·ÃµÈ Å×ÀÌºí¿¡¼­ ·¹Äڵ带 Áö¿üÀ»¶§
        16.15 ÇØ´çÇÏ´Â ·¹Äڵ尡 ¾øÀ»¶§ ¹®Á¦ ÇØ°á
        16.16 ALTER TABLE ¿¡¼­ ¹®Á¦

17. ÀϹÝÀûÀÎ ¹®Á¦ ÇØ°á ¹æ¹ý
        17.1 µ¥ÀÌÅͺ£À̽º º¹»ç
        17.2 µ¥ÀÌÅͺ£À̽º ¹é¾÷
        17.3 °°Àº ¸Ó½Å¿¡¼­ ¿©·¯°³ÀÇ mysql ¼­¹ö ½ÇÇàÇϱâ

18. mysql Ŭ¶óÀ̾ðÆ® Åø°ú API
        18.1 mysql C API
        18.2 C API Å×ÀÌŸŸÀÔ
        18.3 C API ÇÔ¼ö °³°ý
        18.4 C API ÇÔ¼ö ¼³¸í
                **»ý·«**
                18.4.47 mysql_query()°¡ ¼º°øÇߴµ¥µµ mysql_store_result()
                        °¡ NULLÀ» ¹ÝȯÇÏ´Â °æ¿ì
                18.4.48 ÁúÀÇ¿¡¼­ °á°ú ¾ò´Â ¹æ¹ý
                18.4.49 ¸¶Áö¸·À¸·Î ÀÔ·ÂµÈ unique ID ¾ò´Â ¹æ¹ý
                18.4.50 C API¿Í ¸µÅ©ÇÒ¶§ ¹®Á¦Á¡
                18.4.51 thread-safe Ŭ¶óÀ̾ðÆ® ¸¸µé±â
        18.5 mysql perl API
                18.5.1 DBI with DBD :: mysql
                        18.5.1.1 dbi ÀÎÅÍÆäÀ̽º
                        18.5.1.2 DBI/DBD Ãß°¡ Á¤º¸
        18.6MYSQL ÀÚ¹Ù ¿¬°á(JDBC)
        18.7 mysql PHP API
        18.8 MYSQL C++ API
        18.9 mysql Python API
        18.10 Mysql TCL API

19. ´Ù¸¥ µ¥ÀÌÅͺ£À̽º¿Í ºñ±³
        19.1 mSQL°úÀÇ ºñ±³
                19.1.1 mSQL ÅøÀ» mysql·Î ¿Å±â±â
                19.1.2 msql°ú mysql Ŭ¶óÀ̾ðÆ®/¼­¹ö Åë½Å ÇÁ·ÎÅäÄÝÀÇ Â÷ÀÌÁ¡
                19.1.3 msql 2.0°ú mysqlÀÇ SQL ¹® Â÷ÀÌÁ¡
        19.2 PostgreSQL°úÀÇ ºñ±³


ºÎ·Ï A ; MYSQL »ç¿ëÀÚ
ºÎ·Ï B ; °³¹ß ÇÁ·Î±×·¥
ºÎ·Ï C ;MYSQL °³¹ßÀÚ
ºÎ·Ï D ; MYSQL ¹öÀü¾÷ ¿ª»ç
ºÎ·Ï E ; MYSQLÀÇ ¾Ë·ÁÁø ¿¡·¯ ¹× ¼³°è¿¡¼­ ºÎÁ·ÇÑ ºÎºÐ
ºÎ·Ï F ; MYSQL¿¡ Àå·¡ Ãß°¡ÇÒ³»¿ë(The TODO)
ºÎ·Ï G ; ´Ù¸¥ ½Ã½ºÅÛ¿¡ Æ÷ÆÃÇϱâ
ºÎ·Ï H ; MYSQL Á¤±ÔÇ¥Çö½Ä ¼³¸í
ºÎ·Ï I ; Unireg ¼³¸í
ºÎ·Ï J ; ºñMS ¿î¿µÃ¼Á¦¿¡¼­ MYSQL ¼­¹ö ¶óÀ̼¾½º
ºÎ·Ï K ; MS ¿î¿µÃ¼Á¦¿¡¼­ MYSQL ¶óÀ̼¾½º
SQL ¸í·É, ŸÀÔ, ÇÔ¼ö À妽º
°³³ä À妽º
5. mysqlÀÇ Ç¥ÁØ È£È¯¼º

5.1 mysqlÀÇ ANSI SQL92 È®ÀåºÎºÐ
mysql¿¡´Â ´Ù¸¥ sql µ¥ÀÌÅͺ£À̽º¿¡¼­ ãÀ» ¼ö ¾ø´Â È®ÀåµÈ ºÎºÐÀÌ ÀÖ´Ù. ÀÌ·± ºÎºÐÀ» »ç¿ë
ÇÏ´Â °æ¿ì ÁÖÀÇÇØ¾ß ÇÑ´Ù. ¿Ö³Ä¸é  mysql¿¡¼­ »ç¿ëÇÑ Äڵ尡 ´Ù¸¥  SQL ¼­¹ö¿¡ Æ÷ÆÃÇÒ ¼ö
¾øÀ» ¼öµµ Àֱ⠶§¹®ÀÌ´Ù. ¾î¶² °æ¿ì¿¡´Â /*! ... */ Çü½ÄÀÇ ÁÖ¼®¹®À» »ç¿ëÇÑ MYSQL È®ÀåÀ»
ÀÌ¿ëÇØ Æ÷Æð¡´ÉÇÑ Äڵ带 ¸¸µé ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾îº¸ÀÚ:

SELECT /*! STRAIGHT_JOIN */ col_name from table1,table2 WHERE ...

MYSQLÀÇ È®Àå ºÎºÐÀº ´ÙÀ½°ú °°´Ù:
- ÇʵåŸÀÔ MEDIUMINT, SET, ENUM , ±×¸®°í ´Ù¸¥ BLOB ¿Í TEXT ŸÀÔ.
- Çʵå¼Ó¼º AUTO_INCREMENT, BINARY, UNSIGNED and ZEROFILL.
- ¸ðµç ¹®ÀÚ¿­ ºñ±³´Â ±âº»ÀûÀ¸·Î  ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾ÊÀ¸¸ç ÇöÀçÀÇ  ¹®ÀÚ¼Â(±âº»ÀûÀ¸·Î
ISO-8859-1 Latin1)¿¡ ÀÇÇØ Á¤·Ä ¼ø¼­°¡ °áÁ¤µÈ´Ù. ÀÌ°ÍÀ» ¿øÇÏÁö ¾ÊÀ¸¸é  Ä÷³À» BINARY
¼Ó¼ºÀ¸·Î Á¤ÀÇÇØ¾ß Çϸç ÀÌ·± °æ¿ì¿¡´Â mysql ¼­¹ö È£½ºÆ®°¡ »ç¿ëÇÏ´Â ASCII ¼ø¼­¿¡ µû¶ó
¹®ÀÚ¿­À» ºñ±³ÇÑ´Ù.
- MYSQLÀº µ¥ÀÌÅͺ£À̽º¸¦ µð·ºÅ丮·Î ¸¸µé°í Å×À̺íÀº ÆÄÀÏÀ̸§À¸·Î ¸¸µç´Ù. ÀÌ°ÍÀº µÎ
°¡Áö¸¦ ÇÔÃàÇÏ°í ÀÖ´Ù:
    ¤· ÆÄÀÏÀ̸§ÀÇ ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏ´Â (´ëºÎºÐÀÇ  À¯´Ð½º ½Ã½ºÅÛ. ¸®´ª½ºµµ ¸¶Âù°¡Áö°ÚÁö
     ¿ë~) ¿î¿µ  ½Ã½ºÅÛ¿¡¼­´Â MYSQLÀÇ µ¥ÀÌÅͺ£À̽º À̸§°ú  Å×À̺í À̸§Àº ´ë¼Ò¹®ÀÚ¸¦
     ±¸º°ÇÑ´Ù. Å×À̺í À̸§À» ±â¾ïÇϴµ¥ ¹®Á¦°¡ ÀÖ´Ù¸é ¸ðµç °ÍÀ» ¼Ò¹®ÀÚ·Î ¸¸µéÀÚ.
    ¤· Å×À̺íÀÇ ¹é¾÷, À̸§¹Ù²Ù±â, ¿Å±â±â, »èÁ¦,  º¹»ç¸¦ À§ÇØ Ç¥ÁØ ½Ã½ºÅÛ ¸í·ÉÀ»  »ç¿ëÇÒ
     ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î Å×À̺íÀÇ À̸§À» ¹Ù²Ù·Á¸é  ÇØ´çÇÏ´Â Å×À̺íÀÇ `.ISD', `.ISM' and
     `.frm' ÆÄÀÏÀÇ À̸§À» ¹Ù²Ù¸é µÈ´Ù.
- SQL¹®¿¡¼­ db_name.tbl_name ¹®À» ÀÌ¿ëÇÏ¿©  ´Ù¸¥ µ¥ÀÌÅͺ£À̽ºÀÇ Å×ÀÌºí¿¡ Á¢±ÙÇÒ  ¼ö
ÀÖ´Ù. ÀϺΠSQL ¼­¹ö´Â °°Àº ±â´ÉÀ» Áö¿øÇÏÁö¸¸ ÀÌ°ÍÀ» User space¶ó°í ºÎ¸¥´Ù. MYSQLÀº
´ÙÀ½°ú  °°Àº  TABLESPACES¸¦  Áö¿øÇÏÁö  ¾Ê´Â´Ù  :  create  table  ralph.my_table...IN
my_tablespace.
- ¼öÄ¡(¼ýÀÚÇü) Ä÷³¿¡¼­ LIKE¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
- SELECT¹®¿¡¼­   INTO OUTFILE  °ú  STRAIGHT_JOIN  À» »ç¿ëÇÒ   ¼ö ÀÖ´Ù.  7.11
[SELECT] Âü°í.
-EXPLIAN SELECT´Â Å×ÀÌºí¿¡¼­ ¾î¶»°Ô Á¶ÀÎÀÌ µÇ¾ú´ÂÁö¿¡ ´ëÇÑ Á¤º¸¸¦ º¸¿©ÁØ´Ù.
- Use of index names, indexes on a subpart of a field, and use of INDEX or KEY in a
CREATE TABLE statement. 7.6 [CREATE TABLE] Âü°í.
- ALTER TABLE¿¡¼­ CHANGE col_name, DROP col_name ¶Ç´Â DROP INDEX ¸¦ »ç¿ë
ÇÑ´Ù. 7.7 [ALTER TABLE] Âü°í.
- ALTER TABLE ¹®¿¡¼­ IGNORE »ç¿ë.
- ALTER TABLE ¹®¿¡¼­ ´ÙÁß ADD, ALTER, DROP or CHANGE »ç¿ë
- IF EXISTS Å°¿öµå¸¦ ÀÌ¿ëÇÑ DROP TABLE »ç¿ë.
- ÇÑ Å×À̺í À̻󿡼­ DROP TABLE »ç¿ë.
- LOAD DATA INFILE »ç¿ë. ´ëºÎºÐÀÇ °æ¿ì ÀÌ ¹®ÀåÀº  ¿À¶óŬÀÇ LOAD DATA INFILE
°ú ȣȯµÈ´Ù. 7.15 [LOAD DATA INFILE] Âü°í.
(** ¸¹Àº ¾çÀÇ µ¥ÀÌÅ͸¦ ÇѲ¨¹ø¿¡ ÀÔ·ÂÇÒ ¶§ ÀÏÀÏÀÌ INSERT ¹®À» Çϴ  °Íº¸´Ù ¼Óµµ°¡ ºü
¸£´Ù. **)
- OPTIMIZE TABLE ¹® »ç¿ë.
- ¹®ÀÚ¿­Àº ''' ¸¸ÀÌ ¾Æ´Ï¶ó '"' ¶Ç´Â ''' ·Î ´ÝÀ» ¼ö ÀÖ´Ù.
- escape `\' ¹®ÀÚ »ç¿ë.
- SET OPTION ¹®. 7.24 [SET OPTION] Âü°í.
- GROUP BY ºÎºÐ¿¡¼­ ¸ðµç Ä÷³À» »ç¿ëÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ÀÌ·¯ÇÑ  ±â´ÉÀº ÀϹÝÀûÀÎ ÁúÀÇ°¡
¾Æ´Ñ ƯÁ¤ÇÑ ÁúÀÇ¿¡¼­ ¼º´ÉÀ» Çâ»ó½ÃŲ´Ù. 7.3.12 [GROUP BY Functions] Âü°í.
(** ANSI SQL¿¡¼­´Â ¿©·¯ Å×ÀÔ¹ÉÀ» ÀÌ¿ëÇÏ¿© GROUP  BY¸¦ »ç¿ëÇÒ ¶§ »ç¿ëÇÏ°íÀÚ ÇÏ´Â
¸ðµç Ä÷³¿¡ GROUP BY¸¦ ÁöÁ¤ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ÀÌ·¸°Ô µÇ´Â °æ¿ì ºÒÇÊ¿äÇÑ ¿¬»êÀÌ ¼öÇàµÉ
¼ö Àִµ¥ MYSQL¿¡¼­´Â ÀÌ·¯ÇÑ °ÍÀ» ¾ø¾Ø °ÍÀÌ´Ù. 7.3.12¸¦ Âü°íÇÑ´Ù **)
- ´Ù¸¥ SQL ȯ°æÀ» »ç¿ëÇß´ø »ç¿ëÀÚ¸¦ À§ÇØ MYSQLÀº ¸¹Àº  ±â´É¿¡¼­ ¾Ë¸®¾Æ½º¸¦ Áö¿øÇÑ
´Ù. ¿¹¸¦ µé¾î ¸ðµç ¹®ÀÚ Æã¼ÇÀº ANSI SQL °ú ODBC ±¸¹®À» Áö¿øÇÑ´Ù.
- MYSQLÀº C ÇÁ·Î±×·¡¹Ö ¾ð¾î¿Í °°Àº ³í¸®ÀûÀÎ OR °ú AND¸¦ ÀǹÌÇÏ´Â || ¿Í && ¸¦ ÀÎ
½ÄÇÑ´Ù. MYSQL¿¡¼­´Â || ¿Í OR ´Â °°Àº ¸»À̸ç && ¿Í AND µµ ¸¶Âù°¡ÁöÀÌ´Ù. ÀÌ·¯ÇÑ ¹Ì
¹¦ÇÑ ±¸¹®¶§¹®¿¡ MYSQLÀº string  concatenation(¹®ÀÚ¿­ ¿¬°ü, ¿¬°á?)À» À§ÇÑ  ANSI SQL
¿ÀÆÛ·¹ÀÌÅÍÀÎ || À» Áö¿øÇÏÁö ¾Ê´Â´Ù. ´ë½Å CONCAT()¸¦ »ç¿ëÇÑ´Ù. CONCAT() ´Â ¸¹Àº ÀÎ
ÀÚ°¡ À־ MYSQL ¿¡¼­ || ¿ÀÆÛ·¹ÀÌÅÍÀÇ »ç¿ëÀ» º¯È¯Çϱ⠽±´Ù.

MySQL understands the || and && operators to mean logical OR and AND, as in the C
programming language. In  MySQL, ||  and OR are  synonyms, as  are &&  and AND.
Because of this  nice syntax,  MySQL doesn't support  the ANSI  SQL operator  || for
string concatenation; use  CONCAT() instead.  Since CONCAT() takes  any number  of
arguments, it's easy to convert use of the || operator to MySQL.

- Æ÷ÆÃÀÌ °¡´ÉÇϵµ·Ï SQL CODE¿¡¼­  STRAIGHT_JOIN°°Àº MYSQL¸¸ÀÇ Å°¿öµå »ç¿ëÀ»
Áö¿øÇϱâ À§ÇØ ÀÌ·± Å°¿öµå¸¦ /* */ ÁÖ¼®¾È¿¡ ³»ÀåÇÒ ¼ö ÀÖ´Ù. ÁÖ¼®¹®¾ÈÀÇ ³»¿ëÀº '!' ·Î ½Ã
ÀÛÇÑ´Ù. ÀÌ·± °æ¿ì  MYSQL¿¡¼­´Â ÁÖ¼®¹®À» ´Ù¸¥  MYSQL ±¸¹®°ú °°ÀÌ  Çؼ®ÇÏÁö¸¸ ´Ù¸¥
SQL ¼­¹ö¿¡¼­´Â ÀÌ·¯ÇÑ È®Àå±â´ÉÀ» »ç¿ëÇÏÁö ¾Ê°í °Ç³Ê¶é ¼ö ÀÖ´Ù. ¿¹¸¦ º¸ÀÚ:

SELECT /*! STRAIGHT_JOIN */ * from table1,table2 WHERE ...

- ´ÙÀ½ÀÇ ±â´ÉÀ̳ª ¸í·É »ç¿ë:
    ¤· CREATE DATABASE or DROP DATABASE. 7.4 [CREATE DATABASE] Âü°í.
    ¤· MOD() ´ë½Å¿¡ % »ç¿ë. %´Â C ÇÁ·Î±×·¡¸Ó¸¦ À§ÇØ Áö¿øÇÏ¸ç ¶ÇÇÑ PostgresSQL°úÀÇ
     ȣȯ¼ºÀ» À§ÇØ Áö¿øÇÑ´Ù.
    ¤· Ä÷³ ¹®¿¡¼­ =, <>, <= ,<, >=,>, <<, >>, AND, OR, LIKE »ç¿ë.
    ¤· LAST_INSERT_ID(). 18.4.49 [mysql_insert_id()] Âü°í.
    ¤· REGEXP or NOT REGEXP.
    ¤· Çϳª³ª Çϳª ÀÌ»óÀÇ ÀÎÀÚ¸¦ »ç¿ëÇÑ CONCAT() ³ª CHAR(). MYSQL¿¡¼­ ÀÌ·¯ÇÑ Æã
     ¼ÇÀº ¿©·¯°³ÀÇ ÀÎÀÚ¸¦ °¡Áú ¼ö ÀÖ´Ù.
    ¤·  BIT_COUNT(),   ELT(),  FROM_DAYS(),   FORMAT(), IF(),   PASSWORD(),
     ENCRYPT(), PERIOD_ADD(), PERIOD_DIFF(), TO_DAYS(), or WEEKDAY().
    ¤· ¼­ºê½ºÆ®¸µÀ» ¾ø¾Ö´Â µ¥ TRIM()  »ç¿ë.(Use of TRIM() to trim  substrings) ANSI
     SQL ¿¡¼­´Â ´ÜÀÏ ¹®ÀÚ Á¦°Å¸¸ Áö¿øÇÑ´Ù.
(** ²¨¾î¾ï~ Æ®¸²ÀÌ ¼ú¸Ô°í ÇÏ´Â Æ®¸²Àº ¾Æ´Ï¶ø´Ï´Ù... **)
¤· ±×·ì Æã¼Ç¿¡¼­ STD(), BIT_OR() and BIT_AND()
¤· DELET + INSERT ´ë½Å REPLACE »ç¿ë. 7.14 [REPLACE] Âü°í.
¤· FLUSH flush_option ¸í·É.


5.2 MYSQL¿¡¼­ ºüÁø ±â´É
´ÙÀ½ÀÇ ±â´ÉµéÀº ÇöÀç ¹öÀüÀÇ MYSQL¿¡  ºüÁ®ÀÖ´Ù. ´ÙÀ½ ¹öÀü¿¡¼­ÀÇ ¿ì¼±±ÇÀ» È®ÀÎÇ϶ó¸é
MYSQL TODO ¸ñ·ÏÀ»  Âü°íÇÏÀÚ(http://www.mysql.com/Manual_split/manual_Todo.html).
ÀÌ°ÍÀÌ °¡Àå ÃֽŠ¹öÀüÀÇ TODO ¸ñ·ÏÀÌ´Ù. ºÎ·Ï F [TODO] Âü°í.

5.2.1 Sub-selects
´ÙÀ½Àº Mysql¿¡¼­ ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù:

SELECT * FROM table1 WHERE id IN (SELECT id FROM table2);

Mysql¿¡¼­´Â ¿ÀÁ÷ INSERT ... SELECT ... and  REPLACE ... SELECT ... ¸¸À» Áö¿øÇÑ´Ù.
µ¶¸³ÀûÀÎ ¼­ºê-select ¹®Àº 3.23.0¿¡¼­ ¾Æ¸¶µµ »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.  ±×´ë½Å ÇöÀç IN() Æã
¼ÇÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

5.2.2 SELECT INTO TABLE
MysqlÀº ¾ÆÁ÷  SELECT ...  INTO TABLE  ....À» Áö¿øÇÏÁö  ¾Ê´Â´Ù. ÇöÀç,  MysqlÀº ¿ÀÁ÷
SELECT ... INTO OUTFILE ..., ¸¸À» Áö¿øÇÏ¸ç ±âº»ÀûÀ¸·Î´Â µ¿ÀÏÇÏ´Ù.

5.2.3 Æ®·£Àè¼Ç(Transactions)
Æ®·£Àè¼ÇÀº Áö¿øµÇÁö  ¾Ê´Â´Ù. MysqlÀº  °ð atomic(¿øÀÚ¼º?)  ¿ÀÆÛ·¹À̼ÇÀ» Áö¿øÇÒ  °ÍÀ̸ç
atomic ¿ÀÆÛ·¹À̼ÇÀº rollbackÀÌ ¾ø´Â Æ®·£Àè¼Ç°ú ºñ½ÁÇÏ´Ù.  atomic ¿ÀÆÛ·¹À̼ÇÀ» »ç¿ëÇϸç
insert/select/¸ðµç ¸í·ÉÀÇ ±×·ìÀ» ½ÇÇàÇÒ ¼ö ÀÖÀ¸¸ç ¾î¶² ½º·¹µåµµ Ãæµ¹ÇÏÁö ¾ÊÀ» ¼ö ÀÖµµ·Ï
º¸ÀåÇØÁØ´Ù. ÀÌ ¹®¸Æ¿¡¼­ ÀϹÝÀûÀ¸·Î ·Ñ¹é(rollback)Àº  ÇÊ¿ä¾ø´Ù. ÇöÀç LOCK TABLES  ¿Í
UNLOCK TABLES ¸í·ÉÀ»  ÀÌ¿ëÇÏ¿© ´Ù¸¥  ½º·¹µå°¡ Ãæµ¹ÇÏ´Â °ÍÀ»  ¸·À» ¼ö  ÀÖ´Ù. 7.23
[Lock Tables] Âü°í.

5.2.4 ÀúÀå ÇÁ·Î½ÃÀú¿Í Æ®¸®°Å
ÀúÀå ÇÁ·Î½ÃÀú´Â ¼­¹ö¿¡¼­ ÄÄÆÄÀϵǰí ÀúÀåµÉ ¼ö ÀÖ´Â SQL ¸í·É ¼¼Æ®ÀÌ´Ù. ÀÌ·± ±â´ÉÀÌ ¼ö
ÇàµÇ¸é Ŭ¶óÀ̾ðÆ®´Â Àüü ÁúÀǸ¦ ´Ù½Ã ÇÒ ÇÊ¿ä°¡ ¾ø°í ¶ÇÇÑ ÀúÀå ÇÁ·Î½ÃÀú¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ
´Ù. ÀÌ·± ±â´ÉÀÌ ÀÖÀ¸¸é ÁúÀǴ  Çѹø¸¸ Çؼ®µÇ°í ¼­¹ö¿Í Ŭ¶óÀ̾ðÆ®°£ÀÇ  ÁÖ°í¹Þ¾Æ¾ß ÇÏ´Â
µ¥ÀÌÅÍ°¡ ÁÙ¾îµé¹Ç·Î ¼Óµµ°¡ Çâ»óµÈ´Ù. ¶ÇÇÑ ¼­¹öÀÇ  Æã¼Ç ¶óÀ̺귯¸®¸¦ °¡ÁüÀ¸·Î¼­ °³³äÀû
ÀÎ ´Ü°è¸¦ Çâ»ó½Ãų  ¼ö ÀÖ´Ù. (???  You can also  raise the conceptual  level by  having
libraries of functions in the server.)

Æ®¸®°Å´Â Ưº°ÇÑ À̺¥Æ®°¡ ¹ß»ýÇßÀ» ¶§ »ý±â´Â ÀúÀå ÇÁ·Î½ÃÁ®ÀÌ´Ù.  ¿¹¸¦ µé¾î Æ®·£Àè¼Ç Å×
ÀÌºí¿¡¼­ ·¹Äڵ尡 »èÁ¦µÇ°í ¸ðµç Æ®·£Àè¼ÇÀÌ Áö¿öÁú ¶§ »óÀÀÇÏ´Â Å×À̺íÀ» »èÁ¦ÇÒ ¼ö ÀÖ´Â
ÀúÀå ÇÁ·Î½ÃÀú¸¦ ¼³Ä¡ÇÒ ¼ö ÀÖ´Ù.

¾ÕÀ¸·Î´Â ÀúÀå ÇÁ·Î½ÃÀú¸¦ Áö¿øÇÒ ¿¹Á¤ÀÌÁö¸¸ Æ®¸®°Å´Â ¾Æ´Ï´Ù. Æ®¸®°Å´Â ÇÊ¿äÇÏÁö ¾ÊÀº °æ
¿ì¿¡µµ »ç¿ëµÉ ¼ö À־ ÀϹÝÀûÀ¸·Î ¼Óµµ°¡ ´À·ÁÁø´Ù.

¾ðÁ¦ ÀúÀå ÇÁ·Î½ÃÀú¸¦ »ç¿ëÇÏ°Ô  µÉÁö´Â ¾ÕÀ¸·Î Mysql¿¡ Ãß°¡ÇÒ  ¸ñ·ÏÀÎ ºÎ·Ï F¸¦ Âü°íÇÏ
ÀÚ.(The TODO)

(** Àü¹ÝÀûÀ¸·Î Æ®·£Àè¼Ç ó¸®¿Í Æ®¸®°Å µîÀº µ¥ÀÌÅͺ£À̽ºÀÇ ¼Óµµ¸¦ ÀúÇϽÃŵ´Ï´Ù. Mysql
Àº ÀÌ·¸°Ô ¼Óµµ¿¡ ¿µÇâÀ» ¹ÌÄ¥ ¼ö ÀÖ´Â ºÎºÐÀ» Á¦°ÅÇÏ¿©  ºü¸¥ ¼Óµµ¸¦ ³»´Â °ÍÀÌÁö¿ä. ÀÌ·¯
ÇÑ ºÎºÐÀÌ ÀڱⰡ »ç¿ëÇÏ´Â µ¥ÀÌÅͺ£À̽º¿¡¼­ ¾ó¸¶³ª Áß¿äÇÑ°¡ ÆÇ´ÜÀ» ÇØ º¸¾Æ¾ß ÇÒ °ÍÀÔ´Ï
´Ù. º¸Åë ¼ÒÇü DBMS¿¡¼­´Â ȸº¹°ú º´Çà¼öÇàÀ» Áö¿øÇÏÁö ¾Ê´Â °æ¿ì°¡ ¸¹´Ù. Áï º´Çà¼öÇàÀº
¹ß»ýÇÏÁö ¾ÊÀ¸¸ç, ȸº¹Àº »ç¿ëÀÚÀÇ ¹®Á¦·Î »ý°¢ÇÑ´Ù. ±×·¯¹Ç·Î »ç¿ëÀÚ°¡ µ¥ÀÌÅͺ£À̽ºÀÇ  ¿¹
ºñ »çº»À» ÁغñÇϸç, °íÀåÀÌ ¹ß»ýÇϸé ÀÛ¾÷À» ´Ù½Ã ÇØ¾ß ÇÑ´Ù. Æ®¸®°Å°°Àº °æ¿ì´Â ÀÚ·áÀÇ ¹«
°á¼ºÀ» º¸ÀåÇϱâ À§ÇØ ÇÊ¿äÇÑ °ÍÀÌ´Ù. **)

5.2.5 ¿Ü·¡Å°(Foreign Keys)
SQL ¹®¿¡¼­ ¿Ü·¡Å°´Â Å×À̺íÀ» Á¶ÀÎÇÒ ¶§  »ç¿ëÇÏÁö ¾ÊÁö¸¸ ´ëºÎºÐ ÂüÁ¶ ¹«°á¼ºÀ» È®ÀÎÇÒ
¶§ »ç¿ëÇÑ´Ù. SELECT ¹®¿¡¼­ ´ÙÁß Å×ÀÌºí¿¡¼­ ÀڷḦ °¡Á®¿À±æ ¿øÇϸé Å×À̺íÀ» Á¶ÀÎÇؼ­
ó¸®ÇÒ ¼ö ÀÖ´Ù.

SELECT * from table1,table2 where table1.id = table2.id

7.12 [JOIN] Âü°í.

Mysql¿¡¼­ ¿Ü·¡Å°(FOREIGN KEY) ¹®Àº ´Ù¸¥ SQL Á¦Ç°ÀÇ CREATE TABLE ¸í·É°úÀÇ È£
ȯ¼º ¶§¹®¿¡   Á¸ÀçÇÑ´Ù: ¿Ü·¡Å°´Â   ¾Æ¹«°Íµµ ÇÏÁö  ¾Ê´Â´Ù.  ON  DELETE  ...  °¡  ¾ø´Â
FOREIGN KEY ±¸¹®Àº ´ëºÎºÐ ¹®¼­ÀûÀΠ ¸ñÀûÀ¸·Î »ç¿ëÇÑ´Ù. ÀϺΠODBC  ¾ÖÇø®ÄÉÀ̼ÇÀº
ÀÌ°ÍÀ» ÀÚµ¿ÀûÀÎ WHERE ¹®À» ¸¸µé ¶§ »ç¿ëÇÒ °ÍÀÌ´Ù. ±×·¸Áö¸¸ ÀÌ°ÍÀº ´ëºÎºÐ »ý·«(¹«½Ã)
ÇÏ°í ³Ñ¾î°¡±â ½±´Ù. ¿Ü·¡Å°´Â ¶§·Î´Â Á¦¾àÁ¶°Ç üũ(constraint check)·Î »ç¿ëÀ» ÇÏÁö¸¸ ÀÌ
·¯ÇÑ Ã¼Å©´Â µ¥ÀÌÅÍ°¡ Å×ÀÌºí¿¡ Á¤È®ÇÑ ¼ø¼­·Î µé¾î°¥¶§´Â ºÒÇÊ¿äÇÏ´Ù. MysqlÀº ÀϺΠ¾ÖÇÃ
¸®ÄÉÀ̼ǿ¡¼­ ¿Ü·¡Å°°¡ Á¸ÀçÇÏ´Â °ÍÀ» ÇÊ¿ä·Î Çϱ⠶§¹®¿¡(Á¦´ë·Î ÀÛµ¿ÇÏµç  ¾ÈÇÏµç »ó°ü¾ø
ÀÌ) Áö¿øÇÏ´Â °ÍÀÏ »ÓÀÌ´Ù.

Mysql¿¡¼­ ¿Ü·¡Å°¸¦ °¡Áø Å×À̺íÀÇ ·¹Äڵ带  »èÁ¦ÇÒ ¶§ ¾ÖÇø®ÄÉÀ̼ǿ¡ ÀûÀýÇÑ DELETE
¹®À» Ãß°¡ÇÏ¿© ON DELETE ... °¡ ¼öÇàµÇ´Â °ÍÀ»  ¸·À½À¸·Î½á ¹®Á¦¸¦ ÇØ°áÇÒ ¼öÀÖ´Ù. °æÇè
»ó ÀÌ·¸°Ô ÇÏ´Â °ÍÀÌ ¿Ü·¡Å°¸¦ »ç¿ëÇÏ´Â °Í°ú °°ÀÌ ºü¸£¸ç(¾î¶²  °æ¿ì¿¡´Â ´õ ºü¸§) Æ÷ÆÃÇÏ
±â°¡ ´õ ÁÁ´Ù.

°¡±î¿î ½ÃÀϾȿ¡ ¿ì¸®´Â ¿Ü·¡Å° ±â´ÉÀ» È®ÀåÇÒ °ÍÀÌ´Ù. ±×·¡¼­ ÃÖ¼ÒÇÑ mysqldump¿Í ODBC
¿¡¼­ Á¤º¸°¡ ÀúÀåµÇ°í °Ë»öÇÒ ¼ö ÀÖµµ·Ï ÇÒ °ÍÀÌ´Ù.


5.2.5.1 ¿Ü·¡Å°¸¦ »ç¿ëÇÏÁö ¾Ê´Â ÀÌÀ¯

¿Ü·¡Å°¸¦ »ç¿ëÇÒ ¶§ ¾îµð¿¡¼­ Ãâ¹ßÇØ¾ß ÇÒÁö ¸ð¸£´Â ¸¹Àº ¹®Á¦°¡ ÀÖ´Ù:

- Foreign keyµéÀº »óȲÀ» ¸Å¿ì º¹ÀâÇÏ°Ô ¸¸µç´Ù. ¿Ö³ÄÇϸé, foreing keyÀÇ Á¤ÀÇ°¡ database¿¡
´ã°Ü¾ß ÇÏ°í, foreign key¸¦ ±¸ÇöÇÏ´Â °ÍÀº "ÀÚ¿¬½º·±" File »ç¿ë¹ý(data fileµéÀ» ¿Å±â°í,
º¹»çÇÏ°í, »èÁ¦ÇÏ´Â µî...)À» Á¦ÇÑÇÑ´Ù.
(** ¹®ÅÂÁØ´Ô ¿ªÁÖ: ¹ø¿ªÀÌ ÀÌ»óÇѵ¥ ¿Ü·¡Å°°¡ ÀÖÀ¸¸é ÂüÁ¶ ¹«°á¼º ±ÔÄ¢À» À§ÇØ ¿©·¯ °¡Áö
º¸»ó  ¿¬»êÀ» ÇÏ°Ô µÈ´Ù. ÀÌ°ÍÀ» ¶æÇÏ°í ÀÖ´Â µíÇÏ´Ù. **)

- INSERT ¿Í UPDATE ¹®Àº ¼Óµµ¿¡ ¸¹Àº ¿µÇâÀ»  ³¢Ä£´Ù. ±×¸®°í ÀÌ·± °æ¿ì º¸Åë ¿Ã¹Ù¸¥
¼ø¼­·Î ¿Ã¹Ù¸¥ Å×ÀÌºí¿¡ ·¹Äڵ带 »ðÀÔÇϱ⠶§¹®¿¡ ´ëºÎºÐ ¸ðµç ¿Ü·¡Å° üũ´Â »ç¿ëÇÒ ÇÊ¿ä
¾ø´Ù.

- ÇÑÂÊÀÇ ¿µÇâÀÌ Àüü µ¥ÀÌÅͺ£À̽º¿¡ ¿¬¼â ÀÛ¿ëÀ» Çϱ⠶§¹®¿¡ Å×ÀÌºí¿¡¼­ ¾÷µ¥ÀÌÆ®¸¦ ÇÒ
¶§ ¸Å¿ì ¸¹Àº Å×ÀÌºí¿¡¼­ ¶ôÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. ÇÑ Å×ÀÌºí¿¡¼­ ¸ÕÀú ·¹Äڵ带 »èÁ¦ÇÏ°í ±×ÈÄ
¿¡ ´Ù¸¥ Å×ÀÌºí¿¡¼­ ·¹Äڵ带 »èÁ¦ÇÏ´Â °ÍÀÌ ÈξÀ ºü¸£´Ù.

- Table¸¦ ¿ÏÀüÈ÷ Áö¿ì°í, (backupÀ̳ª »õ·Î¿î source·ÎºÎÅÍ) ¸ðµç recordµéÀ» ´Ù½Ã º¹±¸ÇÏ´Â
¹æ¹ýÀ¸·Î TableÀ» º¹±¸ÇÒ ¼ö ¾ø´Ù.

- Foreign key¸¦ »ç¿ëÇÑ´Ù¸é, tableÀ» dump(backup)ÇÏ°í (±× dumpÇÑ ÀڷḦ) restoreÇÏ´Â µ¥
ÀÖ¾î ±× ÀÏ·ÃÀÇ ¼ø¼­¸¦ ÀûÀýÇÏ°Ô ÁöÄÑ¾ß ÇÑ´Ù.

- °¢°¢ÀÇ tableÀÇ Á¤ÀÇ°¡ ¾µ¸ðÀÖ°í ÀûÀýÇÏ´õ¶óµµ, (°¢ TableµéÀÌ »óÈ£ÂüÁ¶ÇÏ°Ô µÈ´Ù¸é) ´Ü¼øÇÑ
create¹®À¸·Î´Â Àç»ý¼ºÀÌ ºÒ°¡´ÉÇÑ circular definition(¼øȯÁ¤ÀÇ)°¡ ½±°Ô ¹ß»ýÇÑ´Ù.
(¿ªÀÚÁÖ: A¶ó´Â TableÀÌ BÀÇ ÀڷḦ ÂüÁ¶ÇÏ´Â foreign key¸¦ ´ã°í ÀÖ°í,
         B´Â C¿¡ ´ëÇÑ foreign key¸¦, C´Â A¿¡ ´ëÇÑ foreign key¸¦ ´ãµµ·Ï tableÀÌ ±¸¼ºµÈ´Ù¸é
         Çѹø¿¡ A,B,C tableÀ» »ý¼ºÇÒ ¼ö ¾ø´Ù. A,B,C¸¦ ¸¸µç´ÙÀ½ °¢°¢ÀÇ foreign key¸¦ ÁöÁ¤ÇØ
         ÁÖ´Â ¹æ¹ýÀ» ¾²°Ô µÈ´Ù.)

¿Ü·¡Å°ÀÇ ÁÁÀº Á¡Àº ´ÜÁö ´ÙÀ½¿Í °°´Ù. ODBC¿Í  ƯÁ¤ÇÑ ´Ù¸¥ Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥¿¡¼­ ¾î
¶»°Ô Å×À̺íÀÌ ¿¬°áµÇ¾î ÀÖ´ÂÁö¸¦ º¼ ¼ö ÀÖ°í ¿¬°á ´ÙÀ̾î±×·¥À» º¸´Âµ¥ »ç¿ëÇÏ¸ç ¾ÖÇø®ÄÉ
À̼ÇÀ» ¸¸µå´Âµ¥ µ½´Â Á¡ÀÌ´Ù.
(¿ªÀÚÁÖ: ÀÌ ±ÛÀº foreign key¿¡ ´ëÇؼ­ ¸Å¿ì ºñÆÇÀûÀÌ´Ù. ÇÏÁö¸¸, ÀÌ°ÍÀº foreign keyÀÇ
         ÀϺΠ±â´ÉÀÏ»ÓÀÌ´Ù. ¹«¾ùº¸´Ùµµ client°¡ °¢ Table³» DATAÀÇ ¿¬°ü°ü°è¿¡ ´ëÇؼ­
         »©¸Ô¾ú´ÂÁö¿¡ ´ëÇؼ­ ÀÏÀÏÀÌ ½Å°æ¾²Áö ¾Ê°Ô ÇÏ°í, Ç×»ó ÀÚ·áÀÇ ¹«°á¼º(Á¤ÇÕ¼º[?])À»
         º¸ÀåÇÑ´Ù´Â °ÍÀº ¸Å¿ì Áß¿äÇÏ´Ù.

         ƯÈ÷, TableÀÌ 1~20°³°¡ ¾Æ´Ñ 100´ÜÀ§°¡ ³Ñ¾î°£´Ù¸é, client¿¡¼­ ÀÏÀÏÀÌ ½Å°æ¾²¸ç
         programingÇÏ´Â °Íµµ ÈûµéÁö¸¸, debuggingµµ ¿¹»óº¸´Ù Èûµé¾îÁø´Ù.
         °¢ table°£ÀÇ ¿¬°á°ü°è¸¦ Àß ¹®¼­È­ÇÑ´Ù¸é programmerµéÀÌ foreign key·Î °íÅë¹Þ±â
         º¸´Ù´Â °ü·Ã TableÀ» checkÇØ¾ß µÇ´Â ¼ö°í¸¦ ´ú°ÔµÈ´Ù.

         foreign key°¡ ±âÇǵǴ ÁÖµÈ ÀÌÀ¯´Â table³»ÀÇ Data¸¦ ¼öÁ¤ÇÏ´Â °ÍÀÌ ½±Áö ¾Ê±â
         ¶§¹®ÀÌ´Ù. ÇöÀå ½Ç¹«ÀÚÀÇ ³í¸®¿¡ ¾î±ß³ª´Â ¿äûÀ» ó¸®ÇÏ´Â µ¥ À־
         foreign key¸¸Å­ °ÅÃßÀ彺·± ³ðµµ ¾øÀ¸¸®¶ó. )

Mysql¿¡¼­´Â °ð ¿Ü·¡Å° Á¤ÀǸ¦ ÀúÀåÇÒ ¼ö ÀÖµµ·Ï Çؼ­ Ŭ¶óÀ̾ðÆ®°¡ ¾î¶»°Ô ¿ø·¡ÀÇ ¿¬°áÀÌ
¸¸µé¾îÁ³´ÂÁö¿¡ ´ëÇؼ­ Áú¹®ÇÏ°í ´äÀ» ¹ÞÀ» ¼ö ÀÖµµ·Ï ÇÒ °ÍÀÌ´Ù. ÇöÀçÀÇ  '.frm' ÆÄÀÏ Æ÷¸Ë
Àº ¾ÆÁ÷ ÀÌ°ÍÀ» Áö¿øÇÏÁö ¸øÇÏ°í ÀÖ´Ù.


5.2.6 ºä

MysqlÀº ºä¸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù. ±×·¸Áö¸¸ TODO(ÀÌÈÄ °³¼± ¸ñ·Ï)¿¡ ÀÖ´Ù.
MySQL doesn't support views, but this is on the TODO.

5.2.7 `--'À» »ç¿ëÇÑ ÁÖ¼®

ÀϺΠ´Ù¸¥ SQL µ¥ÀÌÅͺ£À̽º´Â '--'  ·Î ÁÖ¼®À» ½ÃÀÛÇÑ´Ù. mysql ¸í·É  ¶óÀÎ µµ±¸°¡ '--'·Î
½ÃÀÛÇÏ´Â ¸ðµç ÁÙÀ» Á¦°ÅÇÒ Áö¶óµµ MysqlÀº  '#'À» ÁÖ¼® ¹®ÀÇ ½ÃÀÛÀ¸·Î »ç¿ëÇÑ´Ù.  »ç¿ëÀÚ´Â
¶ÇÇÑ C ¸í·É  ½ºÅ¸ÀÏÀÎ /*  this is  a comment  */ ¸¦  mysql¿¡¼­ »ç¿ëÇÒ  ¼ö ÀÖ´Ù.  7.28
[Comment] Âü°í.

MysqlÀº '--'¸¦ Áö¿øÇÏÁö  ¾ÊÀ» °ÍÀÌ´Ù;  '--'Àº Åðº¸ÇÑ  ÁÖ¼®¹® ÇüÅ·ΠÀÚµ¿À¸·Î  »ý¼ºµÇ´Â
SQL ÁúÀÇ¿¡¼­ ¸¹Àº ¹®Á¦¸¦ ¹ß»ý½ÃŲ´Ù. ´ÙÀ½ÀÇ ¿¹Á¦¸¦ º¸ÀÚ. ¿ì¸®´Â ÀÚµ¿ÀûÀ¸·Î payment¸¦
!payment! ÀÇ °ªÀ¸·Î ÀÔ·ÂÇϵµ·Ï ÇÏ°í ÀÖ´Ù :

UPDATE tbl_name SET credit=credit-!payment!

paymentÀÇ °ªÀÌ À½¼öÀÏ ¶§ ¾î¶² ÀÏÀÌ »ý±æ °ÍÀ̶ó »ý°¢Çϴ°¡?

1--1Àº ÇÕ´çÇÑ SQL¹®À̱⠶§¹®¿¡ '--'°¡ ÁÖ¼®¹®ÀÇ ½ÃÀÛÀ» ÀǹÌÇÏ´Â °ÍÀ» ²¨¸®´Â °ÍÀÌ´Ù.

'--' ÁÖ¼®À» Æ÷ÇÔÇÏ´Â ÅؽºÆ® ÆÄÀÏÀÇ SQL ÇÁ·Î±×·¥À» °¡Á³´Ù¸é ´ÙÀ½°ú °°ÀÌ »ç¿ëÇØ¾ß ÇÑ´Ù:

shell> replace " --" " #" < text-file-with-funny-comments.sql \
         | mysql database

instead of the normal(Á¤»óÀûÀÎ °æ¿ì ´ë½Å???):

shell> mysql database < text-file-with-funny-comments.sql

¸í·É ÆÄÀÏ·Î '--' ÁÖ¼®À» '#' ÁÖ¼®À¸·Î ¹Ù²Ü ¼ö ÀÖ´Ù:

shell> replace " --" " #" -- text-file-with-funny-comments.sql

´ÙÀ½ÀÇ ¸í·ÉÀ¸·Î ¿ø·¡´ë·Î µ¹·Á³õÀÚ:

shell> replace " #" " --" -- text-file-with-funny-comments.sql

(** ÀϺΠSQL¿¡¼­ »ç¿ëÇÏ´Â --  ÁÖ¼®¹®¿¡¼­ ¹®Á¦°¡ »ý±æ ¼ö ÀÖÀ¸¹Ç·Î  MYSQL¿¡¼­´Â #À»
ÁÖ¼®¹®À¸·Î »ç¿ëÇÑ´Ù´Â ¸»ÀÌ´Ù **)

5.3 MysqlÀÌ µû¸£°í Àִ ǥÁØÀº ¹«¾ùÀΰ¡?

Entry level SQL92. ODBC level 0-2.


5.4 BLOB ¿Í TEXT ŸÀÔÀÇ Á¦ÇÑ
BLOB ³ª TEXT Çʵ忡¼­ GROUP BY ³ª ORDER BY¸¦ »ç¿ëÇÏ±æ ¿øÇÏ¸é ±× Çʵ带 °íÁ¤
±æÀÌ °´Ã¼·Î ¸¸µé¾î¾ß ÇÑ´Ù. ÀÌ·¸°Ô  Çϴ ǥÁØÀûÀÎ ¹æ¹ýÀº SUBSTRING  Æã¼ÇÀ» »ç¿ëÇÏ´Â
°ÍÀÌ´Ù. ¿¹¸¦ º¸ÀÚ:

mysql> select comment from tbl_name order by SUBSTRING(comment,20);

ÀÌ·¸°Ô ÇÏÁö ¾ÊÀ¸¸é Á¤·ÄÇÒ ¶§  ¿ÀÁ÷ ù ¹ø° max_sort_lengths  (±âº»°ª=1024)¸¸À» °í·ÁµÈ
´Ù.

BLOB ¿Í TEXT ´Â ±âº»°ªÀ» °¡Áú ¼ö ¾øÀ¸¸ç ¶ÇÇÑ ¾ðÁ¦³ª NULL Ä÷³ÀÏ °ÍÀÌ´Ù.

BLOB and  TEXT cannot   have DEFAULT values   and will also  always  be NULL
columns.

5.5 COMMIT-ROLLBACK ¾øÀÌ ¾î¶»°Ô ´ëÄ¡ÇÒ ¼ö ÀÖÀ»±î?
MysqlÀº COMMIT-ROLLBACK À» Áö¿øÇÏÁö ¾Ê´Â´Ù. ¹®Á¦´Â COMMIT-ROLLBACKÀ» È¿
°úÀûÀ¸·Î ´Ù·ç±â À§Çؼ­´Â Mysql¿¡¼­ ÇöÀç »ç¿ëÇÏ´Â °Í°ú ¿ÏÀüÈ÷ ´Ù¸¥ Å×ÀÌºí ¼³°è°¡ ÇÊ¿ä
ÇÏ´Ù´Â °ÍÀÌ´Ù. MysqlÀº ¶ÇÇÑ Å×À̺íÀ» ÀÚµ¿  Ŭ¸°¾÷ÇÏ´Â Ãß°¡ÀûÀÎ ½º·¹µå¿Í ´õ ¸¹Àº µð½Ã
Å©¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â ±â´ÉÀÌ ÇÊ¿äÇÏ´Ù. ÀÌ·¯ÇÑ  ±â´ÉÀº ÇöÀ纸´Ù mysqlÀ» 2-4¹è ´À¸®°Ô ¸¸
µç´Ù. MysqlÀº ´ëºÎºÐÀÇ  ´Ù¸¥ SQL µ¥ÀÌÅͺ£À̽ºº¸´Ù  ÈξÀ ´õ ºü¸£´Ù.  (ÀüÇüÀûÀ¸·Î ÃÖ¼Ò
2-3´ë ºü¸§) ÀÌ·¯ÇÑ ÀÌÀ¯´Â Mysql¿¡ COMMIT-ROLLBACKÀÌ ¾ø±â ¶§¹®ÀÌ´Ù.

´çºÐ°£Àº ¿ì¸®´Â   SQL ¼­¹ö  ¾ð¾îÀÇ  ¼º´ÉÀ»  Çâ»ó½ÃÅ°´Âµ¥ ´õ   ÁÖ·ÂÇÒ °ÍÀÌ´Ù.  ´ëºÎºÐ
COMMIT-ROLLBACK ±â´ÉÀÌ Á¤¸»·Î ÇÊ¿äÇÑ °æ¿ì´Â µå¹°´Ù. ¶ÇÇÑ ÀÌ·¸°Ô ÇÏ´Â °ÍÀÌ ´õ ÁÁ
Àº ¼º´ÉÀ» ³¾ ¼ö ÀÖ´Ù.

ÀϹÝÀûÀ¸·Î Æ®·£Àè¼ÇÀÌ ÇÊ¿äÇÑ ·çÆ®´Â LOCK TABLES¸¦ »ç¿ëÇØ Äڵ带 ©  ¼ö ÀÖ´Ù. ¶ÇÇÑ
·¹Äڵ带 ¾÷µ¥ÀÌÆ®ÇÒ ¶§ Ä¿¼­¸¦ »ç¿ëÇÒ ÇÊ¿ä°¡ ¾ø´Ù.

¿ì¸®´Â Æ®·£Àè¼Ç°ú Ä¿¼­¸¦ TODO¿¡ ³Ö¾úÁö¸¸  ¿ì¼±±ÇÀÌ ³ôÀº °ÍÀº ¾Æ´Ï´Ù.  ÀÌ·¯ÇÑ ±â´ÉÀ»
¼öÇàÇÑ´Ù¸é CREATE TABLE ÀÇ ¿É¼ÇÀ¸·Î µÉ °ÍÀÌ´Ù. ÀÌ°ÍÀº ¿É¼ÇÀ¸·Î ÁöÁ¤ÇÑ Å×ÀÌºí¿¡¼­
¸¸ ÀÛµ¿ÇÏ¸ç ±× Å×À̺íÀº ´À¸®°Ô µÉ °ÍÀ̶ó´Â °ÍÀ» ÀǹÌÇÑ´Ù.

¿ì¸®´Â   100%   º¸ÆíÀûÀΠ  µ¥ÀÌÅͺ¸´Ù´Â   Á¤¸»·Î   ºü¸¥    µ¥ÀÌÅͺ£À̽º°¡   ÇÊ¿äÇÏ´Ù.
COMMIT-ROLLBACK ±â´ÉÀ» ¼öÇàÇÏ´õ¶óµµ ¼Óµµ¿¡ ¼Õ»óÀÌ ¾ø´Ù¸é  ¿ì¸®´Â ±×°ÍÀ» Áö¿øÇÒ
°ÍÀÌ´Ù. ´çºÐ°£Àº ´õ Áß¿äÇÏ°Ô ÇؾßÇÒ ÀϵéÀÌ  ¸¹ÀÌ ÀÖ´Ù. ¿ì¸®°¡ ¾î¶² °Í¿¡ ¿ì¼±±ÇÀ»  µÎ°í
ÀÖ´ÂÁö´Â TODO¸¦ Âü°íÇÏÀÚ. »óÀ§ ´Ü°èÀÇ Áö¿øÀ» ¹Þ´Â °í°´Àº ÀÌ°ÍÀ» ¹Ù²Ü ¼ö ÀÖÀ¸¸ç ¿ì¼±
±ÇÀÌ º¯°æµÉ ¼öµµ ÀÖ´Ù.

ÇöÀçÀÇ ¹®Á¦´Â ½ÇÁ¦·Î ROLLBACK ÀÌ´Ù. ·Ñ¹é¾øÀÌ LOCK TABLESÀ» ÀÌ¿ëÇÏ¿© ¿©·¯ Á¾·ù
ÀÇ COMMIT¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ·Ñ¹éÀ» Áö¿øÇÏ±â  À§ÇØ MysqlÀº ¾÷µ¥ÀÌÆ®°¡ µÈ ¸ðµç ¿¹Àü
·¹Äڵ带 ÀúÀåÇÏ°í ·Ñ¹éÀÌ ÀÏÀ̳µÀ» ¶§ ½ÃÀÛ ½ÃÁ¡À¸·Î µ¹¾Æ°¥ ¼ö ÀÖµµ·Ï ¹Ù²Ù¾î¾ß ÇÑ´Ù. ¿¹
¸¦ µé¾î ÀÌ·¯ÇÑ °ÍÀº ÀüÇô ¾î·ÆÁö ¾Ê´Ù.(ÇöÀçÀÇ isamlog ´Â ÀÌ·± °æ¿ì¸¦ À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ
´Ù) ±×·¯³ª ALTER/DROP/CREATE TABLE¿¡¼­ ·Ñ¹éÀ» ¼öÇàÇÏ´Â °ÍÀº ¹«Ã´ ¾î·Æ´Ù.

·Ñ¹é »ç¿ëÀ» ÇÇÇϱâ À§ÇØ ´ÙÀ½ÀÇ Àü·«À» »ç¿ëÇÒ ¼ö ÀÖ´Ù:

1. Á¢±ÙÇϱ⠿øÇÏ´Â ¸ðµç Å×ÀÌºí¿¡ ¶ôÀ» »ç¿ë. LOCK TABLES ... 
2. Á¶°Ç Å×½ºÆ®(Test conditions)
3. ¸ðµç °ÍÀÌ Á¦´ë·Î µÈ´Ù¸é ¾÷µ¥ÀÌÆ®¸¦ ÇÑ´Ù.
4. UNLOCK TABLES

ÀϹÝÀûÀ¸·Î °¡´ÉÇÑ ·Ñ¹éÀ» ÀÌ¿ëÇØ Æ®·£Àè¼ÇÀ» »ç¿ëÇÏ´Â °Íº¸´Ù´Â ÀÌ·¯ÇÑ ¹æ¹ýÀÌ ÈξÀ ´õ ºü
¸£´Ù. ±×·¸Áö¸¸ Ç×»ó »ç¿ë°¡´ÉÇÑ °ÍÀº ¾Æ´Ï´Ù. ÀÌ·¯ÇÑ ¹æ¹ýÀ¸·Î ÇØ°áÇÒ ¼ö ¾ø´Â À¯ÀÏÇÑ »óȲ
Àº ¾÷µ¥ÀÌÆ®Áß ´©±º°¡°¡ ½º·¹µå¸¦ Á׿´À» ¶§ÀÌ´Ù. ÀÌ·± °æ¿ì ¸ðµç ¶ôÀº ÇØÁ¦°¡ µÈ´Ù. ±×·¸Áö
¸¸ ¾÷µ¥ÀÌÆ®ÀÇ ÀϺδ ½ÇÇàµÇÁö ¾ÊÀ» °ÍÀÌ´Ù.

¹°·Ð ´ÜÀÏ ¿ÀÆÛ·¹À̼ǿ¡¼­ ·¹Äڵ带 ¾÷µ¥ÀÌÆ®ÇÏ´Â Æã¼ÇÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ÀÇ Å×Å©´ÐÀ»
»ç¿ëÇÏ¸ç ¸Å¿ì È¿À²ÀûÀÎ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µé ¼ö ÀÖ´Ù:

- ÇöÀç °ª°ú °ü·ÃµÇ¾î ÀÖ´Â Çʵ带 ¼öÁ¤
- ½ÇÁ¦·Î º¯È­°¡ »ý°åÀ»¶§¸¸ Çʵ带 ¾÷µ¥ÀÌÆ®

¿¹¸¦ µé¾î, ¾î¶² °í°´ Á¤º¸¸¦ ¾÷µ¥ÀÌÆ® ÇÒ ¶§ ¿ÀÁ÷ ¹Ù²ï µ¥ÀÌÅ͸¸ ¾÷µ¥ÀÌÆ®¸¦ ÇÑ´Ù. ±×¸®°í
For example, when we are doing updates on some customer information, we update only
the customer data that have  changed and test only  that none of the changed  data, or
data that depend on the changed data, have changed compared to the original row.
º¯È­µÈ µ¥ÀÌÅÍÀÇ Å×½ºÆ®´Â UPDATE ¹®¿¡¼­  WHRE ÀýÀ» »ç¿ëÇÏ¿© ÇÒ ¼ö  ÀÖ´Ù. ·¹Äڵ尡
¾÷µ¥ÀÌÆ®µÇÁö ¾Ê¾Ò´Ù¸é Ŭ¶óÀ̾ðÆ®¿¡ ´ÙÀ½°ú °°Àº ¸Þ½ÃÁö¸¦ ÁØ´Ù:  "´ç½ÅÀÌ ¹Ù²Û µ¥ÀÌÅÍ ÀÏ
ºÎ°¡ ´Ù¸¥ »ç¿ëÀÚ¿¡ ÀÇÇØ  ¹Ù²î¾ú½À´Ï´Ù". ±×·¯°í³ª¼­ ¿ì¸®´Â  À©µµ¿ì¿¡¼­ ¿¹ÀüÀÇ ·¹ÄÚµå¿Í
ÇöÀçÀÇ ·¹Äڵ带 ºñ±³ÇÏ¿© º¸¿©ÁØ´Ù. ±×·¯¸é  »ç¿ëÀÚ´Â ¾î¶² °í°´ Á¤º¸  ·¹Äڵ带 »ç¿ëÇÒÁö
°áÁ¤ÇÒ ¼ö ÀÖ´Ù.

ÀÌ·¸°Ô Çϸé "Ä÷³ ¶óÅ·"°ú ºñ½ÁÇÏ´Ù. ±×·¸Áö¸¸ ½ÇÁ¦·Î´Â ´õ ºü¸£´Ù.  ¿Ö³ÄÇϸé ÇöÀçÀÇ °ª°ú
°ü·ÃµÇ¾î ÀÖ´Â °ªÀÇ Ä÷³¸¸ ¾÷µ¥ÀÌÆ®Çϱ⠶§¹®ÀÌ´Ù.  ÀÌ·¸³ª ÀüÇüÀûÀÎ ¾÷µ¥ÀÌÆ®¹®Àº ´ÙÀ½°ú
ºñ½ÁÇÒ °ÍÀÌ´Ù:

UPDATE tablename SET pay_back=pay_back+'relative change';

UPDATE customer
  SET
    customer_date='current_date',
    address='new address',
    phone='new phone',
    money_he_owes_us=money_he_owes_us+'new_money'
  WHERE
    customer_id=id AND address='old address' AND phone='old phone';

Áö±Ý º¸µíÀÌ   ÀÌ·¸°Ô ÇÏ¸é  ¸Å¿ì  È¿À²ÀûÀÌ¸ç  ¼³»ç ´Ù¸¥   Ŭ¶óÀ̾ðÆ®°¡ pay_back   À̳ª
money_he_owes_us Ä÷³ÀÇ °ªÀ» ¹Ù²Ù¾úÀ» ¶§¶óµµ Á¦´ë·Î ÀÛµ¿ÇÑ´Ù.

´ëºÎºÐÀÇ °æ¿ì, »ç¿ëÀÚ´Â Å×ÀÌºí¿¡¼­ À¯ÀÏÇÑ °ª(identifiers)À» °ü¸®Çϱâ À§ÇØ ·Ñ¹é°ú  Å×À̺í
¶ôÀ» »ç¿ëÇÏ°í ½Í¾îÇÑ´Ù. ÀÌ°ÍÀº  AUTO_INCREMENT Ä÷³°ú SQL  LAST_INSERT_ID() 
Æã¼Ç, ¶Ç´Â mysql_insert_id() ÀÇ C API Æã¼ÇÀ» »ç¿ëÇÏ¿© ´õ¿í  È¿À²ÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. 
18.4.49 [mysql_insert_id()] Âü°í.

TcX¿¡¼­´Â ¾ðÁ¦³ª ÀÌ·± ¹®Á¦¸¦ ÇØ°áÇÒ  ¼ö Àֱ⠶§¹®¿¡ °á°í low-level  ¶ôÀ» ÇÊ¿ä·Î ÇÏÁö
¾Ê´Â´Ù. ¾î¶² °æ¿ì¿¡´Â Á¤¸»·Î ·Î¿ì-¶ôÀÌ ÇÊ¿äÇÏ´Ù. ±×·¸Áö¸¸ ÀÌ·± °æ¿ì´Â ±Ø¼Ò¼öÀÌ´Ù. ·Î¿ì
-·¹º§ ¶ôÀ» ¿øÇϸé Å×ÀÌºí¿¡¼­ Ç÷¡±× Ä÷³À» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½°ú °°´Ù:

UPDATE tbl_name SET row_flag=1 WHERE id=ID;

¸¸¾à row°¡ ¹ß°ßµÇ°í row_flag°¡ ¿ø·¡ÀÇ  row¿¡¼­ ÀÌ¹Ì 1ÀÌ ¾Æ´Ï¶ó¸é  ¿µÇâÀ» ¹ÞÀº rowÀÇ
¼ýÀڷμ­ 1ÀÏ ¹ÝȯÇÑ´Ù.

MySQL returns 1 fro the number of  affected rows if the row was found  and row_flag
wasn't already 1 in the original row.

6. Mysql Á¢±Ù ±ÇÇÑ ½Ã½ºÅÛ

mysql Àº Áøº¸ÀûÀÌÁö¸¸ ºñÇ¥ÁØÀûÀÎ º¸¾È/±ÇÇÑ ½Ã½ºÅÛÀ» °¡Áö°í ÀÖ´Ù. À̹ø Àå¿¡¼­´Â ÀÌ°ÍÀÌ
¾î¶»°Ô ÀÛµ¿ÇÏ´ÂÁö¸¦ ¼³¸íÇÏ°í ÀÖ´Ù.

6.1 ±ÇÇÑ ½Ã½ºÅÛÀ̶õ ¹«¾ùÀΰ¡?
Mysql ±ÇÇÑ ½Ã½ºÅÛÀÇ ÁÖ¿ä ±â´ÉÀº µ¥ÀÌÅͺ£À̽º¿¡¼­ select, insert, update, delete ±ÇÇÑ
À» È£½ºÆ®ÀÇ »ç¿ëÀÚ À̸§°ú °ü·ÃÁþ´Â °ÍÀÌ´Ù.

Ãß°¡ÀûÀÎ ±â´É¿¡´Â ÀÍ¸í »ç¿ëÀÚ  ±â´É°ú LOAD DATA INFILE °ú °ü¸®ÀÚ ¿ÀÆÛ·¹À̼ǰú °°Àº my
sql¸¸ÀÇ  Ư¼öÇÑ ±ÇÇÑÀ» Çã¿ëÇÏ´Â ºÎºÐÀÌ Æ÷ÇԵǾî ÀÖ´Ù.


Mysql¿¡¼­ ÀÎÁõÀ» ¸ñÀûÀ¸·Î »ç¿ëÇÏ´Â »ç¿ëÀÚ À̸§Àº À¯´Ð½º »ç¿ëÀÚ À̸§(·Î±×ÀÎ À̸§)À̳ª
À§µµ¿ì »ç¿ëÀÚ À̸§°í´Â ÀüÇô °ü°è°¡ ¾ø´Ù´Â °Í!À» ±â¾ïÇÏÀÚ. ´ëºÎºÐ mysql Ŭ¶óÀ̾ðÆ®´Â m
ysql »ç¿ëÀÚ À̸§À¸·Î ÇöÀçÀÇ À¯´Ð½º »ç¿ëÀÚ À̸§À» »ç¿ëÇÏ¿© Á¢¼ÓÇÏ·Á ÇÒ °ÍÀÌ´Ù. ±×·¸Áö
¸¸ ÀÌ°Ç ¿ÀÁ÷ ÆíÀǸ¦ À§Çؼ­ÀÌ´Ù. Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥Àº -u ³ª --user ¿É¼ÇÀ¸·Î ÁöÁ¤ÇÑ ´Ù
¸¥ À̸§À» Çã¿ëÇÑ´Ù. ÀÌ°ÍÀº mysql »ç¿ëÀÚ À̸§¿¡ ºñ¹Ð¹øÈ£¸¦ ¼³Á¤ÇÏÁö ¾ÊÀ¸¸é µ¥ÀÌÅͺ£ÀÌ
½ºÀÇ º¸¾È¿¡ ¹®Á¦°¡ »ý±æ ¼ö ÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ¾î¶² À̸§À» »ç¿ëÇÏ¿© ¼­¹ö¿¡ Á¢¼ÓÇÏ·Á
°í ÇÏ´Â »ç¶÷Àº °¢ À̸§¿¡ ºñ¹Ð¹øÈ£°¡ ¼³Á¤µÇ¾î ÀÖÁö ¾Ê´Ù¸é Á¢¼Ó¿¡ ¼º°øÇÒ °ÍÀÌ´Ù.

À¯´Ð½º »ç¿ëÀÚ À̸§ÀÌ ÀϹÝÀûÀ¸·Î 8±ÛÀÚ·Î Á¦ÇѵǾî ÀÖ´Â °Í°ú ´Ù¸£°Ô mysql »ç¿ëÀÚ À̸§Àº
16±ÛÀÚ±îÁö »ç¿ëÇÒ ¼ö ÀÖ´Ù.

mysql ºñ¹Ð¹øÈ£´Â À¯´Ð½ºÀÇ ºñ¹Ð¹øÈ£¿Í ¾Æ¹« °ü·ÃÀÌ ¾ø´Ù. À¯´Ð½º ¸Ó½Å¿¡ ·Î±×ÀÎÇÒ ¶§ »ç¿ë
ÇÏ´Â ºñ¹Ð¹øÈ£¿Í µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÒ ¶§ »ç¿ëÇÏ´Â ºñ¹Ð¹øÈ£´Â ÀüÇô °ü·ÃÀÌ ¾ø´Ù. ¶ÇÇÑ m
ysqlÀº À¯´Ð½º ·Î±×ÀÎ ÇÁ·Î¼¼½º¿¡¼­ »ç¿ëÇÏ´Â °Í°ú ´Ù¸¥ ¾Ë°í¸®ÁòÀ¸·Î ºñ¹Ð¹øÈ£¸¦ ¾ÏȣȭÇÑ
´Ù.


6.2 mysql ¼­¹ö¿¡ Á¢¼ÓÇϱâ

mysql Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥Àº ÀϹÝÀûÀ¸·Î ¿¬°á Æз¯¹ÌÅÍ(¸Å°³ º¯¼ö)°¡ ÇÊ¿äÇÏ´Ù.: ¿¬°áÇÒ
È£½ºÆ®, »ç¿ëÀÚ À̸§, ºñ¹Ð¹øÈ£. ¿¹¸¦ µé¾î mysql Ŭ¶óÀ̾ðÆ®´Â ´ÙÀ½°ú °°ÀÌ ½ÃÀÛÇÒ ¼ö ÀÖ
´Ù. (¼±Åà ÀÎÀÚ´Â [ ] ·Î ´Ý´Â´Ù)

shell>; mysql [-h host_name] [-u user_name] [-pyour_pass]


-p¿Í µÚ¿¡ ºÙÀº ºñ¹Ð¹øÈ£ »çÀÌ¿¡´Â °ø°£ÀÌ ¾ø´Ù´Â °ÍÀ» ±â¾ïÇÏÀÚ.

-h, -u, -p¸¦ ´ëüÇÒ ¼ö ÀÖ´Â Çü½ÄÀ¸·Î´Â --host=host_name, --user=user_name and --passw
ord=your_pass  ÀÌ ÀÖ´Ù.

mysqlÀº Ä¿¸Çµå ¶óÀο¡¼­ ¿¬°á ¸Å°³º¯¼ö°¡ ºüÁ®ÀÖÀ» ¶§´Â ±âº» °ªÀ» »ç¿ëÇÑ´Ù. ±âº» È£½ºÆ®
À̸§Àº localhost ÀÌ°í ±âº» »ç¿ëÀÚ À̸§Àº À¯´Ð½º ·Î±×ÀÎ À̸§ÀÌ´Ù.(-p °¡ ºüÁ®ÀÖÀ¸¸é ºñ
¹Ð¹øÈ£´Â »ç¿ëÇÏÁö ¾Ê´Â´Ù) ±×·¡¼­ ¸¸¾à À¯´Ð½º »ç¿ëÀÚ À̸§ÀÌ joe ¶ó¸é ´ÙÀ½ÀÇ ¸í·ÉÀº µ¿
ÀÏÇÏ´Ù.:

shell> mysql -h localhost -u joe
shell> mysql -h localhost
shell> mysql -u joe
shell> mysql


´Ù¸¥ mysql Ŭ¶óÀ̾ðÆ®µµ ºñ½ÁÇÏ°Ô ÀÛµ¿ÇÑ´Ù.

À¯´Ð½º ½Ã½ºÅÛ¿¡¼­ ¿¬°áÀ» ÇÒ ¶§ »ç¿ëÇÒ ¼ö ÀÖ´Â ±âº» °ªÀÌ À־ Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥À»
»ç¿ëÇÒ ¶§¸¶´Ù ¸í·ÉÇà¿¡¼­ ¿É¼ÇÀ» »ç¿ëÇÏÁö ¾Ê¾Æµµ µÈ´Ù:

¤· Ȩ µð·ºÅ丮ÀÇ '.my.cnf' ¼³Á¤ ÆÄÀÏÀÇ [client]  ¼½¼Ç¿¡¼­ ¿¬°á º¯¼ö¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù.
ÆÄÀÏ¿¡¼­ ÀÌ¿Í ¿¬°üµÈ ¼½¼ÇÀº ´ÙÀ½°ú °°´Ù:
[client]
host=host_name
user=user_name
password=your_pass

4.14.4 [option files] Âü°í.

¤· ȯ°æ º¯¼ö¸¦ »ç¿ëÇÏ¿© ¿¬°á º¯¼ö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. È£½ºÆ®´Â MYSQL_HOST ·Î ÁöÁ¤ÇÒ ¼ö
ÀÖ´Ù. Mysql  »ç¿ëÀÚ À̸§Àº USER, LOGNAME, ¶Ç´Â LOGINÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. (ÀÌ·¯ÇÑ °ªµéÀº
ÀÌ¹Ì À¯´Ð½º ·Î±×ÀÎ À̸§À¸·Î ¼³Á¤µÇ¾î ÀÖÀ» °ÍÀÌ´Ù. ±×·¯¹Ç·Î ¹Ù²ÙÁö ¾Ê´Â°Ô ÁÁ´Ù) ºñ¹Ð¹ø
È£´Â MYSQL_PWD·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.(±×·¸Áö¸¸ ÀÌ°ÍÀº ¾ÈÀüÇÏÁö ¾Ê´Ù; ´ÙÀ½ ¼½¼ÇÀ» Âü°íÇÏÀÚ)

¿¬°á º¯¼ö°¡ ¿©·¯ °¡Áö ¹æ¹ýÀ» ÁöÁ¤µÇ¾ú´Ù¸é ¸í·ÉÇà¿¡¼­ ÁöÁ¤ÇÑ °ªÀÌ ¼³Á¤ ÆÄÀÏ°ú ȯ°æ º¯
¼ö·Î ¼³Á¤ÇÑ °Íº¸´Ù ¿ì¼±±ÇÀ» °¡Áø´Ù. ¶ÇÇÑ ¼³Á¤ ÆÄÀÏÀÇ °ªÀÌ È¯°æ º¯¼öº¸´Ù ¿ì¼±±ÇÀ» °¡Áø
´Ù.

6. 2. 1 ºñ¹Ð¹øÈ£ÀÇ º¸¾È À¯Áö

´Ù¸¥ »ç¿ëÀÚ°¡ ¹ß°ßÇÒ ¼ö ÀÖ°Ô ºñ¹Ð¹øÈ£¸¦ ÁöÁ¤ÇÏ´Â ¹æ¹ýÀº ±ÇÇÏÁö ¾Ê´Â´Ù. Ŭ¶óÀ̾ðÆ® ÇÁ
·Î±×·¥À» ½ÇÇàÇÒ ¶§ ºñ¹Ð¹øÈ£¸¦ ÁöÁ¤ÇÏ´Â ¹æ¹ýÀº ¾Æ·¡¿Í °°À¸¸ç °¢ ¹æ¹ý¸¶´Ù À§Çèµµ¸¦ °°ÀÌ
¼³¸íÇÏ¿´´Ù:

¤· ¸í·ÉÇà¿¡¼­ -pyour_pass ¶Ç´Â --password=your_pass ¿É¼Ç »ç¿ë.  ÀÌ ¹æ¹ýÀº Æí¸®ÇÏÁö¸¸
À§ÇèÇÑ ¹æ¹ýÀÌ´Ù. ºñ¹Ð¹øÈ£¸¦ ½Ã½ºÅÛ »óȲ ÇÁ·Î±×·¥(ps µî)À» ÅëÇØ º¼ ¼ö Àֱ⠶§¹®¿¡ ´Ù¸¥
»ç¿ëÀÚ°¡ ¸í·©ÇàÀ¸·Î º¼ ¼ö ÀÖ´Ù.(mysql Ŭ¶óÀ̾ðÆ®´Â ÀϹÝÀûÀ¸·Î ÃʱâÈ­µÇ´Â µ¿¾È ¸í·ÉÇà
ÀÎÀÚ¸¦ 0À¸·Î µ¤¾î¾º¿î´Ù. ±×·¸Áö¸¸ °ªÀ» º¼ ¼ö Àִ ªÀº Æ´ÀÌ ¿©ÀüÈ÷ ÀÖ´Ù)

¤· -p ¶Ç´Â --password ¿É¼Ç »ç¿ë(ºñ¹Ð¹øÈ£ °ªÀ» ÁöÁ¤ÇÏÁö´Â ¾ÊÀ½). ÀÌ·± °æ¿ì Ŭ¶óÀ̾ðÆ®
ÇÁ·Î±×·¥Àº Å͹̳ο¡¼­ ºñ¹Ð¹øÈ£¸¦ ¹°¾îº»´Ù:
shell> mysql -u user_name -p
Enter password: ********

Ŭ¶óÀ̾ðÆ®´Â ºñ¹Ð¹øÈ£¸¦ Ä¥ ¶§ Å͹̳ο¡¼­ '*'  ¹®ÀÚ¸¦ º¸¿©ÁØ´Ù. ±×·¯¹Ç·Î ´Ù¸¥ »ç¿ëÀÚ°¡
ºñ¹Ð¹øÈ£¸¦ º¼ ¼ö ¾ø´Ù. ´Ù¸¥ »ç¿ëÀÚ°¡ º¼ ¼ö ¾øÀ¸¹Ç·Î ¸í·ÉÇà¿¡¼­ ºñ¹Ð¹øÈ£¸¦ ÀÔ·ÂÇÏ´Â °Í
º¸´Ù ÈξÀ ´õ ¾ÈÀüÇÏ´Ù. ±×·¸Áö¸¸ ÀÌ ¹æ¹ýÀº ºñ´ëÈ­½ÄÀÇ ½ºÅ©¸³Æ®·Î Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥À»
»ç¿ëÇϸé ÀûÀýÇÏÁö ¾Ê´Ù.

¤· ¼³Á¤ ÆÄÀÏ¿¡ ºñ¹Ð¹øÈ£ ÀúÀå. ¿¹¸¦ µé¾î Ȩ µð·ºÅ丮ÀÇ '.my.cnf' ÆÄÀÏ¿¡¼­ [client] ¼½
¼Ç¿¡ ºñ¹Ð¹øÈ£¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
[client]
password=your_pass

ºñ¹Ð¹øÈ£¸¦ '.my.cnf' ÆÄÀÏ¿¡ ÀúÀåÇÑ´Ù¸é ±× ÆÄÀÏÀº ±×·ìÀ̳ª ´Ù¸¥ »ç¿ëÀÚ°¡ Àбâ/¾²±â¸¦
ÇÒ ¼ö ¾øµµ·Ï ÇØ¾ß ÇÑ´Ù. ÆÄÀÏÀÇ Æ۹̼ÇÀÌ 400 À̳ª 600 ÀÎÁö È®ÀÎÇÏÀÚ.

4.14.4 [¿É¼Ç ÆÄÀÏ] Âü°í.

¤· ºñ¹Ð¹øÈ£¸¦ MYSQL_PWD ȯ°æ º¯¼ö¿¡ ÀúÀåÇÒ ¼ö ÀÖ´Ù. ±×·¸Áö¸¸ ÀÌ ¹æ¹ýÀº Á¤¸»·Î À§ÇèÇÏ
¸ç »ç¿ëÇؼ­´Â ¾ÈµÈ´Ù. ÀϺΠps ÇÁ·Î±×·¥Àº ½ÇÇà ÇÁ·Î¼¼½ºÀÇ È¯°æº¯¼ö¸¦ º¸¿©ÁÖ´Â ¿É¼ÇÀÌ
ÀÖ´Ù; MYSQL_PWD¿¡ ¼³Á¤À» ÇÏ¸é ´Ù¸¥ »ç¶÷µéÀÌ ½±°Ô ºñ¹Ð¹øÈ£¸¦ º¼ ¼ö ÀÖ´Ù. ÀÌ·± ±â´ÉÀÇ p
s°¡ ¾ø´Â ½Ã½ºÅÛÀÏÁö¶óµµ ÇÁ·Î¼¼½º ȯ°æº¯¼ö¸¦ °Ë»öÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ¾ø´Ù°í »ý°¢ÇÏ´Â °Í
Àº Çö¸íÇÏÁö ¸øÇÏ´Ù.

ÀÌÁß¿¡¼­ °¡Àå ¾ÈÀüÇÑ ¹æ¹ýÀº Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥ÀÌ ºñ¹Ð¹øÈ£¸¦ ¿ä±¸Çϰųª ÀûÀýÇÏ°Ô º¸¾È
ÀÌ µÈ '.my.cnf' ÆÄÀÏ¿¡ ºñ¹Ð¹øÈ£¸¦ ÁöÁ¤ÇÏ´Â °ÍÀÌ´Ù.

6.3 mysql¿¡¼­ Á¦°øÇÏ´Â ±ÇÇÑ

±ÇÇÑ°ú °ü·ÃµÈ Á¤º¸´Â mysql µ¥ÀÌÅͺ£À̽ºÀÇ(µ¥ÀÌÅͺ£À̽º À̸§ÀÌ mysql ÀÓ) user, db, hos
t, table_priv, columns_priv  Å×ÀÌºí¿¡ ÀúÀåµÈ´Ù. mysql ¼­¹ö´Â ½ÃÀÛÇÒ ¶§, ±×¸®°í ȯ°æÀ»
ÁöÁ¤ÇÒ ¶§(6.7 [±ÇÇÑ º¯°æ] Âü°í) ÀÌ Å×À̺íÀÇ ³»¿ëÀ» ÀоîµéÀδÙ.

mysql¿¡¼­ Á¦°øÇÏ´Â ±ÇÇÑÀ» ¼³Á¤ÇÒ ¶§ »ç¿ëÇÏ´Â À̸§Àº ¾Æ·¡¿Í °°´Ù.Å×À̺íÀÇ Ä÷³ À̸§Àº
grant tablesÀÇ °¢ ±ÇÇÑ ¹× ±ÇÇÑÀÌ Àû¿ëµÇ´Â context¿Í ¿¬°üµÇ¾î ÀÖ´Ù.


Privilege              Column         Context
(±ÇÇÑ)          (Ä÷³)         (ȯ°æ)
select         Select_priv     tables
insert         Insert_priv     tables
update         Update_priv     tables
delete         Delete_priv     tables
index          Index_priv      tables
alter          Alter_priv      tables
create         Create_priv     databases, tables or indexes
drop            Drop_priv       databases or tables
grant          Grant_priv      databases or tables
reload         Reload_priv     server administration
shutdown       Shutdown_priv   server administration
process        Process_priv    server administration
file            File_priv               file access on server


select, insert, update, delete ±ÇÇÑÀº µ¥ÀÌÅͺ£À̽ºÀÇ Å×ÀÌºí¿¡¼­ ·¹Äڵ忡 ´ëÇÑ ¿ÀÆÛ·¹
À̼ÇÀ» ÇÒ ¼ö ÀÖµµ·Ï Çã¿ëÇÑ´Ù.

SELECT ¹®Àº ¿ÀÁ÷ ½ÇÁ¦·Î Å×ÀÌºí¿¡¼­ ÁÙ(·¹ÄÚµå)¸¦ °¡Á®¿Ã ¶§¸¸ select ±ÇÇÑÀÌ ÇÊ¿äÇÏ´Ù.
¼­¹öÀÇ µ¥ÀÌÅͺ£À̽º¿¡ Á¢±Ù ±ÇÇÑÀÌ ¾ø´Â °æ¿ì¶ó°í ÇÏ´õ¶óµµ ƯÁ¤ÇÑ SELECT  ¹®Àº »ç¿ëÇÒ
¼ö ÀÖ´Ù. ¿¹¸¦ µé¸é °£´ÜÇÑ °è»êÀ» À§ÇØ mysql Ŭ¶óÀ̾ðÆ®¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù:

mysql> SELECT 1+1;
mysql> SELECT PI()*2;

index(À妽º) ±ÇÇÑÀº À妽º¸¦ »ý¼ºÇϰųª Á¦°ÅÇÒ ¼ö ÀÖ´Ù.

alter ±ÇÇÑÀº ALTER TABLE À» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.

create  ¿Í drop ±ÇÇÑÀº »õ·Î¿î µ¥ÀÌÅͺ£À̽º¿Í Å×À̺íÀ» »ý¼ºÇϰųª Á¸ÀçÇÏ´Â µ¥ÀÌÅͺ£ÀÌ
½º¿Í Å×À̺íÀ» Á¦°ÅÇÒ ¼ö ÀÖµµ·Ï Çã¿ëÇÑ´Ù.

»ç¿ëÀÚ¿¡°Ô mysql µ¥ÀÌÅͺ£À̽ºÀÇ drop ±ÇÇÑÀ» Çã¿ëÇϸé, ±× »ç¿ëÀÚ´Â mysql Á¢±Ù±ÇÇÑ Á¤º¸
°¡ ÀúÀåµÈ µ¥ÀÌÅͺ£À̽º¸¦ ¾ø¾Ù ¼ö Àִٴ°Í!À» ¸í½ÉÇÏÀÚ.


grant ±ÇÇÑÀº »ç¿ëÀÚ°¡ °¡Áö°í ÀÖ´Â ±ÇÇÑÀ» ´Ù¸¥ »ç¿ëÀÚ°¡ °¡Áú ¼ö ÀÖµµ·Ï Çã¿ëÇÑ´Ù.

file ±ÇÇÑÀº LOAD DATA INFILE and SELECT ... INTO OUTFILE  ¹®À» ÀÌ¿ëÇÏ¿© ¼­¹ö¿¡ ÆÄÀÏÀ»
ÀúÀåÇÏ°í ÀÐÀ» ¼ö ÀÖ´Â ±ÇÇÑÀ» Çã¿ëÇÑ´Ù. ÀÌ·¯ÇÑ ±ÇÇÑÀ» °¡Áø »ç¿ëÀÚ´Â mysql ¼­¹ö°¡ Àаí
¾µ ¼ö ÀÖ´Â ÆÄÀÏÀ» ÀÐ°í ¾µ ¼ö ÀÖ´Â ±ÇÇÑÀÌ Çã¿ëµÈ´Ù.

³ª¸ÓÁö ±ÇÇѵéÀº °ü¸®ÀÚ ¿ÀÆÛ·¹À̼ǿ¡ »ç¿ëµÇ¸ç mysqladmin ÇÁ·Î±×·¥ÀÇ ±â´ÉÀ» ¼öÇàÇÑ´Ù.
¾Æ·¡ÀÇ Å×À̺íÀº °¢ °ü¸®ÀÚ ±ÇÇÑ¿¡ µû¶ó »ç¿ëÇÒ ¼ö ÀÖ´Â mysqladmin ¸í·ÉÀ» º¸¿©ÁØ´Ù:

Privilege              Commands permitted to privilege holders
(±ÇÇÑ)          (±ÇÇÑ¿¡ µû¶ó Çã¿ëµÇ´Â ¸í·É)
reload         reload, refresh, flush-privileges, flush-hosts, flush-logs, flush-tab
les
shutdown       shutdown
process        processlist, kill


reload ¸í·ÉÀº ¼­¹ö°¡ grant Å×À̺íÀ» ´Ù½Ã ÀÐ¾î µéÀδÙ. refresh ¸í·ÉÀº ¸ðµç ¿­¸° Å×À̺í
À» ´ÝÀ¸¸ç ·Î±× ÆÄÀÏÀ» ¿­°í ´Ý´Â´Ù. flush-privileges ´Â reload ¸í·É°ú µ¿ÀǾîÀÌ´Ù. ´Ù¸¥
flush-* ¸í·ÉÀº refresh ¿Í ºñ½ÁÇÑ ±â´ÉÀ» ¼öÇàÇÑ´Ù. ±×·¯³ª ¹üÀ§¿¡ Á¦ÇÑÀÌ ÀÖÀ¸¸ç ¾î¶² °æ
¿ì¿¡´Â ´õ ¼±ÅÃÇÒ ¸¸ÇÏ´Ù. ¿¹¸¦ µé¾î ·Î±× ÆÄÀϸ¸ ´Ý°í ´Ù½Ã ¿­°íÀÚ ÇÑ´Ù¸é flush-logs °¡
refreshº¸´Ù ´õ ³ªÀº ¼±ÅÃÀÌ´Ù.
(** flushÀÇ ¿É¼ÇÀ¸·Î´Â È£½ºÆ®, ·Î±× ÆÄÀÏ, ±ÇÇÑ ¼³Á¤, Å×À̺í, status variables ¼³Á¤ º¯
¼ö°¡ ÀÖ´Ù. SQL ¹®¿¡¼­ ¶Ç´Â mysqladmin À¯Æ¿¸®Æ¼¸¦ »ç¿ëÇÏ¸é µÈ´Ù. **)

shutdown ¸í·ÉÀº ¼­¹ö¸¦ ¼Ë´Ù¿îÇÑ´Ù. (** ÀÌ°Å ¹ø¿ª ¸Â¾Æ~~?? **)

processlist ¸í·ÉÀº ¼­¹ö¿¡¼­ ½ÇÇàµÇ°í ÀÖ´Â ½º·¹µå¿¡ ´ëÇÑ Á¤º¸¸¦ º¸¿©ÁØ´Ù. kill ¸í·ÉÀº
¼­¹ö ½º·¹µå¸¦ Á×ÀδÙ. ¾ðÁ¦³ª ÀÚ½ÅÀÇ ½º·¹µå´Â º¸°Å³ª Á×ÀÏ ¼ö ÀÖÁö¸¸ ´Ù¸¥ »ç¿ëÀÚ¿¡ ÀÇÇØ
½ÃÀÛµÈ ½º·¹µå´Â ÇÁ·Î¼¼½º ±ÇÇÑÀÌ ÀÖ¾î¾ß º¸°Å³ª Á×ÀÏ ¼ö ÀÖ´Ù.

¸î°¡Áö ±ÇÇÑÀº Á¶½É½º·´°Ô Çã¿ëÇØ¾ß ÇÑ´Ù:y:

¤· grant(Çã¿ë) ±ÇÇÑÀº »ç¿ëÀÚ°¡ ´Ù¸¥ »ç¿ëÀÚÀÇ ±ÇÇÑÀ» ¼³Á¤ÇÒ ¼ö ÀÖµµ·Ï Çã¿ëÇÑ´Ù. ´Ù¸¥
±ÇÇÑ°ú grant ±ÇÇÑÀ» °¡Áø µÎ »ç¿ëÀÚ´Â ±ÇÇÑÀ» °áÇÕÇÒ ¼ö ÀÖ´Ù.
¤· file ±ÇÇÑÀº ¼­¹ö¿¡¼­ ¸ðµç »ç¶÷ÀÌ Àб⠰¡´ÉÇÑ ÆÄÀÏÀ» Àдµ¥ ³²¿ë µÉ ¼ö ÀÖ.... SELEC
T  ¹®À» ÀÌ¿ëÇØ Á¢±ÙÇÒ ¼ö ÀÖ´Â ³»¿ë...
The file privilege can be abused to read any world-readable file on the server into a
database table, the contents of which can then be accessed using SELECT.
(** ±»ÀÌ ±ÇÇÑÀ» ÁÖÁö ¾Ê¾Æµµ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â °ÍÀº ±ÇÇÑÀ» ÁÖÁö ¾Ê´Â°Ô ³´´Ù´Â ¸»ÀÌ°ÚÁö¿ä
**)
¤· shutdown ±ÇÇÑÀº ´Ù¸¥ »ç¿ëÀÚ¿¡°¡ ¿ÏÀüÈ÷ ¼­ºñ½º¸¦ »ç¿ëÇÏÁö ¸øÇϵµ·Ï ³²¿ëµÉ ¼ö ÀÖ´Ù.
¤·  process ±ÇÇÑÀº ºñ¹Ð¹øÈ£¸¦ ¼³Á¤ÇÏ°í ¹Ù²Ù´Â ÁúÀǸ¦ Æ÷ÇÔÇØ ÇöÀç ¼öÇàÇÏ°í ÀÖ´Â ÁúÀǸ¦
º¸´Âµ¥ »ç¿ëµÉ ¼ö ÀÖ´Ù.
¤· mysql µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ ±ÇÇÑÀº ºñ¹Ð¹øÈ£¿Í ´Ù¸¥ Á¢±Ù ±ÇÇÑ Á¤º¸¸¦ ¹Ù²Ù´Â µ¥ »ç¿ëµÉ
¼ö ÀÖ´Ù. (ºñ¹Ð¹øÈ£°¡ ¾ÏȣȭµÇ¾î ÀúÀåµÇ¾ú´Ù°í ÇÏ´õ¶óµµ, ÃæºÐÇÑ ±ÇÇÑÀ» °¡Áø ¾ÇÀÇÀÖ´Â »ç
¿ëÀÚ´Â ´Ù¸¥ ºñ¹Ð¹øÈ£·Ñ ¹Ù²Ü ¼ö ÀÖ´Ù)

mysql ±ÇÇÑ ½Ã½ºÅÛÀ¸·Î ´Ù·ê ¼ö  ¾ø´Â ¸î°¡Áö°¡ ÀÖ´Ù:
¤· Á¢±ÙÀ» °ÅºÎÇÒ »ç¿ëÀÚ¸¦ ¸í¹éÇÏ°Ô ÁöÁ¤ÇÒ ¼ö ¾ø´Ù. ¿Ö³ÄÇÏ¸é »ç¿ëÀÚ¿Í ¿¬°áÀ» °ÅºÎÇÏ´Â
°ÍÀ» ¿ÏÀüÇÏ°Ô ¿¬°ü½Ãų ¼ö ¾ø±â ¶§¹®ÀÌ´Ù.
¤· »ç¿ëÀÚ°¡ Å×ÀÌÅͺ£À̽º¿¡¼­ Å×À̺íÀ» ¸¸µé°í Áö¿ï ¼ö ÀÖ´Â ±ÇÇÑÀ» °¡Áú ¼ö ÀÖÁö¸¸ µ¥ÀÌ
Åͺ£À̽º ÀÚü¸¦ ¸¸µé°í »èÁ¦ÇÒ ¼ö´Â ¾øµµ·Ï ÁöÁ¤ÇÒ ¼ö ¾ø´Ù.
(** ±×·¯´Ï±î create ¿Í drop ±ÇÇÑÀ» ÁÖ¸é µ¥ÀÌÅͺ£À̽º ÀÚü¿¡ ´ëÇØ Á¦¾îÇÒ ¼ö ÀÖÁö¿ä. ±×
¾ÈÀÇ Å×ÀÌºí¸¸ ¸¸µé°í Áö¿ï ¼ö ÀÖµµ·Ï ÇÏÁö´Â ¸øÇÑ´Ù´Â ¸» **)

{{}}
6.4 ±ÇÇÑ ½Ã½ºÅÛ ÀÛµ¿ ¹æ¹ý

mysql ±ÇÇÑ ½Ã½ºÅÛÀº ¸ðµç »ç¿ëÀÚ°¡ Çã¿ëµÈ °Í¸¸Å­¸¸ ÇÒ ¼ö ÀÖµµ·Ï º¸ÁõÇÑ´Ù. mysql ¼­¹ö¿¡
¿¬°áÇÒ ¶§, »ç¿ëÀÚ È®ÀÎÀº ¿¬°áÇÑ È£½ºÆ®¿Í »ç¿ëÀÚ°¡ ÁöÁ¤ÇÑ »ç¿ëÀÚ À̸§¿¡ ÀÇÇØ °áÁ¤µÈ´Ù.
½Ã½ºÅÛÀº »ç¿ëÀÚ È®Àΰú ÁöÁ¤ÇÑ ±ÇÇÑ¿¡ µû¶ó ±ÇÇÑÀ» Çã¿ëÇÑ´Ù.


mysqlÀº »ç¿ëÀÚ¸¦ È®ÀÎÇϴµ¥ È£½ºÆ®À̸§°ú »ç¿ëÀÚ À̸§ µÑ´Ù »ç¿ëÇÑ´Ù. ¿Ö³Ä¸é ÀÎÅͳݿ¡¼­
À̸§ÀÌ °°´Ù°í °°Àº »ç¿ëÀÚ¶ó°í »ý°¢ÇÒ ¼ö´Â ¾ø±â ¶§¹®ÀÌ´Ù. ¿¹¸¦ µé¾î whitehouse.gov¿¡¼­
Á¢¼ÓÇÏ´Â »ç¿ëÀÚ bill Àº microsoft.com¿¡¼­ Á¢¼ÓÇÏ´Â »ç¿ëÀÚ bill °ú °°Àº »ç¶÷ÀÏ ÇÊ¿ä´Â
¾ø´Ù. mysqlÀº ¶§·Ð °°Àº À̸§À» °¡Áö°í ÀÖ´õ¶óµµ È£½ºÆ®¸¦ ÀÌ¿ëÇØ »ç¿ëÀÚ¸¦ ±¸º°ÇÑ´Ù : wh
itehouse.gov¿¡¼­ Á¢¼ÓÇÏ´Â bill¿¡°Ô ƯÁ¤ÇÑ ±ÇÇÑÀ» Çã¿ëÇÒ ¼ö ÀÖ°í microsoft.com¿¡¼­ Á¢
¼ÓÇÏ´Â bill¿¡°Ô ´Ù¸¥ ±ÇÇÑÀ» Çã¿ëÇÒ ¼ö ÀÖ´Ù.

mysqlÀÇ Á¢±Ù Á¦¾î´Â µÎ°¡Áö ´Ü°è°¡ ÀÖ´Ù:

´Ü°è 1: ¼­¹ö¿¡¼­ »ç¿ëÀÚ°¡ ¿¬°áÇÒ ¼ö ÀÖ´ÂÁö ¾ø´ÂÁö ÆÇ´Ü

´Ü°è 2 (¼­¹ö¿¡ »ç¿ëÀÚ°¡ ¿¬°áÀÌ Çã¿ëµÇ¾úÀ» °æ¿ì) : »ç¿ëÀÚ°¡ ¼öÇàÇÏ·Á´Â ¸í·É¿¡ ´ëÇØ Ãæ
ºÐÇÑ ±ÇÇÑÀÌ ÀÖ´ÂÁö °¢ ¿äû¸¶´Ù ¼­¹ö¿¡¼­ ÆÇ´Ü.¿¹¸¦ µé¸é, µ¥ÀÌÅͺ£À̽ºÀÇ Å×ÀÌºí¿¡¼­ sel
ect rows¸¦ ÇÒ¶§, ¶Ç´Â µ¥ÀÌÅͺ£À̽º¿¡¼­ Å×À̺íÀ» Á¦°ÅÇÒ ¶§ ¼­¹ö¿¡¼­ Å×ÀÌºí¿¡ ´ëÇÑ sele
ct ±ÇÇÑÀÌ ÀÖ´ÂÁö µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ Á¦°Å ±ÇÇÑÀÌ ÀÖ´ÂÁö È®ÀÎÀ» ÇÑ´Ù.



¼­¹ö´Â Á¢±Ù Á¦¾îÀÇ °¢ µÎ ´Ü°è¿¡¼­ mysql µ¥ÀÌÅͺ£À̽ºÀÇ user, db, host Å×À̺íÀ» ÀÌ¿ëÇÑ
´Ù.grant Å×À̺íÀÇ Çʵå´Â ¾Æ·¡¿Í °°´Ù:

Table name     user            db              host
Scope fields   Host            Host            Host
(ÇÊµå ¹üÀ§)     User            Db              Db
                Password                User
Privilege fields      Select_priv     Select_priv     Select_priv
(±ÇÇÑ Çʵå)     Insert_priv     Insert_priv     Insert_priv
                Update_priv     Update_priv     Update_priv
                Delete_priv     Delete_priv     Delete_priv
                Index_priv      Index_priv      Index_priv
                Alter_priv      Alter_priv      Alter_priv
                Create_priv     Create_priv     Create_priv
                Drop_priv       Drop_priv       Drop_priv
                Grant_priv      Grant_priv      Grant_priv
                Reload_priv            
                Shutdown_priv          
                Process_priv           
                File_priv              


Á¢±Ç Á¦¾îÀÇ µÎ¹ø° ´Ü°è¸¦ À§ÇØ(¿äû ÀÎÁõ), ¿äûÀÌ Å×ÀÌºí¿¡ °ü°èµÈ °ÍÀ̶ó¸é Ãß°¡ÀûÀ¸·Î
tables_priv ¿Í columns_priv Å×À̺íÀ» Âü°íÇÑ´Ù. ÀÌ Å×À̺íÀÇ Çʵå´Â ´ÙÀ½°ú °°´Ù:

Table name     tables_priv     columns_priv
Scope fields   Host            Host
                Db              Db
                User            User
                Table_name      Table_name
                                Column_name
Privilege fields      Table_priv      Type
                Column_priv    
Other fields   Timestamp       Timestamp
                Grantor




°¢ ½ÂÀÎ(grant) Å×À̺íÀº ÇÊµå ¹üÀ§¿Í ±ÇÇÑ Çʵå·Î ±¸¼ºµÇ¾î ÀÖ´Ù.

ÇÊµå ¹üÀ§´Â Å×ÀÌºí¿¡¼­ °¢ ¿£Æ®¸®ÀÇ ¹üÀ§¸¦ °áÁ¤ÇÑ´Ù. ´Ù½Ã ¸»ÇÏ¸é ¿£Æ®¸®°¡ Àû¿ëµÇ´Â con
text(ȯ°æ, ¹è°æ)ÀÌ´Ù. ¿¹¸¦ µé¸é, Host ¿Í User °ªÀÌ 'thomas.loc.gov' ¿Í 'bob' ÀÎ user
Å×ÀÌºí ¿£Æ®¸®´Â thomas.loc.gov È£½ºÆ®¿¡¼­ bobÀÌ ¿¬°áÀ» ÇÒ¶§ ¼­¹ö¿¡¼­ ÀÎÁõÀ» Çϴµ¥ »ç
¿ëµÈ´Ù.ºñ½ÁÇÏ°Ô Host, User, db Çʵ尪ÀÌ  'thomas.loc.gov', 'bob', 'reports' ÀÎ db Å×
ÀÌºí ¿£Æ®¸®´Â thomas.loc.gov È£½ºÆ®¿¡¼­ bob ÀÌ reports µ¥ÀÌÅͺ£À̽º¿¡ Á¢±ÙÇÒ ¶§ »ç¿ë
µÈ´Ù. tables_priv ¿Í columns_priv Å×À̺íÀº Å×À̺íÀ̳ª °¢ ¿£Æ®¸®°¡ Àû¿ëµÉ ¼ö ÀÖ´Â Å×ÀÌ
ºí/Ä÷³ Á¶ÇÕÀ» °¡¸®Å°´Â ¹üÀ§ Çʵ带 Æ÷ÇÔÇÏ°í ÀÖ´Ù.

Á¢±Ç üũ¸¦ Çϱâ À§ÇØ, HOst °ª ºñ±³´Â ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â´Ù. User, Password, Db,
Table_name °ªÀº ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÑ´Ù. mysql 3.22.12 ¿Í  ÀÌÈÄ ¹öÀü¿¡¼­ Column_name °ªÀº
´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â´Ù. (3.22.11¿¡¼­´Â ´ë¼Ò¹®ÀÚ ±¸º°ÇÔ)

±ÇÇÑ Çʵå´Â Å×ÀÌºí ¿£Æ®¸®¿¡ ½ÂÀεǴ ±ÇÇÑÀ» °¡¸®Å°¸ç ÀÌ´Â ¼öÇàÇÒ ¼ö ÀÖ´Â ¿ÀÆä·¹À̼ÇÀÌ
´Ù. ¼­¹ö´Â »ç¿ëÀÚÀÇ ±ÇÇÑÀ» ¿Ïº®ÇÏ°Ô ¼³Á¤Çϱâ À§ÇØ ´Ù¾çÇÑ ½ÂÀÎ(grant) Å×À̺íÀÇ Á¤º¸¸¦
Á¶ÇÕÇÑ´Ù. ¿©±â¿¡ »ç¿ëÇÏ´Â ±ÔÄ¢Àº 6.6 [Request access]¸¦ Âü°íÇÏÀÚ.

¹üÀ§ Çʵå´Â ¹®ÀÚ¿­ÀÌ¸ç ´ÙÀ½°ú °°ÀÌ Á¤ÀǵǾú´Ù; ±âº» °ªÀº ºó ¹®ÀÚ¿­ÀÌ´Ù:

Field name     Type   
Host            CHAR(60)       
User            CHAR(16)       
Password                CHAR(16)       
Db              CHAR(64)      (CHAR(60) for the tables_priv and columns_priv tables)



user, db, host Å×ÀÌºí¿¡¼­ ¸ðµç ±ÇÇÑ Çʵå´Â ENUM('N','Y')·Î Á¤ÀǵǾî ÀÖ´Ù. -- °¢°¢Àº
'N' ³ª 'Y'ÀÇ °ªÀ» °¡Áö¸ç ±âº»°ªÀº 'N' ÀÌ´Ù.
(** ENUM ŸÀÔÀº ¸ñ·Ï °ªÁß ¿ÀÁ÷ ÇϳªÀÇ °ª¸¸ °¡Áø´Ù.Çʵå ŸÀÔ ÂüÁ¶ **)

tables_priv ¿Í columns_priv Å×ÀÌºí¿¡¼­ ±ÇÇÑ Çʵå´Â SET Çʵå·Î Á¤ÀǵȴÙ:
(** SET ŸÀÔÀº ¸ñ·Ï °ªÁß¿¡ 0À̳ª 1°³ ÀÌ»óÀÇ °ªÀ» °¡Áø´Ù **)

Table name     Field name     Possible set elements
tables_priv     Table_priv      'Select', 'Insert', 'Update',
                                'Delete', 'Create', 'Drop', 'Grant',
                                'References', 'Index', 'Alter'
tables_priv     Column_priv     'Select', 'Insert', 'Update',
                                'References'
columns_priv    Type            'Select', 'Insert', 'Update',
                                'References'

°£´ÜÇÏ°Ô ¸»Çؼ­ ¼­¹ö´Â ½ÂÀÎ(grant) Å×À̺íÀ» ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÑ´Ù:

¤· user Å×À̺íÀÇ scope(¹üÀ§) Çʵå´Â µé¾î¿À´Â ¿¬°á¿¡ ´ëÇØ Çã¿ëÇÒ °ÍÀÎÁö °ÅºÎÇÒ °ÍÀÎÁö
¸¦ °áÁ¤ÇÑ´Ù. Çã¿ëµÈ ¿¬°á¿¡ ´ëÇÏ¿©, ±ÇÇÑ Çʵå´Â »ç¿ëÀÚÀÇ ÀüüÀûÀÎ (superuser) ±ÇÇÑÀ»
°¡¸®Å²´Ù.

¤· db ¿Í host Å×À̺íÀº ÇÔ²² »ç¿ëµÈ´Ù:
        - db Å×À̺íÀÇ ¹üÀ§ Çʵå´Â ¾î¶² È£½ºÆ®¿¡¼­ ¾î¶² µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇØ ¾î¶² »ç¿ë
ÀÚ°¡ Á¢±ÙÇÒ ¼ö ÀÖ´ÂÁö °áÁ¤ÇÑ´Ù. ±ÇÇÑ Çʵå´Â ¾î¶² ¿ÀÆÛ·¹À̼ÇÀÌ Çã¿ëµÇ¾ú´ÂÁö¸¦ °áÁ¤ÇÑ
´Ù.
        - host Å×À̺íÀº db Å×À̺íÀÇ ¿£Æ®¸®¸¦ ¿©·¯°³ÀÇ È£½ºÆ®¿¡ Àû¿ëÇÏ·Á°í ÇÒ ¶§ db Å×
À̺íÀÇ È®ÀåÀ» À§ÇØ »ç¿ëÇÑ´Ù.¿¹¸¦ µé¾î, »ç¿ëÀÚ°¡ ÇöÀç ³×Æ®¿÷ÀÇ ¿©·¯ È£½ºÆ®¿¡¼­ µ¥ÀÌÅÍ
º£À̽º¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÏ·Á¸é,»ç¿ëÀÚÀÇ "db" Å×ÀÌºí ¿£Æ®¸®¿¡ Host °ªÀ» ºñ¿öµÎ°í, "h
ost" Å×ÀÌºí¿¡ °¢ È£½ºÆ®ÀÇ ¿£Æ®¸®¸¦ ³ÖÀ¸¸é µÈ´Ù.ÀÌ·¯ÇÑ ÀýÂ÷´Â 6,6 [Request access]¿¡
ÀÚ¼¼ÇÏ°Ô ³ª¿Í ÀÖ´Ù.

¤· tables_priv ¿Í columns_priv Å×À̺íÀº db Å×À̺í°ú ºñ½ÁÇÏ´Ù. ±×·¸Áö¸¸ ´õ ¼¼ºÎÀûÀ¸·Î
ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù: ÀÌ Å×À̺íµéÀº µ¥ÀÌÅͺ£À̽º ´Ü°è¿¡¼­ ´õ ³ª¾Æ°¡ Å×À̺í°ú Ä÷³ ´Ü°è¿¡ Àû
¿ëÇÒ ¼ö ÀÖ´Ù.

°ü¸® ±ÇÇÑ(reload, shutdown,±âŸ..)Àº ¿ÀÁ÷ user Å×ÀÌºí¿¡¼­¸¸ ÁöÁ¤À» ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ»
±â¾ïÇÏÀÚ! ¿Ö³Ä¸é °ü¸®ÀÚ ¿ÀÆÛ·¹À̼ÇÀº ¼­¹ö ÀÚü¿¡ ´ëÇÑ ¿ÀÆÛ·¹À̼ÇÀ̸ç ƯÁ¤ÇÑ µ¥ÀÌÅͺ£
À̽º¸¦ ÁöÁ¤ÇÏ´Â °ÍÀÌ ¾Æ´Ï´Ù. ±×·¯¹Ç·Î ÀÌ·¯ÇÑ ±ÇÇÑÀº ´Ù¸¥ ½ÂÀÎ(grant) Å×ÀÌºí¿¡ ÀÖÀ» ÇÊ
¿ä°¡ ¾ø´Ù.½ÇÁ¦·Î, ¿ÀÁ÷ user Å×ÀÌºí¸¸ÀÌ °ü¸®ÀÚ ¿ÀÆÛ·¹À̼ÇÀ» ¼öÇàÇÒ ¼ö ÀÖ´ÂÁö ¾ø´ÂÁö¸¦
°áÁ¤ÇÒ ¶§ Âü°í°¡ µÈ´Ù.

ÆÄÀÏ(file) ±ÇÇѵµ ¸¶Âù°¡Áö·Î user Å×ÀÌºí¿¡¼­¸¸ ÁöÁ¤ÇÑ´Ù.À§¿Í °°Àº °ü¸® ±ÇÇÑÀº ¾Æ´Ï´Ù.
±×·¸Áö¸¸ ¼­¹ö È£½ºÆ®¿¡¼­ ÆÄÀÏÀ» Àаųª ¾µ ¼ö ÀÖ´Â ±ÇÇÑÀº Á¢±ÙÇÏ°í ÀÖ´Â µ¥ÀÌÅͺ£À̽º¿Í
¹«°üÇÑ °ÍÀÌ´Ù.

mysqld ¼­¹ö´Â ½ÃÀÛÇÒ ¶§ ½ÂÀÎ(grant) Å×À̺íÀ» Çѹø Àд´Ù. ½ÂÀÎ Å×À̺íÀ» º¯°æÇÏ°í È¿°ú
¸¦ ¹ßÈÖÇÏ·Á¸é 6.7 [Privilege changes]¸¦ Âü°íÇÏÀÚ.

½ÂÀÎ Å×À̺íÀÇ ³»¿ëÀ» ¼öÁ¤ÇßÀ» ¶§ ¿øÇϴ´ë·Î ±ÇÇÑÀÌ ¼³Á¤µÇ¾ú´ÂÁö È®ÀÎÇÏ´Â °ÍÀº ÁÁÀº »ý
°¢ÀÌ´Ù. À¯¿ëÇÑ Áø´Ü ÇÁ·Î±×·¥Àº mysqlaccess ½ºÅ©¸³Æ®·Î¼­ Yves CArlier °¡ mysql distrib
ution À¸·Î Á¦°øÇÏ°í ÀÖ´Ù. ¾î¶»°Ô ÀÛµ¿ÇÏ°í ÀÖ´ÂÁö È®ÀÎÇϱâ À§ÇØ mysqlaccess ¿¡ --help
¿É¼ÇÀ» ÁÖ¾î ½ÇÇàÇغ¸ÀÚ. ¹°·Ð 6.11 [Access denied] ¿Í 6.12 [Security]¸¦ Âü°íÇÏÀÚ.


mysqlaccess´Â ¿ÀÁ÷ user, db, host Å×ÀÌºí¸¸ Á¡°ËÇÑ´Ù. Å×À̺íÀ̳ª Ä÷³ ´Ü°èÀÇ ±ÇÇѱîÁö
´Â Á¡°ËÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ» ±â¾ïÇÏÀÚ.

6.5 Á¢±Ù Á¦¾î, ´Ü°è 1 : ¿¬°á È®ÀÎ(ÀÎÁõ)

mysql ¼­¹ö¿¡ Á¢¼ÓÇÏ·Á°í ÇÒ ¶§ ¼­¹ö´Â »ç¿ëÀÚ È®Àΰú ºñ¹Ð¹øÈ£¸¦ ÅëÇØ Á¢¼ÓÀ» Çã¿ëÇϰųª
°ÅºÎÇÑ´Ù. »ç¿ëÀÚ È®ÀÎÀÌ ¾ÈµÇ¸é ¼­¹ö´Â Á¢¼ÓÀ» ¿ÏÀüÈ÷ °ÅºÎÇÑ´Ù. »ç¿ëÀÚ È®ÀÎÀÌ µÇ¸é ¼­¹ö
´Â ¿¬°áÀ» ¹Þ¾ÆµéÀÌ°í 2¹ø° ´Ü°è·Î µé¾î°¡¸ç ¿äûÀ» ±â´Ù¸°´Ù.

»ç¿ëÀÚ È®ÀÎÀº µÎ°¡Áö Á¤º¸¿¡ ±â¹ÝÇÏ°í ÀÖ´Ù:

¤· Á¢¼ÓÇϴ ȣ½ºÆ®
¤· mysql »ç¿ëÀÚ À̸§

»ç¿ëÀÚ È®ÀÎÀº user Å×À̺íÀÇ ¼¼°¡Áö ¹üÀ§ Çʵå(Host, User, Password)¸¦ »ç¿ëÇÏ¿© ¼öÇàµÈ
´Ù. ¼­¹ö´Â user Å×ÀÌºí ¿£Æ®¸®ÀÇ È£½ºÆ®À̸§°ú »ç¿ëÀÚ À̸§ÀÌ ¸ÂÀ¸¸ç, ºñ¹Ð¹øÈ£°¡ Á¤È®ÇÒ
¶§¸¸ Á¢¼ÓÀ» ¹Þ¾ÆµéÀδÙ.

¾Æ·¡¿Í °°ÀÌ user Å×À̺íÀÇ ¹üÀ§ Çʵ尪À» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù:

¤· Host °ªÀº È£½ºÆ® À̸§À̳ª IP ¼ýÀÚ ¶Ç´Â ·ÎÄà ȣ½ºÆ®¸¦ °¡¸®Å°´Â 'localhost' °¡ µÉ °Í
ÀÌ´Ù.
¤· Host Çʵ忡¼­ '%' ¿Í '_' ÀÇ ¿ÍÀϵåÄ«µå ¹®ÀÚ¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¤· '%'ÀÇ Host °ªÀº ¸ðµç È£½ºÆ® À̸§À» ³ªÅ¸³½´Ù. °ø¹éÀÇ È£½ºÆ® °ªÀº '%'¿Í °°´Ù. ƯÁ¤ÇÑ
È£½ºÆ®¿¡ ´ëÇÑ ÀÌ·¯ÇÑ °ªÀº ´ç½ÅÀÇ ¼­¹ö¿¡ ¿¬°áÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» Âü°íÇÏÀÚ.
¤· ¿ÍÀϵåÄ«µå ¹®ÀÚ´Â User Çʵ忡´Â Çã¿ëµÇÁö ¾Ê´Â´Ù. ±×·¸Áö¸¸ ¸ðµç À¯Àú¿¡ ÇØ´çÇÏ´Â °ø
¹éÀ¸·Î µÑ ¼ö ÀÖ´Ù. ¿¬°áÀ» ÇÏ·Á´Â ¸ñ·Ï¿¡ °ø¹é »ç¿ëÀÚ À̸§ÀÌ ÀÖ´Ù¸é Ŭ¶óÀ̾ðÆ®¿¡¼­ ½ÇÁ¦
·Î ÁöÁ¤ÇÑ À̸§ ´ë½Å¿¡ ±× »ç¿ëÀÚ´Â ÀÍ¸í »ç¿ëÀÚ, À̸§ÀÌ ¾ø´Â »ç¿ëÀڷμ­ °£ÁֵȴÙ.
¤· Password Çʵå´Â °ø¹éÀ¸·Î µÉ ¼ö ÀÖ´Ù.ÀÌ°ÍÀº ¾Æ¹«·± ºñ¹Ð¹øÈ£³ª »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ»
ÀǹÌÇÏ´Â °ÍÀº ¾Æ´Ï¸ç »ç¿ëÀÚ´Â ºñ¹Ð¹øÈ£¸¦ ÁöÁ¤ÇÏÁö ¾Ê°í ¿¬°áÀ» ÇØ¾ß ÇÑ´Ù´Â ÀǹÌÀÌ´Ù.

¾Æ·¡ÀÇ Å×À̺íÀº ¿¬°á ¿äû¿¡ Àû¿ëÇÏ´Â "user" Å×ÀÌºí ¸ñ·ÏÀÇ Host, User °ªÀÌ ¾î¶»°Ô Á¶ÇÕ
µÇ´ÂÁö¸¦ º¸¿©ÁÖ´Â ¿¹Á¦ÀÌ´Ù:

È£½ºÆ®°ª/»ç¿ëÀÚ °ª : ¸ñ·Ï¿¡ ÇØ´çÇÏ´Â ¿¬°á
'thomas.loc.gov'/'fred' : thomas.loc.gov ¿¡¼­ ¿¬°áÇÏ´Â fred
'thomas.loc.gov'/'' : thomas.loc.gov ¿¡¼­ ¿¬°áÇÏ´Â ¸ðµç »ç¿ëÀÚ
'%'/'fred' : ¸ðµç È£½ºÆ®¿¡¼­ ¿¬°áÇÏ´Â fred
'%'/'' : ¸ðµç È£½ºÆ®¿¡¼­ ¿¬°áÇÏ´Â ¸ðµç »ç¿ëÀÚ
'%.loc.gov'/'fred' : loc.gov µµ¸ÞÀÎÀÇ ¸ðµç È£½ºÆ®¿¡¼­ ¿¬°áÇÏ´Â fred
'x.y.%'/'fred' : x.y.net, x.y.com, x.y.edu µî¿¡¼­ Á¢¼ÓÇÏ´Â fred (ÀÌ°ÍÀº ¾Æ¸¶µµ À¯¿ëÇÏ
Áö ¾ÊÀ» °ÍÀÌ´Ù)
'144.155.166.177'/'fred' : 144.155.166.177ÀÇ IP ÁÖ¼Ò¿¡¼­ Á¢¼ÓÇÏ´Â fred
'144.155.166.%'/'fred' : 144.155.166 Ŭ·¡½º C ¼­ºê³ÝÀÇ ¸ðµç È£½ºÆ®¿¡¼­ Á¢¼ÓÇÏ´Â fred


Host Çʵ忡¼­ IP¿¡ ¿ÍÀϵå Ä«µå¸¦ »ç¿ëÇÒ ¼ö Àֱ⠶§¹®¿¡(¿¹¸¦ µé¾î '144.155.166.%' ´Â
¼­ºê³ÝÀÇ ¸ðµç È£½ºÆ®¿¡ Àû¿ëµÈ´Ù) 144.155.166.somewhere ¿Í °°Àº È£½ºÆ® À̸§À» ÀÌ¿ëÇÏ¿©
ºÎ´çÇÏ°Ô ÀÌ¿ëÇÒ °¡´É¼ºÀÌ »ý±æ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ °ÍÀ» ¸·±â À§ÇØ mysqlÀº ¼ýÀÚ¿Í µµÆ®(.)À¸
·Î ½ÃÀÛÇϴ ȣ½ºÆ®À̸§Àº Çã¿ëÇÏÁö ¾Ê´Â´Ù. 1.2.foo.com °ú °°Àº È£½ºÆ®¶ó¸é ÀÌ·¯ÇÑ È£½º
Æ®À̸§Àº ½ÂÀÎ(grant) Å×À̺íÀÇ Host Ä÷³°ú ¸ÅÄ¡µÇÁö ¾Ê´Â´Ù. IP ¼ýÀÚ¸¸ÀÌ IP ¿ÍÀϵå Ä«µå
°ª°ú ¸ÅÄ¡½Ãų ¼ö ÀÖ´Ù.

¸¸¾à ÇÑ°³ ÀÌ»óÀÇ user table ¸ñ·ÏÀÌ ÀÖ´Ù¸é ¼­¹ö´Â ¾î¶»°Ô user tableÀ» ¼±ÅÃÇÒ±î? ÀÌ·±
°æ¿ì¿¡´Â user tableÀÇ Á¤·Ä ¼ø¼­¿¡ µû¶ó ÇØ°áÀ» Çϸç , Á¤¿­Àº ¼­¹ö°¡ ½ÃÀÛÇÒ¶§ ¼öÇàÀÌ µÈ
´Ù. user tableÀÌ ´ÙÀ½°ú °°´Ù°í °¡Á¤Çغ¸ÀÚ:


+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| %         | root     | ...
| %         | jeffrey  | ...
| localhost | root     | ...
| localhost |          | ...
+-----------+----------+-



¼­¹ö°¡ Å×À̺íÀ» ÀÐÀ» ¶§, ¸ÕÀú ƯÁ¤ÇÏ°Ô ÁöÁ¤µÈ °ªÀÌ Àִ ȣ½ºÆ®ºÎÅÍ ¸ñ·ÏÀ» Á¤¿­ÇÑ´Ù.
(Host Ä÷³¿¡¼­ '%'´Â "¸ðµç È£½ºÆ®"¸¦ ÀǹÌÇÏ¿© ÃÖ¼ÒÇѵµ·Î ÁöÁ¤ÇÏ´Â °ÍÀÌ´Ù) ¸ñ·Ï¿¡¼­ È£
½ºÆ®°ªÀÌ °°À¸¸é ¸ÕÀú ƯÁ¤ÇÏ°Ô ÁöÁ¤µÈ »ç¿ëÀÚ°¡ ÀÖ´Â °ÍºÎÅÍ Á¤¿­ÇÑ´Ù.(°ø¹éÀ¸·Î µÇ¾î ÀÖ
´Â User °ªÀº "¸ðµç »ç¿ëÀÚ"¸¦ ÀǹÌÇÏ¿© ÃÖ¼ÒÇѵµ·Î ÁöÁ¤ÇÏ´Â °ÍÀÌ´Ù.) ÀÌ·¸°Ô Çϸé Á¤¿­µÈ
user Å×À̺íÀº ´ÙÀ½°ú °°´Ù:



+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-


Á¤¿­µÈ ¼ø¼­¿¡ µû¶ó ¸ÅĪ ¾Ë°í¸®ÁòÀÌ Àû¿ëµÇ¸ç ¸ÕÀú ¸ÅĪµÇ´Â °ÍÀ» »ç¿ëÇÑ´Ù. localhost¿¡
¼­ jeffrey°¡ ¿¬°áÀ» ÇÏ·ÁÇÒ¶§, Host Ä÷³¿¡¼­ 'localhost' ¸ñ·ÏÀÌ ¸ÕÀú ¸ÅĪµÈ´Ù. ¹°·Ð »ç
¿ëÀÚ À̸§ÀÌ °ø¹éÀÎ ¸ñ·ÏÀº ¿¬°áÇϴ ȣ½ºÆ®³×ÀÓ°ú »ç¿ëÀÚ À̸§¿¡ ¸ÅĪµÈ´Ù. ('%'/'jeffrey
' ¸ñ·Ï ¶ÇÇÑ ¸ÅĪÀÌ µÈ´Ù. ±×·¯³ª Å×ÀÌºí¿¡¼­ óÀ½À¸·Î ¸ÅĪµÇ´Â °ÍÀº ¾Æ´Ï´Ù.)


´Ù¸¥ ¿¹Á¦°¡ ÀÖ´Ù. user Å×À̺íÀÌ ´ÙÀ½°ú °°´Ù°í °¡Á¤Çغ¸ÀÚ:

+----------------+----------+-
| Host           | User     | ...
+----------------+----------+-
| %              | jeffrey  | ...
| thomas.loc.gov |          | ...
+----------------+----------+-


Á¤¿­µÈ Å×À̺íÀº ´ÙÀ½°ú °°´Ù:

+----------------+----------+-
| Host           | User     | ...
+----------------+----------+-
| thomas.loc.gov |          | ...
| %              | jeffrey  | ...
+----------------+----------+-

ù¹ø°·Î thomas.loc.gov¿¡¼­ jeffrey°¡ ¿¬°áÇÏ´Â °ÍÀÌ ¸ÅĪµÇ¸ç, whitehouse.gov ¿¡¼­ jef
frey°¡ ¿¬°áÇÏ´Â °ÅÀº µÎ¹ø°·Î ¸ÅĪÀÌ µÈ´Ù.

¼­¹ö¿¡ ¿¬°áÇÒ ¶§ ¹®Á¦°¡ »ý±â¸é, user Å×À̺íÀ» Ãâ·ÂÇÏ¿© ¾î¶² °ÍÀÌ ¸ÕÀú ¸ÅĪµÇ´ÂÁö Á÷Á¢
Á¤¿­À» ÇÏ¸é µÈ´Ù.


6.6 Á¢±Ù Á¦¾î, 2´Ü°è : ¿äû ÀÎÁõ

{{}}¿¬°áµÇ¾ú´Ù¸é ¼­¹ö´Â 2´Ü°è·Î µé¾î°£´Ù. ¿¬°áÀÌ ¼º»çµÇ¾úÀ» ¶§ °¢ ¿ä±¸¿¡ ´ëÇØ »ç¿ëÀÚ°¡ ¼ö
ÇàÇÏ·Á´Â ¿¬»êÀÇ À¯Çü¿¡ ±â¹ÝÇÏ¿© ¼­¹ö´Â »ç¿ëÀÚ°¡ ÃæºÐÇÑ ±ÇÇÑÀ» °¡Áö°í ÀÖ´ÂÁö Á¡°ËÇÑ´Ù.
¿©±â¼­ ½ÂÀÎ Å×À̺íÀÇ ±ÇÇÑ Çʵ尡 ÀÛµ¿ÇÑ´Ù. ±ÇÇÑÀº user, db, host, table_priv, columns
_priv Å×À̺íÀÇ Á¤º¸¸¦ »ç¿ëÇÑ´Ù. GRANT ¿Í REVOKE ¸í·ÉÀ» ÀÌ¿ëÇÏ¿© ±ÇÇÑ Å×À̺íÀ» ´Ù·ê ¼ö
ÀÖ´Ù. 7.25 [GRANT] Âü°í. (ÀÌÀü¿¡ º¸¾Ò´ø °¢ ±ÇÇÑ Å×À̺íÀÇ ÇÊµå ¸ñ·ÏÀ» Âü°íÇÏ´Â °ÍÀÌ µµ
¿òÀÌ µÉ °ÍÀÌ´Ù; 6.4[Privilege] Âü°í.)

user Å×À̺íÀÇ ½ÂÀÎ ±ÇÇÑÀº »ç¿ëÀÚ¿¡°Ô ÀüüÀûÀÎ ±â¹ÝÀ» Á¦°øÇϸç ÇöÀçÀÇ µ¥ÀÌÅÍ°¡ ¾î¶² °Í
ÀÎÁö¿Í´Â »ó°üÀÌ ¾ø´Ù. ¿¹¸¦ µé¾î, user Å×ÀÌºí¿¡¼­ »ç¿ëÀÚ¿¡°Ô delete ±ÇÇÑÀ» ½ÂÀÎÇß´Ù¸é
¼­¹ö È£½ºÆ®¿¡¼­ ¾î¶² µ¥ÀÌÅͺ£À̽ºÀÇ ·¹ÄÚµå¶óµµ »èÁ¦ÇÒ ¼ö ÀÖ´Ù! ´Ù¸£°Ô ¸»Çؼ­ user Å×
ÀÌºí ±ÇÇÑÀº ½´ÆÛÀ¯Àú ±ÇÇÑÀ̸ç, ½´ÆÛÀ¯Àú(¼­¹ö³ª µ¥ÀÌÅͺ£À̽º °ü¸®ÀÚ µî)¿¡°Ô¸¸ user Å×
ÀÌºí¿¡ ´ëÇÑ ±ÇÇÑÀ» ½ÂÀÎÇÏ´Â °ÍÀÌ ÁÁ´Ù. ´Ù¸¥ »ç¿ëÀÚ¿¡°Ô´Â user Å×ÀÌºí¿¡¼­ ±ÇÇÑÀ» 'N'·Î
¼³Á¤ÇÏ°í, db¿Í host Å×À̺íÀ» »ç¿ëÇÏ¿© ƯÁ¤ µ¥ÀÌÅͺ£À̽º¿¡ ±â¹ÝÇÑ ±ÇÇѽÂÀÎÀ» ÇÏ´Â°Ô ÁÁ
´Ù.

db ¿Í host Å×À̺íÀº ƯÁ¤ µ¥ÀÌÅͺ£À̽ºÀÇ ±ÇÇÑÀ» ½ÂÀÎÇÑ´Ù. °¢ Å×À̺íÀÇ Host ¿Í Db Çʵå
¿¡¼­ ¿ÍÀϵåÄ«µå ¹®ÀÚ '%' ¿Í '_' ¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç °ªÀÌ °ø¹éÀ̸é ÇÊµå ¹üÀ§(scope fie
lds)¿¡¼­ ¸ðµç °ªÀ» Çã¿ëÇÑ´Ù. '%' Host °ªÀº "¸ðµç È£½ºÆ®"¸¦ ÀǹÌÇÑ´Ù. db Å×ÀÌºí¿¡¼­ Ho
st °ªÀÌ °ø¹éÀ̸é "host Å×ÀÌºí¿¡¼­ ´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ ¹®ÀÇÇ϶ó"´Â ÀǹÌÀÌ´Ù. A '%' or bla
nk Db value in the host table means or "any database." (** orÀÇ ¶æÀÌ ¹«¾ùÀÎÁö ¸ð¸£°Ú
³×¿ä. host Å×ÀÌºí¿¡¼­ Db ÀÇ °ªÀÌ '%' ¶Ç´Â °ø¹éÀ̸é "¸ðµç µ¥ÀÌÅͺ£À̽º"¸¦ ÀǹÌÇÑ´Ù´Â
¸» °°Àºµ¥¿ä **) User °ªÀÌ °ø¹éÀ̸é ÀÍ¸í »ç¿ëÀÚ·Î °£ÁֵȴÙ.

¼­¹ö°¡ ½ÃÀÛÇÒ ¶§ db ¿Í host Å×À̺íÀ» Àаí Á¤¿­À» ÇÑ´Ù.(µ¿½Ã¿¡ user Å×À̺íÀ» Àд´Ù.)
db Å×À̺íÀº Host, Db, User ¼øÀ¸·Î ÇÊµå ¹üÀ§¸¦ Á¤¿­Çϸç host Å×À̺íÀº Host, Db ¼øÀ¸·Î
ÇÊµå ¹üÀ§¸¦ Á¤¿­ÇÑ´Ù. user Å×À̺í°ú °°ÀÌ Æ¯Á¤ÇÏ°Ô ÁöÁ¤µÇ¾î ÀÖ´Â °ªÀÌ ¸ÕÀú Á¤¿­µÇ°í ÃÖ
¼ÒÇѵµ·Î ÁöÁ¤µÈ °ªÀÌ ³ªÁß¿¡ Á¤¿­µÈ´Ù. ¼­¹ö¿¡¼­ ¸ÅĪµÇ´Â ¸ñ·ÏÀ» ãÀ»¶§, °¡Àå ¸ÕÀú ¹ß°ß
ÇÑ °ÍÀ» »ç¿ëÇÑ´Ù.

tables_priv ¿Í columns_priv Å×À̺íÀº ƯÁ¤ÇÑ Å×À̺í°ú Ä÷³¿¡ °ü·ÃµÈ ±ÇÇÑÀ» ½ÂÀÎÇÑ´Ù.d
b¿Í host Å×À̺íÀÇ Host Çʵå¿Í °°ÀÌ ¿ÍÀϵåÄ«µå¸¦ Host Çʵ忡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¸Áö
¸¸ Db, Table_name, Column_name Çʵ忡¼­´Â ¿ÍÀϵåÄ«µå³ª °ø¹é°ªÀ» »ç¿ëÇÒ ¼ö ¾ø´Ù.

Host Å×ÀÌºí¿¡¼­¸¸ ¿ÍÀϵåÄ«µå¸¦ »ç¿ëÇÒ ¼ö ÀÖÁö¸¸ tables_priv ¿Í columns_priv Å×À̺íÀº
db Å×À̺í°ú ºñ½ÁÇÏ°Ô Á¤¿­ÀÌ µÇ¸ç Á¤¿­Àº °£´ÜÇÏ´Ù.

¿äû ÀÎÁõ °úÁ¤Àº ¾Æ·¡¿¡¼­ ¼³¸íÇÑ´Ù. Á¢±Ù-Á¡°Ë ¼Ò½º Äڵ忡 Ä£¼÷ÇÏ´Ù¸é, ¿©±â¼­ ¼³¸íÇÏ´Â
°ÍÀº Äڵ忡¼­ »ç¿ëµÈ ¾Ë°í¸®Áò°ú´Â ¾à°£ ´Ù¸£´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.¿©±â¼­ÀÇ ¼³¸íÀº ÄÚµå
°¡ ½ÇÁ¦·Î ÀÛµ¿ÇÏ´Â ¹æ½Ä°ú µ¿ÀÏÇÏ´Ù. ´ÜÁö ¼³¸íÀ» °£´ÜÇÏ°Ô Çϴµ¥¼­ Â÷ÀÌ°¡ ÀÖ´Â °ÍÀÌ´Ù.

°ü¸®ÀÚ ¿äû¿¡ ´ëÇؼ­(shutdown, reload µî) ¼­¹ö´Â ´ÜÁö user Å×ÀÌºí¸¸ üũ¸¦ ÇÑ´Ù. ¿Ö³Ä
¸é user Å×ÀÌºí¿¡¼­¸¸ °ü¸®ÀÚ ±ÇÇÑÀ» ÁöÁ¤Çϱ⠶§¹®ÀÌ´Ù. ¸ñ·Ï¿¡¼­ ¿äûµÈ ¿¬»êÀ» Çã¿ëÇϸé
Á¢±ÙÀÌ Çã¿ëµÇ¸ç ¾Æ´Ñ °æ¿ì¿¡´Â Á¢±ÙÀÌ °ÅºÎµÈ´Ù.¿¹¸¦ µé¾î, mysqladmin shutdownÀ» ½ÇÇàÇÏ
°íÀÚ Çϴµ¥ user Å×ÀÌºí ¸ñ·Ï¿¡¼­´Â »ç¿ëÀÚ¿¡°Ô shutdown ±ÇÇÑÀ» ½ÂÀÎÇÏÁö ¾ÊÀ¸¸é, db³ª h
ost Å×À̺íÀ» üũÇÏÁö ¾Ê´õ¶óµµ Á¢±ÙÀÌ °ÅºÎµÈ´Ù. (ÀÌ·¯ÇÑ Å×ÀÌºí¿¡´Â Shutdown_priv Ä÷³
ÀÌ ¾ø±â ¶§¹®¿¡ ÀÌ·¸°Ô ÇÒ ÇÊ¿äµµ ¾ø´Ù)

µ¥ÀÌÅͺ£À̽º¿Í °ü·ÃµÈ ¿äû¿¡ ´ëÇØ(insert, update µî) ¼­¹ö´Â ¸ÕÀú user Å×ÀÌºí ¸ñ·Ï¿¡¼­
»ç¿ëÀÚÀÇ Àüü(½´ÆÛÀ¯Àú) ±ÇÇÑÀ» Á¡°ËÇÑ´Ù. ¸ñ·Ï¿¡¼­ ¿äûÇÑ ¿¬»êÀ» Çã¿ëÇϸé Á¢±ÙÀÌ ½ÂÀÎ
µÈ´Ù.

user Å×ÀÌºí¿¡¼­ ÀüüÀûÀÎ ±ÇÇÑÀÌ ºÒÃæºÐÇϸé, ¼­¹ö´Â db ¿Í host Å×À̺íÀ» Á¡°ËÇÏ¿© µ¥ÀÌ
Åͺ£À̽º¿¡ °ü·ÃµÈ ±ÇÇÑÀ» °áÁ¤ÇÑ´Ù:

1. ¼­¹ö´Â db Å×ÀÌºí¿¡¼­ ¸ÅĪµÇ´Â Host, Db, User Çʵ带 ã´Â´Ù. ¿¬°áÇÏ·Á´Â »ç¿ëÀÚÀÇ È£
½ºÆ® À̸§°ú Mysql »ç¿ëÀÚ À̸§ÀÌ Host ¿Í User¿¡ ¸ÅĪµÇ´Ù. »ç¿ëÀÚ°¡ Á¢±ÙÇϱ⠿øÇÏ´Â µ¥
ÀÌÅͺ£À̽º´Â Db Çʵ忡 ¸ÅĪµÈ´Ù. ÀûÇÕÇÑ Host ¿Í User ¸ñ·ÏÀÌ ¾øÀ¸¸é Á¢±ÙÀº °ÅºÎµÈ´Ù.

2. ¸ÅĪµÇ´Â db Å×ÀÌºí ¸ñ·ÏÀÌ ÀÖ°í Host Çʵ尡 °ø¹éÀÌ ¾Æ´Ï¸é, ¸ñ·ÏÀº »ç¿ëÀÚÀÇ µ¥ÀÌÅͺ£
À̽º °ü·Ã ±ÇÇÑÀ» Á¤ÀÇÇÑ´Ù.


3. ¸ÅĪµÇ´Â db Å×ÀÌºí ¸ñ·ÏÀÇ Host Çʵ尡 °ø¹éÀ̸é, host Å×ÀÌºí¿¡¼­ ¾î¶² È£½ºÆ®°¡ µ¥ÀÌ
Åͺ£À̽º¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´ÂÁö ÆÇ´ÜÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ÀÌ·± °æ¿ì, ´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ À§
ÇØ host Å×ÀÌºí¿¡¼­ ¸ÅĪµÇ´Â Host ¿Í Db Çʵ带 ã´Â´Ù. host Å×ÀÌºí¿¡ ¸ÅĪµÇ´Â ¸ñ·ÏÀÌ
¾øÀ¸¸é Á¢±ÙÀº °ÅºÎµÈ´Ù. ¸ÅĪµÇ´Â ¸ñ·ÏÀÌ ÀÖÀ¸¸é »ç¿ëÀÚÀÇ µ¥ÀÌÅͺ£À̽º °ü·Ã ±ÇÇÑÀº db
¿Í host Å×ÀÌºí ¸ñ·Ï¿¡¼­ ±ÇÇÑÀ» intersection ÇÏ¿© °áÁ¤µÈ´Ù.(** insertectionÀº ±³ÁýÇÕÀ»
»ý°¢ÇÏ¸é µÇÁö¿ä. and Á¶°Ç **) ´Ù½Ã ¸»Çؼ­, db¿Í host Å×ÀÌºí µÑ ´Ù 'Y'·Î µÇ¾îÀÖÀ» ¶§
±ÇÇÑÀÌ ¼³Á¤µÈ´Ù.ÀÌ·¯ÇÑ ¹æ¹ýÀ¸·Î db Å×ÀÌºí¿¡¼­ ÀϹÝÀûÀÎ ±ÇÇÑÀ» ½ÂÀÎÇÒ ¼ö ÀÖÀ¸¸ç, ±×·¯
°í³ª¼­ host Å×ÀÌºí ¸ñ·ÏÀ» »ç¿ëÇØ host¸¦ ±â¹ÝÀ¸·Î ÇÏ¿© ¼±ÅÃÀûÀ¸·Î ±ÇÇÑÀ» Á¦ÇÑÇÒ ¼ö ÀÖ
´Ù.)

db ¿Í host Å×ÀÌºí ¸ñ·ÏÀ» ÀÌ¿ëÇØ µ¥ÀÌÅͺ£À̽º¿Í °ü·ÃµÈ ±ÇÇÑ ½ÂÀÎÀ» °áÁ¤ÇÑ ÈÄ, ¼­¹ö´Â
ÀÌ·¯ÇÑ Á¤º¸¸¦ user Å×ÀÌºí¿¡¼­ ½ÂÀÎÇÑ ÀüüÀûÀÎ ±ÇÇÑ¿¡ Ãß°¡ÇÑ´Ù. ±× °á°ú°¡ ¿äûÇÑ ¿¬»ê
À» Çã¿ëÇϸé Á¢±ÙÀÌ Çã¿ëµÈ´Ù. ´Ù¸¥ ¹æ¹ýÀ¸·Î, ¼­¹ö´Â tables_priv ¿Í columns_priv Å×À̺í
¿¡¼­ »ç¿ëÀÚÀÇ Å×À̺í°ú Ä÷³ ±ÇÇÑÀ» Á¡°ËÇÏ°í »ç¿ëÀÚÀÇ ±ÇÇÑ¿¡ Ãß°¡ÇÑ´Ù. ±× °á°ú¿¡ µû¶ó
Á¢±ÙÀÌ Çã¿ëµÇ°Å³ª °ÅºÎµÈ´Ù.

¿Ö ¼­¹ö¿¡¼­ ÀüüÀûÀÎ »ç¿ëÀÚ ¿£Æ®¸® ±ÇÇÑ¿¡ µ¥ÀÌÅͺ£À̽º, Å×À̺í, Ä÷³¿¡ °ü·ÃµÈ ±ÇÇÑÀ»
Ãß°¡ÇÏ´ÂÁö°¡ ¸íÈ®ÇÏÁö ¾Ê´Ù.... ÀÌ·± °æ¿ì »ç¿ëÀÚ ±ÇÇÑÀº Ãʱ⿡ ¿äûµÈ ¿¬»ê¿¡ ´ëÇÏ¿© ºÒ
ÃæºÐÇÏ´Ù... (It may not be apparent why the server adds the database-, table- and col
umn-specific privileges to the global user entry privileges for those cases in which
the user privileges are initially found to be insufficient for the requested operatio
n.) ¿äûÀº ÇÑ°¡Áö À¯Çü ÀÌ»óÀÇ ±ÇÇÑÀÌ ÇÊ¿äÇϱ⠶§¹®ÀÌ´Ù. ¿¹¸¦ µé¾î, INSERT ... SELECT
¹®À» ¼öÇàÇÒ ¶§ insert ¿Í select ±ÇÇÑ µÑ ´Ù ÇÊ¿äÇÏ´Ù. »ç¿ëÀÚÀÇ ±ÇÇÑÀº user Å×ÀÌºí¿¡¼­
ÇÑ°¡Áö ±ÇÇÑÀ» ½ÂÀÎÇÏ°í db Å×ÀÌºí ¿£Æ®¸®¿¡¼­ ´Ù¸¥ ±ÇÇÑÀ» ½ÂÀÎÇÒ °ÍÀÌ´Ù. ÀÌ·± °æ¿ì, »ç
¿ëÀÚ´Â ÀÌ·¯ÇÑ ¿äûÀ» ¼öÇàÇϱâ À§ÇØ ÇÊ¿äÇÑ ±ÇÇÑÀ» °¡Áö°í ÀÖ´Ù. ±×·¸Áö¸¸ ¼­¹ö´Â ÀÚüÀû
À¸·Î ´Ù¸¥ Å×ÀÌºí¿¡ ´ëÇؼ­´Â .....(In this case, you have the necessary privileges to
perform the request, but the server cannot tell that from either table by itself;) ;
µÎ ¿£Æ®¸®¿¡ ÀÇÇØ ½ÂÀÎµÈ ±ÇÇÑÀÌ Á¶ÇյǾî¾ß ÇÑ´Ù.

host Å×À̺íÀº "¾ÈÀüÇÑ" ¼­¹ö ¸ñ·ÏÀ» À¯ÁöÇϴµ¥ »ç¿ëÇÒ ¼ö ÀÖ´Ù. TcX¿¡¼­´Â, host Å×À̺í
¿¡´Â Áö¿ª ³×Æ®¿÷ÀÇ ¸ðµç ½Ã½ºÅÛÀÌ Æ÷ÇԵǾî ÀÖ´Ù. ¿©±â¼­´Â ¸ðµç ±ÇÇÑÀÌ Çã¿ëµÈ´Ù.

¾ÈÀüÇÏÁö ¾Ê´Â È£½ºÆ®¸¦ °¡¸®Å°±â À§ÇØ host Å×À̺íÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¾ÈÀüÇÏ´Ù°í »ý°¢µÇ
Áö ¾Ê´Â °ø°³ Áö¿ª¿¡ À§Ä¡ÇÑ public.your.domain ½Ã½ºÅÛÀÌ ÀÖ´Ù°í °¡Á¤Çغ¸ÀÚ. »ç¿ëÀÚ´Â »ç
¿ëÀÚ ³×Æ®¿÷ÀÇ ¸ðµç È£½ºÆ®¿¡ Á¢±ÙÇÒ ¼ö ÀÖÀ¸¸ç, host Å×ÀÌºí ¿£Æ®¸®°¡ ´ÙÀ½°ú °°Àº ½Ã½ºÅÛ
¸¸ Á¦¿ÜÇÑ´Ù :

+--------------------+----+-
| Host               | Db | ...
+--------------------+----+-
| public.your.domain | %  | ... (all privileges set to 'N')
| %.your.domain      | %  | ... (all privileges set to 'Y')
+--------------------+----+-

´ç¿¬È÷ Á¢±Ù ±ÇÇÑÀÌ ¿øÇϴ´ë·Î µÇ¾î ÀÖ´ÂÁö ¾ðÁ¦³ª ½ÂÀÎ Å×ÀÌºí¿¡¼­ ¸ñ·ÏÀ» Å×½ºÆÃÇØ¾ß ÇÑ
´Ù. (¿¹¸¦ µé¾î mysqlaccess ¸¦ »ç¿ë)



6.7 ±ÇÇÑ º¯°æ½Ã Àû¿ë ¹æ¹ý


mysqld °¡ ½ÃÀÛÇÒ ¶§, ¸ðµç ½ÂÀÎ Å×ÀÌºí ³»¿ëÀÌ ¸Þ¸ð¸®·Î ¿Ã¶ó°¡°í À̶§ºÎÅÍ À¯È¿ÇÏ°Ô µÈ
´Ù.

GRANT, REVOKE, SET PASSWORD ¸¦ ÀÌ¿ëÇØ ½ÂÀÎ Å×ÀÌºí¿¡ º¯°æÀ» ÇÏ¸é ¹Ù·Î ¼­¹ö¿¡¼­ ÀνÄÀ»
ÇÑ´Ù.

±ÇÇÑ Å×À̺íÀ» Á÷Á¢ º¯°æÇß´Ù¸é(INSERT, UPDATE µîÀ» »ç¿ëÇÏ¿©), ¼­¹ö¿¡¼­ ½ÂÀÎ Å×À̺íÀ»
Àç°¡µ¿Çϵµ·Ï Çϱâ À§ÇØ FLUSH PRIVIEGES ¹®À̳ª mysqladmin flush-privileges ¸¦ ½ÇÇàÇؾß
ÇÑ´Ù.±×·¸°Ô ÇÏÁö ¾ÊÀ¸¸é ¼­¹ö¸¦ ´Ù½Ã ½ÃÀÛÇϱâ Àü±îÁö º¯°æµÈ ±ÇÇÑÀÌ Àû¿ëµÇÁö ¾Ê´Â´Ù.

¼­¹ö¿¡¼­ ±ÇÇÑ Å×À̺íÀÌ º¯°æµÇ¾ú´Ù´Â °ÍÀ» °¨ÁöÇßÀ» ¶§, ÀÌ¹Ì Á¸ÀçÇÏ´ø Ŭ¶óÀ̾ðÆ® ¿¬°áÀº
´ÙÀ½°ú °°ÀÌ ¿µÇâÀ» ¹Þ´Â´Ù:

1. Å×À̺í°ú Ä÷³ ±ÇÇÑ º¯°æÀº Ŭ¶óÀ̾ðÆ®ÀÇ ´ÙÀ½ ¿äûºÎÅÍ Àû¿ëµÈ´Ù.
2. µ¥ÀÌÅͺ£À̽º ±ÇÇÑ º¯°æÀº ´ÙÀ½ÀÇ USE db_name ¸í·ÉºÎÅÍ Àû¿ëµÈ´Ù.
3. ÀüüÀûÀÎ ±ÇÇÑ°ú ºñ¹Ð¹øÈ£ º¯°æÀº Ŭ¶óÀ̾ðÆ®°¡ ´ÙÀ½¿¡ ¿¬°áÇÒ ¶§ºÎÅÍ Àû¿ëµÈ´Ù.
{{}}

6.8 Ãʱâ mysql ±ÇÇѼ³Á¤

mysqlÀ» ¼³Ä¡ÇÏ°í ³ª¼­, mysql_install_db ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇؼ­ Ãʱâ Á¢±Ù ±ÇÇÑÀ» ¼³Á¤Çؾß
ÇÑ´Ù. 4.7.1 [Quick install] Âü°í. mysql_install_db ½ºÅ©¸³Æ®´Â mysqld ¼­¹ö¸¦ ½ÃÀÛÇÏ°í,
´ÙÀ½°ú °°ÀÌ ½ÂÀÎ Å×À̺íÀÇ ±ÇÇÑÀ» ÃʱâÈ­ÇÑ´Ù:

- mysql root »ç¿ëÀÚ´Â ½´ÆÛÀ¯ÀúÀÌ¸ç ¸ðµç °ÍÀ» ÇÒ ¼ö ÀÖ´Ù. ·ÎÄà ȣ½ºÆ®¿¡¼­¸¸ ¿¬°áÇÒ ¼ö
ÀÖ´Ù.
ÁÖÀÇ : óÀ½¿¡ root ºñ¹Ð¹øÈ£´Â ºñ¾îÀÖ´Ù. ±×·¡¼­ ´©±¸³ª ºñ¹Ð¹øÈ£¾øÀÌ root·Î ¿¬°áÇÒ ¼öÀÖ
°í ¸ðµç ±ÇÇÑÀ» ½ÂÀι޴´Ù.

- ÀÍ¸í »ç¿ëÀÚ´Â 'test' ³ª 'test_' ·Î ½ÃÀÛÇÏ´Â µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ ¸ðµç ±ÇÇÑÀ» ½ÂÀιÞ
´Â´Ù. ¸ðµç »ç¿ëÀÚ°¡ ·ÎÄà ȣ½ºÆ®¿¡¼­ ¿¬°áÇÒ ¼ö ÀÖÀ¸¸ç ÀÍ¸í »ç¿ëÀÚ·Î °£ÁֵȴÙ.

- ´Ù¸¥ ±ÇÇÑÀº °ÅºÎµÈ´Ù. ¿¹¸¦ µé¾î ÀÏ¹Ý »ç¿ëÀÚ´Â mysqladmin shutdown À̳ª mysqladmin p
rocesslist ¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù.


¼³Ä¡ÇßÀ» ¶§ Ãʱ⠱ÇÇÑÀÌ Æø³Ð°Ô  ¼³Á¤µÇ¾î Àֱ⠶§¹®¿¡ °¡Àå ¸ÕÀú mysql root »ç¿ëÀÚÀÇ ºñ
¹Ð¹øÈ£¸¦ ¼³Á¤ÇØ¾ß ÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÏ¸é µÈ´Ù. (PASSWORD() ÇÔ¼ö¸¦ ÀÌ¿ëÇØ ºñ¹Ð¹øÈ£
¸¦ ¼³Á¤ÇØ¾ß ÇÑ´Ù!):

shell> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('new_password')
           WHERE user='root';
mysql> FLUSH PRIVILEGES;

or

shell> mysqladmin -u root password new_password
(** PASSWORD() ¶ó´Â ÇÔ¼ö¸¦ »ç¿ëÇÏÁö ¾Ê¾Æµµ µÇ¹Ç·Î Æí¸®ÇÔ. ¶ÇÇÑ SQL¹®¿¡¼­ grant ¸í·ÉÀ»
ÀÌ¿ëÇØ ¼³Á¤ÇÒ ¼öµµ ÀÖÁö¿ä **)

ù¹ø° ¹æ¹ýÀ» »ç¿ëÇϸé Á÷Á¢ user Å×À̺íÀÇ ºñ¹Ð¹øÈ£¸¦ ¾÷µ¥ÀÌÆ®ÇÑ´Ù. ÀÌ°æ¿ì ¼­¹ö°¡ ´Ù½Ã
½ÂÀÎ Å×À̺íÀ» Àеµ·Ï ÇØ¾ß ÇÑ´Ù.(FLUSH PRIVILEGES »ç¿ë). ¿Ö³ÄÇÏ¸é ´Ù¸¥ ¹æ¹ýÀ¸·Î´Â º¯°æ
»çÇ×À» ¾Ë¸± ¼ö ¾ø±â ¶§¹®ÀÌ´Ù.

(** ½ÂÀÎ Å×À̺íÀ» ´Ù½Ã ÀÐÁö ¾Ê¾Æ¼­ ÀÌÀü¿¡ ¼³Á¤Çß´ø ºñ¹Ð¹øÈ£°¡ Á¦´ë·Î ¾ÈµÇ´Â °æ¿ì°¡ ÀÖ
À» °ÍÀÔ´Ï´Ù. ²À ±â¾ïÇÏ°í ÀÖ¾î¾ßÇØ¿ä **)

root ºñ¹Ð¹øÈ£°¡ ¼³Á¤µÇ¾úÀ¸¸é ¼­¹ö¿¡ root·Î Á¢¼ÓÇÒ¶§¸¶´Ù ºñ¹Ð¹øÈ£¸¦ ¸í½ÃÇØ¾ß ÇÑ´Ù.

Ãß°¡·Î ¼Â¾÷À» Çϰųª Å×½ºÆ®ÇÒ ¶§´Â ºñ¹Ð¹øÈ£¸¦ ¼³Á¤ÇÒ ÇÊ¿ä°¡ ¾ø±â ¶§¹®¿¡ root ºñ¹Ð¹øÈ£
¸¦ ºó°ªÀ¸·Î ³²°ÜµÎ°í ½ÍÀ» °ÍÀÌ´Ù. ±×·¸Áö¸¸ ½ÇÁ¦ ÀÛ¾÷À» Çϱâ Àü¿¡´Â ¹Ýµå½Ã ºñ¹Ð¹øÈ£¸¦
¼³Á¤Çß´ÂÁö È®ÀÎÇØ¾ß ÇÑ´Ù.

±âº»±ÇÇÑÀ» ¾î¶»°Ô ¼³Á¤ÇÏ´ÂÁö mysql_install_db ½ºÅ©¸³Æ®¸¦ »ìÆ캸ÀÚ. ´Ù¸¥ »ç¿ëÀÚ¿¡°Ô ±Ç
ÇÑÀ» ¾î¶»°Ô ¼³Á¤ÇÒÁö ÀÌ°ÍÀ» ±âº»À¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.

À§¿¡¼­ ¼³¸íÇÑ °Í°ú ´Ù¸£°Ô Ãʱ⠱ÇÇÑÀ» ¼³Á¤Çϱ⠿øÇϸé, mysql_install_db ½ºÅ©¸³Æ®¸¦ ½Ç
ÇàÇϱâ Àü¿¡ ¼öÁ¤ÇÏ¸é µÈ´Ù.

¿ÏÀüÇÏ°Ô ½ÂÀÎ Å×À̺íÀ» ´Ù½Ã ¸¸µé±â À§ÇØ mysql µ¥ÀÌÅͺ£À̽º¸¦ Æ÷ÇÔÇÏ´Â µð·ºÅ丮ÀÇ '*IS
M' °ú '*.ISD' ÆÄÀÏÀ» Á¦°ÅÇØ¾ß ÇÑ´Ù. (ÀÌ µð·ºÅ丮´Â database µð·ºÅ丮¿¡¼­ 'mysq''À̶ó
´Â À̸§ÀÌ ºÙ¾îÀÖ´Ù. mysqld --help Çؼ­ database µð·ºÅ丮ÀÇ ¸ñ·ÏÀ» º¼ ¼ö ÀÖ´Ù.) ¿øÇÏ´Â
´ë·Î ±ÇÇÑÀ» ¼öÁ¤ÇÑ ÈÄ mysql_install_db ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÏÀÚ.


6.9 mysql¿¡ »õ·Î¿î »ç¿ëÀÚ ±ÇÇÑ Ãß°¡Çϱâ

µÎ°¡Áö ¹æ¹ýÀ¸·Î »ç¿ëÀÚ¸¦ Ãß°¡ÇÒ ¼ö ÀÖ´Ù : GRANT ¹® »ç¿ë ¶Ç´Â mysql ½ÂÀÎ Å×À̺í Á÷Á¢
Á¶ÀÛ. GRANT ¹®À» »ç¿ëÇÏ´Â °ÍÀÌ ´õ ¼±È£µÇ´Â ¹æ¹ýÀÌ´Ù.

¾Æ·¡ÀÇ ¿¹Á¦´Â »õ·Î¿î »ç¿ëÀÚ¸¦ ¼³Á¤Çϱâ À§ÇØ ¾î¶»°Ô mysql Ŭ¶óÀ̾ðÆ®¸¦ »ç¿ëÇÏ´ÂÁö º¸¿©
ÁØ´Ù. ÀÌ ¿¹Á¦´Â ÀÌÀü¿¡ ¼³¸íÇß´ø°Í°ú °°ÀÌ ±âº»°ª¿¡ µû¶ó ±ÇÇÑÀ» ¼³Á¤ÇÏ´Â °ÍÀ¸·Î °¡Á¤ÇÑ
´Ù. ÀÌ°ÍÀº ¼³Á¤À» ¹Ù²Ù±â À§ÇØ mysqld°¡ ½ÇÇàµÇ°í ÀÖ´Â °°Àº ½Ã½ºÅÛ¿¡ ÀÖ¾î¾ß ÇÑ´Ù´Â °ÍÀ»
¸»ÇÑ´Ù. (**ÃʱⰪÀº localhost¿¡¼­¸¸ Á¢¼Ó °¡´ÉÇϹǷÎ**) ¶ÇÇÑ mysql root »ç¿ëÀÚ·Î Á¢¼Ó
ÇØ¾ß ÇÏ°í root »ç¿ëÀÚ´Â mysql µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ insert ±ÇÇÑ°ú reload °ü¸®ÀÚ ±ÇÇÑÀÌ
ÀÖ¾î¾ß ÇÑ´Ù. root »ç¿ëÀÚÀÇ ºñ¹Ð¹øÈ£¸¦ ¹Ù²Ù¾úÀ¸¸é, ¾Æ·¡¿Í °°ÀÌ mysql ¸í·ÉÇà »óÅ¿¡¼­
ºñ¹Ð¹øÈ£¸¦ ¸í½ÃÇØ¾ß ÇÑ´Ù.

GRANT ¹®À» ÀÌ¿ëÇØ »õ·Î¿î »ç¿ëÀÚ¸¦ Ãß°¡ÇÒ ¼ö ÀÖ´Ù:

shell> mysql --user=root mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
           IDENTIFIED BY 'something' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"
           IDENTIFIED BY 'something' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
mysql> GRANT USAGE ON *.* TO dummy@localhost;

À§ GRANT ¹®¿¡¼­´Â ¼¼ ¸íÀÇ »ç¿ëÀÚ¸¦ ¼³Á¤ÇÑ´Ù:

monty : ¾î´À °÷¿¡¼­µç ¼­¹ö¿¡ ¿¬°áÇÒ ¼ö ÀÖ´Â ¿ÏÀüÇÑ ½´ÆÛÀ¯ÀúÀÌÁö¸¸ ºñ¹Ð¹øÈ£¸¦ »ç¿ëÇؾß
ÇÑ´Ù. ¿ì¸®´Â monty@localhost ¿Í monty@"%"¸¦ »ç¿ëÇÑ GRANT ¹®¿¡ ´ëÇؼ­ ¹Ýµå½Ã ³íÀǸ¦ ÇØ
¾ß ÇÑ´Ù. localhost ¸ñ·ÏÀ» Ãß°¡ÇÏÁö ¾ÊÀ¸¸é, mysql_install_db ¿¡ ÀÇÇØ »ý¼ºµÈ localhost
ÀÇ ÀÍ¸í »ç¿ëÀÚ ¸ñ·Ï(µî·Ï?)ÀÌ ·ÎÄà ȣ½ºÆ®¿¡¼­ Á¢¼ÓÇÒ¶§ ¿ì¼±±ÇÀ» °®´Â´Ù. ¿Ö³ÄÇϸé ÁöÁ¤
µÈ Host ÇÊµå °ªÀÌ ÀÖÀ¸¸ç Á¤¿­ ¼ø¼­¿¡¼­ ¸ÕÀú ¿À±â ¶§¹®ÀÌ´Ù. (** ½ÂÀÎ Å×À̺íÀÇ Á¤¿­ ¼ø
¼­°¡ ƯÁ¤ÇÑ Host¸¦ ÁöÁ¤ÇÑ °ÍºÎÅÍ ½ÃÀÛÇÏ´Â °ÍÀ» ±â¾ïÇÏÀÚ.

admin : ºñ¹Ð¹øÈ£ ¾øÀÌ localhost¿¡¼­ Á¢¼ÓÇÒ ¼ö ÀÖÀ¸¸ç reload¿Í process °ü¸®ÀÚ ±ÇÇÑÀ»
½ÂÀιÞÀº »ç¿ëÀÚ. ÀÌ°æ¿ì »ç¿ëÀÚ°¡ mysqladmin processlist »Ó¸¸ ¾Æ´Ï¶ó mysqladmin reloa
d, mysqladmin refresh, mysqladmin flush-* ¸í·ÉÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Ù.µ¥ÀÌÅͺ£À̽º¿Í °ü·ÃµÈ
±ÇÇÑÀº ½ÂÀεÇÁö ¾Ê¾Ò´Ù. ÀÌ°ÍÀº Ãß°¡ÀûÀÎ GRANT ¹®À» »ç¿ëÇØ ³ªÁß¿¡ ½ÂÀÎÇÒ ¼ö ÀÖ´Ù.

dummy : ºñ¹Ð¹øÈ£¾øÀÌ ¿¬°áÇÒ ¼ö ÀÖÁö¸¸ ¿ÀÁ÷ localhost¿¡¼­¸¸ ¿¬°á °¡´ÉÇÑ »ç¿ëÀÚ. ±ÇÇÑ
À¯Çü(privilege type)ÀÌ USAGE À̱⠶§¹®¿¡ ÀüüÀûÀÎ ±ÇÇÑÀÌ 'N'·Î ¼³Á¤µÇ¾î ÀÖ´Ù. USAGE
´Â ¾Æ¹«·± ±ÇÇѵµ ¼³Á¤ÇÏÁö ¾Ê´Â´Ù. ³ªÁß¿¡ µ¥ÀÌÅͺ£À̽º¿Í °ü·ÃµÈ ±ÇÇÑÀ» ½ÂÀÎÇÒ ¼ö ÀÖ´Ù.

¶ÇÇÑ µ¿ÀÏÇÑ »ç¿ëÀÚ Á¢±Ù Á¤º¸¸¦ INSERT ¹®À» ÅëÇØ Á÷Á¢ Ãß°¡ÇÒ ¼ö ÀÖÀ¸¸ç ÀÌ°æ¿ì¿¡´Â ¼­¹ö
°¡ ½ÂÀÎ Å×À̺íÀ» ´Ù½Ã Àеµ·Ï ¾Ë·ÁÁÖ¾î¾ß ÇÑ´Ù.(**FLUSH PRIVILEGES »ç¿ë**)

shell> mysql --user=root mysql
mysql> INSERT INTO user VALUES('localhost','monty',PASSWORD('something'),
                'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')
mysql> INSERT INTO user VALUES('%','monty',PASSWORD('something'),
                'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')
mysql> INSERT INTO user SET Host='localhost',User='admin',
                 Reload_priv='Y', Process_priv='Y';
mysql> INSERT INTO user (Host,User,Password)
                        VALUES('localhost','dummy',");
mysql> FLUSH PRIVILEGES;

mysql ¹öÀü¿¡ µû¶ó À§¿¡¼­ 'Y' °ªÀÌ ´Ù¸¦ ¼ö ÀÖ´Ù´Â °ÍÀ» ±â¾ïÇÏÀÚ. 3.22.11 ¹öÀü ÀÌÈÄ¿¡¼­
»ç¿ëÇÒ ¼ö ÀÖ´Â È®ÀåµÈ INSERT ¹®Àº ¿©±â¼­ admin »ç¿ëÀÚ¿¡°Ô »ç¿ëµÇ¾ú´Ù.

½´ÆÛÀ¯Àú¸¦ ¼³Á¤Çϱâ À§ÇØ ±ÇÇÑÇʵ带 'Y'·Î ÇÑ user Å×ÀÌºí ¸ñ·Ï¸¸ ¸¸µé¸é µÈ´Ù´Â °ÍÀ» ±â
¾ïÇÏÀÚ. db ³ª host Å×ÀÌºí ¸ñ·ÏÀº ÇÊ¿ä¾ø´Ù. (** °ü¸®ÀÚ ±ÇÇÑÀº db³ª host Å×À̺í°ú´Â Àü
Çô °ü·ÃÀÌ ¾ø´Ù. db´Â Á¢¼ÓÇÒ ¼ö ÀÖ´Â µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇØ »ó¼¼ÇÏ°Ô ¼³Á¤ÇÏ°í host Å×À̺í
Àº dbÅ×À̺íÀ» Á» ´õ Á¤±³ÇÏ°Ô ¼³Á¤Çϱâ À§ÇØ ÇÊ¿äÇÑ °ÍÀÌ´Ù. °ü¸®ÀÚ ±ÇÇÑÀº ¿ÀÁ÷ user Å×
ÀÌºí¸¸ °ü·ÃµÇ¾îÀÖ´Ù **)

¸¶Áö¸· INSERT ¹®(dummy »ç¿ëÀÚ)¿¡¼­´Â user Å×À̺íÀÇ ±ÇÇÑ Ä÷³ÀÌ ¸íÈ®ÇÏ°Ô ¼³Á¤µÇÁö ¾Ê¾Ò
´Ù. ¿Ö³Ä¸é ÀÌ Ä÷³ÀÇ ±âº»°ªÀº 'N'·Î µÇ¾î Àֱ⠶§¹®ÀÌ´Ù.

´ÙÀ½ÀÇ ¿¹Á¦¿¡¼­´Â custom À̶ó´Â »ç¿ëÀÚ¸¦ Ãß°¡ÇÑ´Ù. customÀº localhost, server.domain,
whitehouse.gov¿¡¼­ Á¢¼ÓÇÒ ¼ö ÀÖ´Ù. localhost¿¡¼­´Â bankaccount µ¥ÀÌÅͺ£À̽º¿¡¸¸ Á¢¼Ó
ÇÒ ¼ö ÀÖÀ¸¸ç whitehouse.gov¿¡¼­´Â expenses µ¥ÀÌÅͺ£À̽º¿¡, ¸ðµç ¼¼ È£½ºÆ®»ó¿¡¼­´Â cus
tomer µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÏ±æ ¿øÇÑ´Ù. ¸ðµç ¼¼ È£½ºÆ®»ó¿¡¼­ stupid¶ó´Â ºñ¹Ð¹øÈ£¸¦ »ç¿ë
ÇÏ±æ ¿øÇÑ´Ù.

GRANT ¹®À» ÀÌ¿ë ÀÌ·¯ÇÑ »ç¿ëÀÚ ±ÇÇÑÀ» ¼³Á¤Çϱâ À§ÇØ ´ÙÀ½ÀÇ ¸í·ÉÀ» ½ÇÇàÇÏÀÚ:

shell> mysql --user=root mysql
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
           ON bankaccount.*
           TO custom@localhost
           IDENTIFIED BY 'stupid';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
           ON expenses.*
           TO custom@whitehouse.gov
           IDENTIFIED BY 'stupid';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
           ON customer.*
           TO custom@'%';
           IDENTIFIED BY 'stupid';

½ÂÀÎ Å×À̺íÀ» Á÷Á¢ ¼öÁ¤ÇØ »ç¿ëÀÚ ±ÇÇÑÀ» ¼³Á¤ÇÏ·Á¸é ´ÙÀ½ÀÇ ¸í·ÉÀ» »ç¿ëÇÏÀÚ. (¸¶Áö¸·¿¡
FLUSH PRIVILEGES ¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù´Â °ÍÀ» ±â¾ïÇÏÀÚ):

shell> mysql --user=root mysql
mysql> INSERT INTO user (Host,User,Password)
       VALUES('localhost','custom',PASSWORD('stupid'));
mysql> INSERT INTO user (Host,User,Password)
       VALUES('server.domain','custom',PASSWORD('stupid'));
mysql> INSERT INTO user (Host,User,Password)
       VALUES('whitehouse.gov','custom',PASSWORD('stupid'));
mysql> INSERT INTO db
       (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
        Create_priv,Drop_priv)
       VALUES
       ('localhost','bankaccount','custom','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO db
       (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
        Create_priv,Drop_priv)
       VALUES
       ('whitehouse.gov','expenses','custom','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO db
       (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
        Create_priv,Drop_priv)
       VALUES('%','customer','custom','Y','Y','Y','Y','Y','Y');
mysql> FLUSH PRIVILEGES;
~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~

óÀ½ÀÇ ¼¼°¡Áö INSERT ¹®Àº custom »ç¿ëÀÚ°¡ ºñ¹Ð¹øÈ£¸¦ »ç¿ëÇÏ¿© ´Ù¾çÇÑ È£½ºÆ®¿¡¼­ Á¢¼Ó
ÇÒ ¼ö ÀÖµµ·Ï user Å×ÀÌºí ¸ñ·ÏÀ» Ãß°¡ÇÑ´Ù. ±×·¸Áö¸¸ ±×¿¡°Ô ¾î¶°ÇÑ Æ۹̼ǵµ ½ÂÀÎÇÏÁö ¾Ê
´Â´Ù. (¸ðµç ±ÇÇÑÀº ±âº»°ªÀ¸·Î 'N' ÀÌ´Ù) ´ÙÀ½ÀÇ ¼¼°¡Áö INSERT ¹®Àº ÀûÀýÇÑ È£½ºÆ®¿¡¼­
Á¢¼ÓÀ» ÇÒ ¶§, custom ¿¡°Ô bankaccount, expenses, customer µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ ±ÇÇÑÀ»
½ÂÀÎÇÏ´Â db Å×ÀÌºí ¸ñ·ÏÀ» Ãß°¡ÇÑ´Ù. ÀϹÝÀûÀ¸·Î ½ÂÀÎ Å×À̺íÀ» Á÷Á¢ ¼öÁ¤ÇÏ¿´À¸¸é, º¯°æ
µÈ ±ÇÇÑÀ» Àû¿ëÇϱâ À§ÇØ ¼­¹ö°¡ ½ÂÀÎ Å×À̺íÀ» ´Ù½Ã Àеµ·Ï ÇØ ÁÖ¾î¾ß ÇÑ´Ù.

ƯÁ¤ÇÑ »ç¿ëÀÚ°¡ ƯÁ¤ÇÑ µµ¸ÞÀÎÀÇ ½Ã½ºÅÛ¿¡¼­ Á¢¼ÓÇÒ ¼ö ÀÖµµ·Ï ¼³Á¤ÇÏ°íÀÚ ÇÑ´Ù¸é, ´ÙÀ½°ú
°°ÀÌ GRANT ¹®À» ¼³Á¤ÇÒ ¼ö ÀÖ´Ù:

mysql> GRANT ...
           ON *.*
           TO myusername@"%.mydomainname.com"
           IDENTIFIED BY 'mypassword';

½ÂÀÎ Å×À̺íÀ» Á÷Á¢ ¼öÁ¤ÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù:

mysql> INSERT INTO user VALUES ('%.mydomainname.com', 'myusername',
           PASSWORD('mypassword'),...);
mysql> FLUSH PRIVILEGES;
~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~

½ÂÀÎ Å×À̺íÀ» ´Ù·ç±â À§ÇØ xmysqladmin, mysql_webadmin, xmysql ÇÁ·Î±×·¥À» »ç¿ëÇÒ ¼ö ÀÖ
´Ù. http://www.mysql.com/Contrib ¿¡¼­ ÀÌ·¯ÇÑ À¯Æ¿¸®Æ¼¸¦ ãÀ» ¼ö ÀÖ´Ù.


6.10 ºñ¹Ð¹øÈ£ ¼³Á¤ ¹æ¹ý

¾ÕÀÇ ¿¹Á¦´Â Áß¿äÇÑ ¿øÄ¢À» º¸¿©ÁØ´Ù : INSERT ³ª UPDATE ¹®¿¡¼­ °ø¹éÀÌ ¾Æ´Ñ ºñ¹Ð¹øÈ£¸¦
ÀúÀåÇÒ ¶§ ¹Ýµå½Ã ¾ÏȣȭÇϱâ À§ÇØ PASSWORD() ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù!! user Å×À̺íÀº ºñ¹Ð
¹øÈ£¸¦ Ç÷¹ÀÎÅؽºÆ®(**ÀÏ¹Ý ÅؽºÆ® ÆÄÀÏ**)°¡ ¾Æ´Ï¶ó ¾ÏȣȭµÈ ÇüÅ·ΠÀúÀåÇϱ⠶§¹®ÀÌ´Ù.
ÀÌ·¯ÇÑ »ç½ÇÀ» Àؾî¹ö¸®¸é ´ÙÀ½°ú °°ÀÌ ºñ¹Ð¹øÈ£¸¦ ¼³Á¤ÇÏ·Á°í ÇÒ °ÍÀÌ´Ù:

shell> mysql -u root mysql
mysql> INSERT INTO user (Host,User,Password)
       VALUES('%','jeffrey','bLa81m0');
mysql> FLUSH PRIVILEGES;

Ç÷¹ÀÎÅؽºÆ® °ª 'bLa81m0' Àº user Å×ÀÌºí¿¡ ºñ¹Ð¹øÈ£·Î ÀúÀåÀÌ µÈ´Ù.jeffrey¶ó´Â »ç¿ëÀÚ
°¡ ÀÌ ºñ¹Ð¹øÈ£¸¦ »ç¿ëÇØ ¼­¹ö¿¡ ¿¬°áÇÏ·Á°í ÇÒ ¶§ mysql Ŭ¶óÀ̾ðÆ®¸¦ ÀÌ ºñ¹Ð¹øÈ£¸¦ ¾ÏÈ£
È­Çؼ­ ±× °á°ú¸¦ ¼­¹ö·Î º¸³½´Ù. ¼­¹ö´Â ¾ÏȣȭµÈ ºñ¹Ð¹øÈ£('bLa81m0'ÀÌ ¾Æ´Ï´Ù)¸¦ user
Å×À̺íÀÇ ºñ¹Ð¹øÈ£(Ç÷¹ÀÎÅؽºÆ® 'bLa81m0' °ªÀÌ´Ù)¿Í ºñ±³ÇÑ´Ù. ºñ±³´Â ½ÇÆÐÇÏ°í ¼­¹ö´Â
¿¬°áÀ» °ÅºÎÇÑ´Ù:

shell> mysql -u jeffrey -pbLa81m0 test
Access denied

ºñ¹Ð¹øÈ£´Â user Å×ÀÌºí¿¡ ÀÔ·ÂµÉ ¶§ ¹Ýµå½Ã ¾ÏȣȭµÇ¾î¾ß Çϱ⠶§¹®¿¡, INSERT ¹®Àº ´ÙÀ½
°ú °°ÀÌ »ç¿ëÇØ¾ß ÇÑ´Ù:

mysql> INSERT INTO user (Host,User,Password)
       VALUES('%','jeffrey',PASSWORD('bLa81m0'));

¶ÇÇÑ SET PASSWORD ¹®À» »ç¿ëÇÒ ¶§µµ PASSWORD() ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù:

mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('bLa81m0');

Âü°í : PASSWORD() ÇÔ¼ö´Â ºñ¹Ð¹øÈ£ ¾Ïȣȭ¸¦ ¼öÇàÇÑ´Ù. ±×·¸Áö¸¸ À¯´Ð½º¿¡¼­ ºñ¹Ð¹øÈ£¸¦
¾ÏȣȭÇÏ´Â ¹æ¹ý°ú´Â ´Ù¸£´Ù. À¯´Ð½º ºñ¹Ð¹øÈ£¿Í mysql ºñ¹Ð¹øÈ£°¡ µ¿ÀÏÇÒ ¶§ PASSWORD()
°¡ À¯´Ð½º ºñ¹Ð¹øÈ£ ÆÄÀÏ(** /etc/passwd ÆÄÀÏ **)¿¡ ¾ÏȣȭµÇ¾î ÀúÀåµÈ °ª°ú °°´Ù°í »ý°¢
ÇÏ¸é ¾È µÈ´Ù.

GRANT ... IDENTIFIED BY ¹®À̳ª mysqladmin password ¸í·ÉÀ» »ç¿ëÇØ ºñ¹Ð¹øÈ£¸¦ ¼³Á¤Çϸé
PASSWORD() ÇÔ¼ö´Â ÇÊ¿ä¾ø´Ù. µÑ´Ù ºñ¹Ð¹øÈ£¸¦ ¾ÏȣȭÇؼ­ ÀúÀåÇÑ´Ù:

mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'bLa81m0';
shell> mysqladmin -u jeffrey password bLa81m0

(** ´ç±Ù, GRANT ¹®À̳ª mysqladmin password ¸í·ÉÀ» »ç¿ëÇÏ´Â°Ô ÆíÇÏ°ÚÁö¿ä? mysqlÀÇ ¾ÏÈ£
È­ ¾Ë°í¸®ÁòÀÌ À¯´Ð½º¿Í ´Ù¸£µí À¯´Ð½º °èÁ¤°ú mysqlÀÇ »ç¿ëÀÚ´Â ÀüÇô ´Ù¸£´Ù´Â °Íµµ ´Ù½Ã
Çѹø ±â¾ïÇÏ°í ÀÖ¾î¾ß ÇÕ´Ï´Ù.**)



6.11 Á¢±Ù °ÅºÎ ¿¡·¯°¡ ³ª´Â ÀÌÀ¯

mysql ¼­¹ö¿¡ ¿¬°áÇÏ·Á ÇÒ ¶§ Á¢±Ù °ÅºÎ ¿¡·¯°¡ ³ª¸é, ¾Æ·¡¿¡¼­ ¼³¸íÇÏ´Â °Í¿¡ µû¶ó ÇØ°á
¹æ¹ýÀ» ãÀ» ¼ö ÀÖ´Ù:

- Ãʱ⠽ÂÀÎ Å×ÀÌºí ³»¿ëÀ» ¼³Á¤Çϱâ À§ÇØ mysqlÀ» ¼³Ä¡ÇÑ ÈÄ mysql_install_db ½ºÅ©¸³Æ®¸¦
½ÇÇàÇÏ¿´´Â°¡? ½ÇÇàÇÏÁö ¾Ê¾Ò´Ù¸é ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÏÀÚ. 6.8 [Default privileges] Âü°í.
´ÙÀ½ ¸í·ÉÀ» ÀÌ¿ëÇØ Ãʱ⠱ÇÇÑÀ» ½ÃÇèÇØ º¼ ¼ö ÀÖ´Ù:

        shell> mysql -u root test

¿¡·¯¾øÀÌ ¼­¹ö¿¡ Á¢¼ÓÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. mysql µ¥ÀÌÅͺ£À̽º µð·ºÅ丮¿¡ 'user.ISD' ÆÄÀÏ
ÀÌ ÀÖ´ÂÁö È®ÀÎÇغ¸¾Æ¾ß ÇÑ´Ù. (ÀϹÝÀûÀ¸·Î 'mysql ¼³Ä¡ µð·ºÅ丮/var/mysql/user.IDS' ÀÌ
´Ù)

- ¼³Ä¡¸¦ »õ·ÎÇÏ°í ³­ÈÄ , ¼­¹ö¿¡ ¿¬°áÇÏ°í »ç¿ëÀÚ¿Í Á¢±Ù ±ÇÇÑÀ» ¼³Á¤ÇØ¾ß ÇÑ´Ù:

        shell> mysql -u root mysql

Ãʱ⿡ mysql root »ç¿ëÀÚ¸¸ ºñ¹Ð¹øÈ£°¡ ¾ø±â ¶§¹®¿¡ ¼­¹ö¿¡ ¿¬°áÇÒ ¼ö ÀÖ´Ù. º¸¾È¹®Á¦°¡
Àֱ⠶§¹®¿¡, ´Ù¸¥ mysql »ç¿ëÀÚ¸¦ ¼³Á¤Çϱâ Àü¿¡ ¸ÕÀú rootÀÇ ºñ¹Ð¹øÈ£¸¦ ¼³Á¤ÇØ¾ß ÇÑ´Ù.
root·Î Á¢¼ÓÇÏ·ÁÇϴµ¥ ´ÙÀ½ÀÇ ¿¡·¯°¡ ³µ´Ù°í °¡Á¤ÇÏÀÚ:

        Access denied for user: '@unknown' to database mysql

ÀÌ°ÍÀº user Å×ÀÌºí¿¡ User Ä÷³ = root ¶ó´Â ¸ñ·ÏÀÌ ¾ø°í, mysqld°¡ »ç¿ëÀÚ Å¬¶óÀ̾ðÆ®ÀÇ
È£½ºÆ®À̸§À» Çؼ®ÇÒ ¼ö ¾ø´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ÀÌ·± °æ¿ì --skip-grant-tables ¿É¼ÇÀ» ÀÌ
¿ëÇØ ¼­¹ö¸¦ ´Ù½Ã ½ÃÀÛÇØ¾ß ÇÏ°í '/etc/hosts' ¸¦ ÆíÁýÇϰųª '\windows\hosts' ÆÄÀÏ¿¡ »ç
¿ëÀÚ È£½ºÆ® ¸ñ·ÏÀ» Ãß°¡ÇØ¾ß ÇÑ´Ù.

- 3.22.11 ÀÌÀü ¹öÀü¿¡¼­ 3.22.11À̳ª ÀÌÈÄ ¹öÀüÀ¸·Î ¾÷µ¥ÀÌÆ®Çß´Ù¸é, mysql_fix_privilege
_tables ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇߴ°¡? ÇÏÁö ¾Ê¾Ò´Ù¸é ½ÇÇàÇÏÀÚ. mysql 3.22.11¿¡¼­ GRANT ¹® ±â
´ÉÀÌ °¡´ÉÇØÁö¸é¼­ ½ÂÀÎ Å×ÀÌºí ±¸Á¶°¡ ¹Ù²î¾ú´Ù.

- (INSERT ³ª UPDATE ¹®À» »ç¿ëÇØ) ½ÂÀÎ Å×À̺íÀ» Á÷Á¢ °íÃÆ°í º¯È­°¡ ¾ÆÁ÷ ¹Ý¿µµÇÁö ¾ÊÀº
°ÍÀ¸·Î º¸À̸é, FLUSH PRIVILEGES ¹®À» »ç¿ëÇϰųª mysqladmin flush-privileges ¸í·ÉÀ» »ç
¿ëÇØ ¼­¹ö°¡ ½ÂÀÎ Å×À̺íÀ» ´Ù½Ã Àеµ·Ï ÇØ¾ß ÇÑ´Ù´Â °ÍÀ» ±â¾ïÇÏÀÚ.±×·¸Áö ¾ÊÀ¸¸é ¼­¹ö°¡
Àç½ÃÀÛÇϱâ Àü±îÁö´Â º¯È­µÈ °ÍÀÌ ¹Ý¿µµÇÁö ¾Ê´Â´Ù. root ºñ¹Ð¹øÈ£¸¦ ¼³Á¤ÇÏ°í ³ª¼­ ±ÇÇÑÀ»
flush Çϱâ±îÁö´Â ºñ¹Ð¹øÈ£¸¦ ¸í½ÃÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ¿Ö³Ä¸é ¼­¹ö´Â ¾ÆÁ÷ ºñ¹Ð¹øÈ£¸¦ ¹Ù²Ù¾ú
´ÂÁö ¸ð¸£±â ¶§¹®ÀÌ´Ù.

- ¼¼¼Ç Áß°£¿¡ ±ÇÇÑÀÌ º¯°æµÈ °ÍÀ¸·Î º¸ÀÌ¸é ½´ÆÛÀ¯Àú°¡ ¹Ù²Ù¾úÀ» °ÍÀÌ´Ù. ½ÂÀÎ Å×À̺íÀ»
Àç½ÃÀÛÇÏ´Â °ÍÀº »õ·Î¿î Ŭ¶óÀ̾ðÆ® Á¢¼Ó¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö¸¸ ÀÌ¹Ì Á¸ÀçÇÏ°í ÀÖ´ø ¿¬°áÀº 6.
7 [Privileges changes]¿¡¼­ ¼³¸íÇÑ´ë·Î ¿µÇâÀ» ¹ÌÄ£´Ù.

- ½ÃÇèÇϱâ À§ÇØ, mysqld ´ë¸ó¿¡  --skip-grant-tables ¿É¼ÇÀ» ÁÖ¾î ½ÃÀÛÇÏÀÚ. ±×·¯°í³ª¼­
mysql ½ÂÀÎ Å×À̺íÀ» º¯°æÇÒ ¼ö ÀÖ°í º¯°æµÈ°ÍÀÌ ¿øÇϴ´ë·Î ÀÛµ¿ÇÏ´ÂÁö¸¦ üũÇÏ´Â mysqla
ccess ½ºÅ©¸³Æ®¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¿øÇϴ´ë·Î ¼öÁ¤ÀÌ µÇ¾úÀ¸¸é mysqld ¼­¹ö°¡ »õ·Î¿î ½ÂÀÎ
Å×À̺í·Î ½ÃÀÛÇÒ ÀÖµµ·Ï mysq1admin flush-priveleges ¸¦ ½ÇÇàÇÑ´Ù.
ÁÖÀÇ : ½ÂÀÎÅ×À̺íÀ» Àç·ÎµùÇÏ´Â °ÍÀº --skip-grant-tables ¿É¼ÇÀ» ¹«È¿È­ÇÑ´Ù. À̸¦ ÅëÇØ
¼­¹ö¸¦ ´Ù¿î½ÃÅ°°í ´Ù½Ã Àç½ÃÀÛÇÏÁö ¾Ê°íµµ ½ÂÀÎ Å×À̺íÀ» ½ÃÀÛÇÒ ¼ö ÀÖ´Ù.

- ÆÞ, Python, ODBC ÇÁ·Î±×·¥¿¡¼­ Á¢±ÙÇϴµ¥ ¹®Á¦°¡ ÀÖ´Ù¸é, mysql -u user_name db_name 
¶Ç´Â mysql -u user_name -pyour_pass db_name À¸·Î ¼­¹ö¿¡ Á¢¼ÓÀ» ½ÃµµÇغ¸ÀÚ. (-p ¿Í ºñ
¹Ð¹øÈ£»çÀÌ¿¡´Â °ø¹éÀÌ ¾ø´Ù´Â °ÍÀ» ±â¾ïÇÏÀÚ. ¶ÇÇÑ --password=your_pass ÇüÅ·εµ »ç¿ëÇÒ
¼ö ÀÖ´Ù) mysql Ŭ¶óÀ̾ðÆ®·Î Á¢¼ÓÀÌ µÇ¸é ÇÁ·Î±×·¥¿¡ ¹®Á¦°¡ ÀÖ´Â °ÍÀ̸ç Á¢±Ù ±ÇÇÑ¿¡´Â
¹®Á¦°¡ ¾ø´Ù.

- ºñ¹Ð¹øÈ£°¡ Á¦´ë·Î ÀÛµ¿ÇÏÁö ¾ÊÀ¸¸é, INSERT, UPDATE, SET PASSWORD ¹®¿¡¼­ ºñ¹Ð¹øÈ£¸¦
¼³Á¤Çϸ鼭 PASSWORD() ÇÔ¼ö¸¦ ¹Ýµå½Ã »ç¿ëÇØ¾ß ÇÑ´Ù´Â °ÍÀ» ±â¾ïÇÏÀÚ. PASSWORD() ÇÔ¼ö´Â
GRANT ... INDENTIFIED BY ¹®À̳ª mysqladmin password ¸í·ÉÀ» »ç¿ëÇß´Ù¸é ºÒÇÊ¿äÇÏ´Ù. 6.1
0 [Passwords] Âü°í.

- localhost ´Â Áö¿ª È£½ºÆ® À̸§°ú °°Àº ¸»ÀÌ´Ù. ¶ÇÇÑ È£½ºÆ®¸¦ ¸í¹éÇÏ°Ô ¼³Á¤ÇÏÁö ¾ÊÀº
°æ¿ì Ŭ¶óÀ̾ðÆ®¿¡¼­ ¿¬°áÇÏ·Á´Â È£½ºÆ®ÀÇ ±âº»°ªÀÌ´Ù. ±×·¯³ª MIT-pthreads¸¦ »ç¿ëÇÏ´Â ½Ã
½ºÅÛ¿¡¼­´Â localhost·ÎÀÇ ¿¬°áÀÌ Á¦´ë·Î ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù. (localhost ¿¬°áÀº À¯´Ð½º ¼ÒÄÏ
À» ÅëÇØ ¸¸µé¾îÁø´Ù. ±×·¸Áö¸¸ MIT-pthreads¿¡¼­´Â À¯´Ð½º ¼ÒÄÏÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù.) ÀÌ¿Í
°°Àº ½Ã½ºÅÛ¿¡¼­ ¹®Á¦¸¦ ÇÇÇÏ·Á¸é, ¼­¹ö¿¡ È£½ºÆ® À̸§À» ¸íÈ®ÇÏ°Ô ¸»ÇØÁÖ±â À§ÇØ --host
¿É¼ÇÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. ±×·¯¸é mysqld ¼­¹ö¿¡ TCP/IP ¿¬°áÀ» ¸¸µç´Ù. ÀÌ°æ¿ì, ¼­¹ö È£½ºÆ®
ÀÇ user Å×ÀÌºí ¸ñ·Ï¿¡ ½ÇÁ¦ È£½ºÆ®À̸§ÀÌ ÀÖ¾î¾ß ÇÑ´Ù. (¼­¹ö¿Í µ¿ÀÏÇÑ È£½ºÆ®¿¡¼­ Ŭ¶óÀÌ
¾ðÆ® ÇÁ·Î±×·¥À» ½ÇÇàÇÑ´Ù°í ÇÏ´õ¶óµµ ¸¶Âù°¡ÁöÀÌ´Ù.)

- mysql -u user_name db_name À¸·Î µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÏ·Á ÇÒ ¶§ Á¢±Ù °ÅºÎ ¿¡·¯°¡ ³ª
¸é, user Å×ÀÌºí¿¡ ¹®Á¦°¡ ÀÖÀ» °ÍÀÌ´Ù. mysql -u root mysql ¸¦ ½ÇÇàÇÏ¿© Á¡°ËÇÏ°í ´ÙÀ½ÀÇ
SQL ¹®À» »ç¿ëÇÏÀÚ:

        mysql> SELECT * FROM user;

¿©±â¼­ »ç¿ëÀÚÀÇ È£½ºÆ®À̸§°ú mysql »ç¿ëÀÚ À̸§°ú ¸Â´Â Host ¿Í User Ä÷³ÀÇ ¸ñ·ÏÀÌ Æ÷ÇÔ
µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù.

- Access denied ¿¡·¯ ¸Þ½ÃÁö´Â Á¢¼ÓÇÏ·Á´Â »ç¿ëÀÚ¿Í È£½ºÆ® À̸§, ±×¸®°í ºñ¹Ð¹øÈ£¸¦ »ç¿ë
Çß´ÂÁö ¿©ºÎ¸¦ º¸¿©ÁÙ °ÍÀÌ´Ù. ÀϹÝÀûÀ¸·Î user Å×ÀÌºí¿¡ ¿¡·¯ ¸Þ½ÃÁö¿¡¼­ º¸¿©ÁØ È£½ºÆ®
À̸§°ú »ç¿ëÀÚ À̸§°ú Á¤È®ÇÏ°Ô ¸Â´Â ¸ñ·ÏÀ» °¡Áö°í ÀÖ¾î¾ß ÇÑ´Ù.


- ´Ù¸¥ ½Ã½ºÅÛ¿¡¼­ mysql ¼­¹ö¿¡ Á¢¼ÓÇÒ ¶§ ´ÙÀ½ÀÇ ¿¡·¯ ¸Þ½ÃÁö°¡ ³ª¿À¸é, user Å×ÀÌºí¿¡
¿¬°áÀ» ÇÏ·Á°í Çϴ ȣ½ºÆ® À̸§ÀÌ ¾ø´Ù´Â °ÍÀ» ¸»ÇÑ´Ù:

        Host ... is not allowed to connect to this MySQL server

(¼­¹ö È£½ºÆ®¿¡¼­!) ¸í·ÉÇà À¯Æ¿¸®Æ¼ÀÎ mysqlÀ» »ç¿ëÇÏ¿© user Å×ÀÌºí¿¡ ¿¬°áÇÏ°íÀÚ ÇÏ´Â
»ç¿ëÀÚ/È£½ºÆ® À̸§À» Ãß°¡ÇÏ¿© ÇØ°áÇÒ ¼ö ÀÖ´Ù. mysql 3.22 ¸¦ »ç¿ëÇÏ°í ÀÖÁö ¾Ê°í ¿¬°áÇÏ
°íÀÚ ÇÏ´Â ½Ã½ºÅÛÀÇ IP ¼ýÀÚ³ª È£½ºÆ® À̸§À» ¸ð¸¥´Ù¸é, user Å×ÀÌºí¿¡ Host Ä÷³ °ªÀ¸·Î
'%' ¸ñ·ÏÀ» ÀÔ·ÂÇÏ°í ¼­¹ö ½Ã½ºÅÛ¿¡¼­ --log ¿É¼ÇÀ» »ç¿ëÇØ mysqld ¸¦ Àç½ÃÀÛÇÏÀÚ. Ŭ¶óÀÌ
¾ðÆ® ½Ã½ºÅÛ¿¡¼­ ¿¬°áÀ» ½ÃµµÇÑ ÈÄ mysql ·Î±×¿¡´Â ¾î¶»°Ô ½ÇÁ¦·Î ¿¬°áÀ» Çß´ÂÁö¿¡ ´ëÇÑ Á¤
º¸°¡ µé¾îÀÖ´Ù. (±×·¯°í³ª¼­ '%'¸¦ ·Î±×¿¡ ³ª¿Â ½ÇÁ¦ È£½ºÆ® À̸§À¸·Î ¹Ù²Û´Ù. ±×·¸Áö 앟À¸
¸é º¸¾È¿¡ ¹®Á¦°¡ »ý±æ ¼ö ÀÖ´Ù.)

- mysql -u root test ´Â ÀÛµ¿À» Çϴµ¥ mysql -h your_hostname -u root test ¿¡¼­ Á¢±Ù¿¡
¿¡·¯°¡ ³ª¸é, user Å×ÀÌºí¿¡ Á¤È®ÇÑ È£½ºÆ® À̸§ÀÌ ¾øÀ» °ÍÀÌ´Ù. ÀϹÝÀûÀÎ ¹®Á¦´Â user Å×
À̺íÀÇ Host °ª¿¡´Â ¿ÏÀüÇÏÁö ¾ÊÀº È£½ºÆ® À̸§(** µµ¸ÞÀÎÀº »©°í È£½ºÆ® À̸§¸¸ ³ÖÀº °æ¿ì
**) ÀÌ µé¾î°¡ Àִµ¥ ½Ã½ºÅÛÀÇ ³×ÀÓ Çؼ® ·çƾÀº FQDN(fully-qualified domain name - **
¿ÏÀüÇÑ µµ¸ÞÀÎ À̸§°ú È£½ºÆ® À̸§À» »ç¿ë**)À¸·Î ó¸®ÇÏ´Â °æ¿ìÀÌ´Ù(¶Ç´Â °Å²Ù·Î Çؼ®).¿¹
¸¦ µé¾î, user Å×ÀÌºí¿¡ È£½ºÆ® À̸§ÀÌ 'taejun' À¸·Î µÇ¾îÀִµ¥, DNS´Â mysql¿¡ È£½ºÆ®
À̸§ÀÌ 'taejun.subnet.se'¶ó°í ¾Ë·ÁÁÙ ¼ö ÀÖÀ¸¸ç ÀÌ°æ¿ì´Â Á¦´ë·Î ÀÛµ¿ÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù.
user Å×ÀÌºí¿¡ Host Ä÷³ °ªÀ¸·Î¼­ ÇØ´çÇÏ´Â IP ¼ýÀÚ³ª È£½ºÆ® À̸§À» Ãß°¡ÇÏÀÚ. (´ë½Å, us
er Å×ÀÌºí¿¡ Host °ªÀ¸·Î ¿ÍÀϵåÄ«µå ¹®ÀÚ¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, 'taejun.%'. ±×·¯
³ª È£½ºÆ®À̸§ ³¡¿¡ '%'¸¦ »ç¿ëÇÏ´Â °ÍÀº ¾ÈÀüÇÏÁö ¾ÊÀ¸¸ç ±ÇÇÏÁöµµ ¾Ê´Â´Ù!)

- mysql -u user_name test ´Â ÀÛµ¿Çϴµ¥ mysql -u user_name other_db_name Àº ÀÛµ¿ÇÏÁö
¾Ê´Â´Ù¸é db Å×ÀÌºí¿¡ other_db_name ¸ñ·ÏÀÌ ¾ø´Â °æ¿ìÀÌ´Ù.

- ¼­¹ö ½Ã½ºÅÛ¿¡¼­ mysql -u user_name db_name Àº ÀÛµ¿À» Çϴµ¥, ´Ù¸¥ Ŭ¶óÀ̾ðÆ® ½Ã½ºÅÛ
¿¡¼­ mysql -u user_name db_name Àº ÀÛµ¿À» ÇÏÁö ¾Ê´Â´Ù¸é, user Å×À̺íÀ̳ª db Å×ÀÌºí¿¡
Ŭ¶óÀ̾ðÆ® ½Ã½ºÅÛÀÇ ¸ñ·ÏÀÌ ¾ø´Â °ÍÀÌ´Ù.

- ¿Ö Access denied °¡ ³ª´ÂÁö ÇØ°áÇÏÁö ¸øÇϸé, user Å×ÀÌºí¿¡¼­ ¿ÍÀϵåÄ«µå('%' ¶Ç´Â '
_')¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Â Host °ªÀ» °¡Áø ¸ñ·ÏÀ» ¸ðµÎ Á¦°ÅÇÏÀÚ. ¸Å¿ì ÀϹÝÀûÀÎ ¿¡·¯´Â Host='%
' ±×¸®°í User='some user'·Î ÀÔ·ÂÀ» ÇÏ°í³ª¼­ , ÀÌ·¸°Ô ÇÏ¸é °°Àº ½Ã½ºÅÛ¿¡¼­ ¿¬°áÇÒ ¶§ l
ocalhost¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖµµ·Ï Çã¿ëÇÑ´Ù°í »ý°¢ÇÏ´Â °ÍÀÌ´Ù. ÀÌ°ÍÀÌ Á¦´ë·Î ÀÛµ¿ÇÏÁö ¾Ê´Â
ÀÌÀ¯´Â ±âº» ±ÇÇÑ¿¡ Host='localhost' ¿Í User='' ¸ñ·ÏÀÌ Æ÷ÇԵǾî Àֱ⠶§¹®ÀÌ´Ù. Host °ª
¿¡ '%' º¸´Ù ´õ ºÐ¸íÇÑ 'localhost' ¸ñ·ÏÀÌ Àֱ⠶§¹®¿¡, localhost¿¡¼­ Á¢¼ÓÇÒ ¶§ »õ·Î¿î
¸ñ·Ïº¸´Ù ¸ÕÀú ¼±ÅÃÀÌ µÈ´Ù. Á¤È®ÇÑ ÀýÂ÷´Â µÎ¹ø° Ç׸ñÀ¸·Î Host='localhost' ¿Í User='so
me_user' ¸¦ ÀÔ·ÂÇϰųª Host='localhost' ¿Í User='' ¸¦ Á¦°ÅÇÏ´Â °ÍÀÌ´Ù.

- ´ÙÀ½ÀÇ ¿¡·¯°¡ ³ª´Â °æ¿ì:

        Access to database denied

db ³ª host Å×ÀÌºí¿¡ ¹®Á¦°¡ ÀÖÀ» °ÍÀÌ´Ù. ¼±ÅÃÇÑ db Å×À̺íÀÇ ¸ñ·Ï¿¡ Host Ä÷³ÀÌ ºñ¾îÀÖ
´Ù¸é, host Å×ÀÌºí¿¡ db Å×ÀÌºí ¸ñ·Ï¿¡ Àû¿ëµÇ´Â È£½ºÆ® À̸§ÀÌ ÀÖ´ÂÁö¸¦ È®ÀÎÇØ¾ß ÇÑ´Ù.
(** ÀϹÝÀûÀ¸·Î db Å×ÀÌºí¿¡ host °ªÀ» ºñ¿öµÎ´Â °æ¿ì, host Å×ÀÌºí¿¡¼­ Á¢±ÙÇϴ ȣ½ºÆ®¸¦
Á¦¾îÇÒ ¼ö ÀÖ´Ù **)

- ´ÙÀ½ÀÇ ¿¡·¯°¡ ³ª´Â °æ¿ì:


        Access to database denied

SELECT ... INTO OUTFILE ¶Ç´Â LOAD DATA INFILE ÀÇ SQL ¹®À» »ç¿ëÇÏ´Â °æ¿ì, user Å×À̺í
¸ñ·Ï¿¡¼­ file ±ÇÇÑÀÌ ¼³Á¤µÇ¾î ÀÖÁö ¾Ê¾ÒÀ» °ÍÀÌ´Ù.

- ´Ù¸¥ ¸ðµç °ÍÀÌ ½ÇÆÐÇÏ¿´À» °æ¿ì, mysqld ´ë¸óÀ» µð¹ö±ë ¿É¼ÇÀ¸·Î ½ÃÀÛÇÏÀÚ. (¿¹¸¦ µé¾î,
--debug=d,general,query) ±×·¯¸é °¢ ¸í·É¿¡¼­ »ý±â´Â Á¤º¸¿Í ÇÔ²², Á¢¼ÓÀ» ½ÃµµÇϴ ȣ½º
Æ®¿Í »ç¿ëÀÚ¿¡ ´ëÇÑ Á¤º¸¸¦ Ãâ·ÂÇÒ °ÍÀÌ´Ù. G.1 [Debugging] Âü°í.

- mysql ½ÂÀÎ Å×ÀÌºí¿¡¼­ ´Ù¸¥ ¹®Á¦¿¡ ºÎµúÃÆ°í ÀÌ ¹®Á¦¸¦ ¸ÞÀϸµ¸®½ºÆ®¿¡ ¾Ë·Á¾ß°Ú´Ù°í ´À
³¢¸é, mysql ½ÂÀÎ Å×À̺íÀ» ´ýÇÁÇÏ¿© Á¦°øÇØ¾ß ÇÑ´Ù. mysqldump mysql ¸í·ÉÀ» »ç¿ëÇØ Å×ÀÌ
ºíÀ» ´ýÇÁÇÒ ¼ö ÀÖ´Ù. ¾ðÁ¦³ª mysqlbug ½ºÆ®¸³Æ®¸¦ »ç¿ëÇÏ¿© ¹®Á¦¸¦ ¿Ã¸®ÀÚ.

- ´ÙÀ½ÀÇ ¿¡·¯°¡ ³ª´Â °æ¿ì, mysqld ´ë¸óÀÌ ½ÇÇàµÇÁö ¾Ê°Å³ª À߸øµÈ ¼ÒÄÏÀ̳ª Æ÷Æ®·Î ¿¬°á
ÇÏ·Á°í ½ÃµµÇÏ´Â °æ¿ì:

        Can't connect to local MySQL server
        Can't connect to MySQL server on some_hostname

¸ÕÀú mysqld ´ë¸óÀÌ ½ÇÁ¦·Î ÀÛµ¿ÇÏ´ÂÁö ps¸¦ ÀÌ¿ëÇØ È®ÀÎÇÑ´Ù. ¼ÒÄÏ ÆÄÀÏÀÌ ÀÖ´ÀÁö È®ÀÎÇÏ
°í Á¡°ËÀ» ÇØ º¸¾Æ¾ß ÇÑ´Ù.(ÀϹÝÀûÀ¸·Î `/tmp/mysql.sock' ÀÓ) ¶Ç´Â telnet host_name 3306
À¸·Î Á¢¼ÓÀ» ½ÃµµÇغ¸ÀÚ. ´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ À§ÇØ mysqladmin version °ú mysqladmin -h hos
t_name version À» »ç¿ëÇØ º¼ ¼ö ÀÖ´Ù. ¹°·Ð Âü°íÇÒ °ÍÀÌ ÀÖ´ÂÁö mysql µ¥ÀÌŸ µð·ºÅ丮ÀÇ
¿¡·¯ ·Î±× ÆÄÀÏÀ» Á¡°ËÇغ¸ÀÚ.

{{}}{{}}{{}}- Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥Àº ¼³Á¤ ÆÄÀÏÀ̳ª ȯ°æ º¯¼ö¿¡¼­ ÁöÁ¤ÇÑ ¿¬°á Æз¯¹ÌÅ͸¦ »ç¿ëÇÒ ¼ö
ÀÖ´Ù´Â °ÍÀ» ±â¾ïÇÏÀÚ. ¸í·ÉÇà¿¡¼­ ÁöÁ¤ÇÏÁö ¾Ê¾Ò´Âµ¥ Ŭ¶óÀ̾ðÆ®°¡ À߸øµÈ ±âº» ¿¬°á Æз¯
¹ÌÅ͸¦ º¸³»´Â °ÍÀ¸·Î »ý°¢µÇ¸é, Ȩ µð·ºÅ丮¿¡¼­ ȯ°æº¯¼ö³ª '.my.cnf' ÆÄÀÏÀ» Á¡°ËÇغ¸
ÀÚ. ºñ·Ï ¿©±â¼­ ÁöÁ¤ÇÑ ¿¬°á Æз¯¹ÌÅÍ¿Í´Â °ü°è°¡ ¸ÖÁö¸¸ ½Ã½ºÅÛÀÇ Àü¹ÝÀûÀÎ mysql ¼³Á¤
ÆÄÀÏÀ» Á¡°ËÇØ º¼ ¼ö ÀÖ´Ù. 4.14.4 [Option files] Âü°í. Ŭ¶óÀ̾ðÆ®¿¡¼­ ¾Æ¹«·± ¿É¼Çµµ ÁÖ
Áö ¾Ê¾Ò´Âµ¥ Access denied ¿¡·¯ ¸Þ½ÃÁö°¡ ³ª¿À´Â °æ¿ì, ¿É¼Ç ÆÄÀÏ Áß¿¡¼­ ¿¹ÀüÀÇ ºñ¹Ð¹øÈ£
¸¦ ÁöÁ¤ÇÏÁö ¾Ê¾Ò´ÂÁö È®ÀÎÇØ º¸ÀÚ. 4.14.4 [Option files] Âü°í.




6.12 Å©·¢Ä¿¿¡ ´ëºñÇÏ¿© mysqlÀ» ¾ÈÀüÇÏ°Ô ÇÏ´Â ¹æ¹ý

mysql ¼­¹ö¿¡ ¿¬°áÇÒ ¶§ ÀϹÝÀûÀ¸·Î ºñ¹Ð¹øÈ£¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. ºñ¹Ð¹øÈ£´Â ¿¬°áÇÒ ¶§ ´Ü¼ø
ÇÑ ÅؽºÆ®·Î Àü¼ÛµÇÁö ¾Ê´Â´Ù.

¼­¹ö/Ŭ¶óÀ̾ðÆ® ¿¬°áÀº ¾ÏȣȭµÇÁö ¾Ê´Â´Ù; ¸ðµç Á¤º¸´Â ¿¬°áÀ» º¼ ¼ö ÀÖ´Â ´©±¸¶óµµ ÀÐÀ»
¼ö ÀÖ´Â ÅؽºÆ®·Î Àü¼ÛµÈ´Ù. ÀÌ ¹®Á¦¿¡ ´ëÇØ °ÆÁ¤ÀÌ µÇ¸é ¹®Á¦¸¦ ¾î·Æ°Ô Çϱâ À§ÇØ ¾ÐÃà ÇÁ
·ÎÅäÄÝ(mysql 3.22 ÀÌ»ó ¹öÀü)À» »ç¿ëÇÒ ¼ö ÀÖ´Ù. º¸¾ÈÀ» ´õ È®½ÇÇÏ°Ô Çϱâ À§ÇØ ssh¸¦ ¼³
Ä¡ÇÒ ¼ö ÀÖ´Ù. (http://www.cs.hut.fi/ssh Âü°í) ÀÌ°ÍÀ» ÀÌ¿ëÇØ mysql ¼­¹ö¿Í Ŭ¶óÀ̾ðÆ®
»çÀÌ¿¡ ¾ÏȣȭµÈ TCP/IP ¿¬°áÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

mysql ½Ã½ºÅÛÀÇ º¸¾ÈÀ» À¯ÁöÇÏ°Ô À§ÇØ ´ÙÀ½ÀÇ Á¦¾ÈÀ» ½ÅÁßÇÏ°Ô °í·ÁÇÏÀÚ:

- ¸ðµç mysql »ç¿ëÀÚ°¡ ºñ¹Ð¹øÈ£¸¦ »ç¿ë. ¾î¶² »ç¿ëÀÚ°¡ ºñ¹Ð¹øÈ£°¡ ¾øÀ¸¸é 'mysql - u »ç
¿ëÀÚÀ̸§' À» ÀÌ¿ëÇØ °£´ÜÇÏ°Ô ±× »ç¿ëÀÚ·Î ·Î±×ÀÎÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» ±â¾ïÇÏÀÚ. ÀÌ°ÍÀº Ŭ
¶óÀ̾ðÆ®/¼­¹ö ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÀϹÝÀûÀÎ ÀÛµ¿¹æ¹ýÀÌ´Ù. mysql_install_db ½ºÅ©¸³Æ®¸¦ ½ÇÇà
Çϱâ Àü¿¡ ÀÌ ½ºÅ©¸³Æ®¸¦ ¼öÁ¤ÇÏ¿© ¸ðµç »ç¿ëÀÚÀÇ ºñ¹Ð¹øÈ£¸¦ ¹Ù²Ü ¼ö ÀÖ´Ù. ¶Ç´Â mysql ro
ot »ç¿ëÀÚÀÇ ºñ¹Ð¹øÈ£¸¦ ¹Ù²Ü ¶§´Â ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù:

shell> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('new_password')
           WHERE user='root';
mysql> FLUSH PRIVILEGES;

- mysql µ¥¸óÀ» À¯´Ð½ºÀÇ root »ç¿ëÀÚ·Î ½ÃÀÛÇÏÁö ¸»ÀÚ. mysqld ´Â ´Ù¸¥ »ç¿ëÀÚ°¡ ½ÇÇàÇÒ
¼ö ÀÖ´Ù.¶ÇÇÑ º¸¾ÈÀ» ´õ ¾ö°ÝÇÏ°Ô Çϱâ À§ÇØ mysqlÀ̶ó´Â À¯´Ð½º »ç¿ëÀÚ¸¦ ¸¸µé ¼ö ÀÖ´Ù.
´Ù¸¥ À¯´Ð½º »ç¿ëÀÚ·Î mysqld¸¦ ½ÇÇàÇϸé user Å×ÀÌºí¿¡¼­ root »ç¿ëÀÚ À̸§À» ¹Ù²Ü ÇÊ¿ä°¡
¾ø´Ù. mysqld¸¦ ´Ù¸¥ À¯´Ð½º »ç¿ëÀÚ°¡ ½ÃÀÛÇϱâ À§ÇØ mysql.server ½ºÅ©¸³Æ®¸¦ ¼öÁ¤ÇÏ¸é µÈ
´Ù. ÀϹÝÀûÀ¸·Î su ¸í·ÉÀ» »ç¿ëÇÑ´Ù. ´õ ÀÚ¼¼ÇÑ ³»¿ëÀº 16.7 [Changing mysql user] Âü°í.

- mysqld¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Â »ç¿ëÀÚ¸¸ÀÌ µ¥ÀÌÅͺ£À̽º µð·ºÅ丮¿¡ Àбâ/¾²±â ±ÇÇÑÀ» °¡Áö°í
ÀÖ´ÂÁö È®ÀÎ.

- ¸ðµç »ç¿ëÀÚ¿¡°Ô process ±ÇÇÑÀ» ÁÖÁö ¸»ÀÚ. mysqladmin processlist À» Ãâ·ÂÇϸé ÇöÀç
½ÇÇàÇÏ´Â Äõ¸®ÀÇ ³»¿ëÀ» º¼ ¼ö ÀÖ´Ù. ±×·¯¹Ç·Î ÀÌ·¯ÇÑ ¸í·ÉÀ» ½ÇÇàÇÒ ±ÇÇÑÀÌ ÀÖ´Â »ç¿ëÀÚ´Â
´Ù¸¥ »ç¿ëÀÚÀÇ UPDATE user SET password=PASSWORD(_'no_secure') ÁúÀǸ¦ º¼ ¼ö ÀÖ´Ù.mysql
Àº process ±ÇÇÑÀ» °¡Áø »ç¿ëÀÚ¸¦ À§ÇØ Ãß°¡ÀûÀÎ(extra) ¿¬°áÀ» ÀúÀåÇÑ´Ù.±×·¡¼­ mysql roo
t »ç¿ëÀÚ´Â ¸ðµç ÀϹÝÀûÀÎ ¿¬°áÀÌ »ç¿ëµÇ¾ú¾îµµ ·Î±×ÀÎÇÏ°í Á¡°ËÀ» ÇÒ ¼ö ÀÖ´Ù.

- ¸ðµç »ç¿ëÀÚ¿¡°Ô file ±ÇÇÑÀ» ÁÖÁö ¸»ÀÚ. ÀÌ·¯ÇÑ ±ÇÇÑÀÌ ÀÖ´Â »ç¿ëÀÚ´Â mysqld ´ë¸óÀÇ ±Ç
ÇÑÀÌ ÀÖ´Â ÆÄÀÏ ½Ã½ºÅÛÀÇ ¾î´À °÷¿¡¶óµµ ÆÄÀÏÀ» ÀúÀåÇÒ ¼ö ÀÖ´Ù.Á» ´õ ¾ÈÀüÇÏ°Ô Çϱâ À§ÇØ
SELECT ... INTO OUTFILE ·Î »ý¼ºµÇ´Â ¸ðµç ÆÄÀÏÀº ¸ðµç »ç¿ëÀÚ°¡ Àб⸸ ÇÒ ¼ö ÀÖÀ¸¸ç ÀÌ
¹Ì Á¸ÀçÇÏ´Â ÆÄÀÏÀ» µ¤¾î¾º¿ï ¼ö ¾ø´Ù.
(** file ±ÇÇÑÀº LOAD DATA INFILE , SELECT .. INTO OUTFILE ¹®À» ÀÌ¿ëÇÏ¿© ¼­¹ö¿¡ ÆÄÀÏÀ»
ÀúÀåÇÏ°í ÀÐÀ» ¼ö ÀÖ´Â ±ÇÇÑÀ» Çã¿ëÇÑ´Ù. ÀÌ·¯ÇÑ ±ÇÇÑÀ» °¡Áø »ç¿ëÀÚ´Â mysql ¼­¹ö°¡ Àаí
¾µ ¼ö ÀÖ´Â ÆÄÀÏÀ» ÀÐ°í ¾µ ¼ö ÀÖ´Â ±ÇÇÑÀÌ Çã¿ëµÈ´Ù. ÀÏ¹Ý »ç¿ëÀÚ¿¡°Ô ÀÌ·± ±ÇÇÑÀ» ÁÙ ÇÊ
¿ä´Â ¾ø´Ù. ÇÊ¿äÇÑ ºÎºÐ¸¸ ±ÇÇÑÀ» ÁÖ´Â °ÍÀÌ ÁÁ´Ù. ±ÇÇÑÀ» ³²¿ë¸»ÀÚ. **)

- DNS ¸¦ ½Å·ÚÇÏÁö ¸øÇÑ´Ù¸é ½ÂÀÎ Å×ÀÔ¸£¿¡¼­ È£½ºÆ®À̸§ ´ë½Å IP¸¦ »ç¿ëÇÏÀÚ. ±âº»ÀûÀ¸·Î
mysqld ÀÇ --secure ¿É¼ÇÀº È£½ºÆ®À̸§À» ¾ÈÀüÇÏ°Ô ÇÑ´Ù. ¾î¶² °æ¿ì ¿ÍÀϵåÄ«µå ¹®ÀÚ°¡ Æ÷
ÇÔµÈ È£½ºÆ®À̸§ °ªÀ» »ç¿ëÇÒ¶§´Â ¸Å¿ì Á¶½ÉÇØ¾ß ÇÑ´Ù.

- mysql.server ½ºÅ©¸³Æ®¿¡¼­ À¯´Ð½º root »ç¿ëÀÚÀÇ ºñ¹Ð¹øÈ£¸¦ ³Ö´Â´Ù¸é, ÀÌ ½ºÅ©¸³Æ®´Â
¿ÀÁ÷ root¸¸ÀÌ ÀÐÀ» ¼ö ÀÖµµ·Ï ÇØ¾ß ÇÑ´Ù.

´ÙÀ½ÀÇ mysqld ¿É¼ÇÀº º¸¾È°ú °ü·ÃµÇ¾î ÀÖ´Ù:

--secure : gethostbyname() ½Ã½ºÅÛ ÄÝ¿¡ ÀÇÇØ ¸®ÅÏµÈ IP ¼ýÀÚ°¡ ¿ø·¡ÀÇ È£½ºÆ®À̸§À» reso
lve ÇÑ °Í°ú °°ÀºÁö¸¦ Á¡°ËÇÑ´Ù. ÀÌ°ÍÀº ¾î¶² »ç¶÷ÀÌ ´Ù¸¥ È£½ºÆ® À̸§À» ¿¡¹Ä·¹ÀÌÅÍÇؼ­
Á¢±ÙÇÏ´Â °ÍÀ» ¾î·Æ°Ô ¸¸µç´Ù. ÀÌ ¿É¼ÇÀº ¶ÇÇÑ È£½ºÆ®À̸§ÀÌ ¿ÂÀüÇÑÁö¿¡ ´ëÇÑ Á¡°ËÀ» Ãß°¡
ÇÑ´Ù. Çؼ®Çϴµ¥ ¶§·Î´Â ½Ã°£ÀÌ ¸¹ÀÌ °É·Á¼­ mysql 3.21¿¡¼­´Â ±âº»ÀûÀ¸·Î ¼³Á¤ÀÌ µÇ¾î ÀÖ
Áö ¾Ê´Ù. mysql 3.22¿¡¼­´Â È£½ºÆ®À̸§À» ij½¬ÇÏ°í ÀÌ ¿É¼ÇÀÌ ±âº»ÀûÀ¸·Î ¼³Á¤µÇ¾î ÀÖ´Ù.
(** ÇÔ¼ö gethostbyname()Àº È£½ºÆ® À̸§À» ÀÎÀÚ·Î ¹Þ¾Æ ±×¿¡ ÇØ´çÇÏ´Â IP ÁÖ¼Ò ¹× ±âŸ Á¤
º¸¸¦ ÇØ´çÇÏ´Â ±¸Á¶Ã¼¿¡ ´ã¾Æ ±× ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅ͸¦ ¸®ÅÏÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù. ½±°Ô ¸»Çؼ­ È£
½ºÆ® À̸§À» ³ÖÀ¸¸é ÇØ´ç IP ÁÖ¼Ò¸¦ ã¾ÆÁÖÁö¿ä.**)

--skip-grant-tables : ÀÌ ¿É¼ÇÀ» »ç¿ëÇÏ¸é ¼­¹ö°¡ ±ÇÇÑ ½Ã½ºÅÛÀ» ÀüÇô »ç¿ëÇÏÁö ¾Ê´Â´Ù.
±×·¯¸é ¸ðµç »ç¿ëÀÚ°¡ ¸ðµç µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÒ ¼ö ÀÖ´Ù! (mysqladmin reload ¸¦ ½ÇÇàÇÏ
¿© ½ÇÇàÁßÀÎ ¼­¹ö°¡ ½ÂÀÎ Å×À̺íÀ» »ç¿ëÇϵµ·Ï ÇÒ ¼ö ÀÖ´Ù.)

--skip-name-resolve : È£½ºÆ®À̸§ÀÌ Çؼ®µÇÁö ¾Ê´Â´Ù. ½ÂÀÎ Å×À̺íÀÇ ¸ðµç Host Ä÷³°ªÀº
¹Ýµå½Ã IP ¼ýÀÚÀ̰ųª ·ÎÄÃÈ£½ºÆ®À̾î¾ß ÇÑ´Ù.

--skip-networking : ³×Æ®¿÷À» ÅëÇÑ TCP/IP ¿¬°áÀ» Çã¿ë¾ÈÇÔ. mysqld¿Í ¸ðµç ¿¬°áÀº À¯´Ð½º
µµ¸ÞÀÎ ¼ÒÄÏÀ» ÅëÇØ ¸¸µé¾îÁø´Ù. ÀÌ ¿É¼ÇÀº MIT-pthreads¸¦ »ç¿ëÇÏ´Â ½Ã½ºÅÛ¿¡¼­´Â Á¦´ë·Î
ÀÛµ¿À» ÇÏÁö ¾Ê´Â´Ù. ¿Ö³Ä¸é MIT-pthreads ÆÐÅ°Áö´Â À¯´Ð½º ¼ÒÄÏÀ» Áö¿øÇÏÁö ¾Ê±â ¶§¹®ÀÌ
´Ù. (** ¸®´ª½º¸¦ »ç¿ëÇÏ´Â »ç¶÷µé¿¡°Ô´Â »ó°ü¾ø°ÚÁÒ? À¯´Ð½º µµ¸ÞÀÎ ¼ÒÄÏÀ» Áö¿øÇϴϱñ.
ÀÌ¿Í ºñ½ÁÇÏ°Ô postgresµµ 6.3¹öÀü ÀÌÈĺÎÅÍÀΰ¡¿ä? ±âº»ÀûÀ¸·Î À¯´Ð½º µµ¸ÞÀÎ ¼ÒÄÏÀ¸·Î ¹Ù
²î¾úÁö¿ä. **)
9. mysql ¼­¹ö ±â´É(functions)

9.1 mysql¿¡¼­ Áö¿øÇÏ´Â ¾ð¾î
mysqldÀÇ ¿¡·¯ ¸Þ½ÃÁö´Â ´ÙÀ½ÀÇ ¾ð¾î·Î ³ªÅ¸³¯ ¼ö ÀÖ½À´Ï´Ù. : Czech, Dutch, English(±âº»
°ª), ±âŸ µîµî (** ±âŸ ¾ð¾î´Â ¸Å´º¾ó Âü°í. ÇѱÛ, ÀϺ»¾î µî µ¿¾ç±ÇÀº ¿©±â¼­ ºüÁ®ÀÖ½À´Ï
´Ù. 9.1.1 ÀýÀ» Âü°íÇϼ¼¿ä. **)

mysqld¸¦ ƯÁ¤ÇÑ ¾ð¾î·Î ½ÃÀÛÇÏ·Á¸é --language=lang ¶Ç´Â -L lang ¿É¼ÇÀ» »ç¿ëÇÏ¸é µË´Ï
´Ù.

¿¹> # mysqld--language=swedish

¶Ç´Â

# mysqld --language=/usr/local/share/swedish

¸ðµç ¾ð¾î´Â ¼Ò¹®ÀڷΠǥ±âÇÕ´Ï´Ù.

¾ð¾î ÆÄÀÏÀº (±âº»°ªÀ¸·Î) 'mysql_base_dir/share/LANGUAGE/'¿¡ ÀÖ½À´Ï´Ù.

¿¡·¯ ¸Þ½ÃÁö ÆÄÀÏÀ» ¾÷µ¥ÀÌÆ®ÇÏ·Á¸é 'errmsg.txt' ÆÄÀÏÀ»  ÆíÁýÇÏ°í 'errmsg.sys' ÆÄÀÏÀ» ¸¸
µé±â À§ÇØ ´ÙÀ½ÀÇ ¸í·ÉÀ» »ç¿ëÇÕ´Ï´Ù.

# comp_err errmsg.txt errmsg.sys

¸¸¾à mysqlÀÇ »õ·Î¿î ¹öÀüÀ¸·Î ¾÷±×·¹À̵åÇÏ¸é »õ·Î¿î 'errmsg.txt' ÆÄÀÏ·Î À§¿Í °°Àº °úÁ¤
À» °ÅÃÄ¾ß ÇÕ´Ï´Ù.


9.1.1 µ¥ÀÌÅÍ¿Í Á¤¿­¿¡ »ç¿ëÇÏ´Â ¹®ÀÚ ¼Â
±âº»ÀûÀ¸·Î mysqlÀº ISO-8859-1 (Latin 1) ¹®ÀÚ ¼ÂÀ» »ç¿ëÇÕ´Ï´Ù. ÀÌ ¹®ÀÚ¼ÂÀº ¹Ì±¹°ú ¼­À¯
·´¿¡¼­ »ç¿ëÇÏ´Â ¹®ÀÚ ¼ÂÀÔ´Ï´Ù.

¹®ÀÚ¼ÂÀº À̸§¿¡ ¾î¶² ¹®ÀÚ¼ÂÀ» »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö ±×¸®°í SELECT ¹®¿¡¼­ ORDER BY ¿Í
GROUP BY ¹®À» »ç¿ëÇÒ ¶§ ¾î¶»°Ô Á¤·ÄµÇ´ÂÁö¸¦ °áÁ¤ÇÕ´Ï´Ù.

ÄÄÆÄÀÏÇÒ¶§ configure¿¡¼­ --with-charset=charset ¿É¼ÇÀ» »ç¿ëÇÏ¿© ¹®ÀÚ¼ÂÀ» ¹Ù²Ü ¼ö ÀÖ½À
´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº 4.7.1 À» Âü°íÇϼ¼¿ä.
(** ÇѱÛÀ» »ç¿ëÇϱâ À§Çؼ­ ÀÌ ºÎºÐÀº Áß¿äÇÕ´Ï´Ù. ¿ì¸®´Â  ÄÄÆÄÀÏÇÒ¶§ ¹®ÀÚ¼ÂÀ» sjis·Î ¹Ù
²Ù¾î ÁÖ¸é µË´Ï´Ù. sjis´Â ÀϺ»¾î 2¹ÙÀÌÆ® ¹®ÀÚ  ¼ÂÀÔ´Ï´Ù. ÀÌ·¸°Ô ÇØ¾ß Á¤·ÄÀÌ Á¦´ë·Î µÇ°í
Á¤±ÔÇ¥Çö½ÄÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. **) 


9.1.2 »õ·Î¿î ¹®Àڼ Ãß°¡
** »ý·« **


9.1.3 ¸ÖƼ¹ÙÀÌÆ® ¹®ÀÚ Áö¿ø
¸ÖƼ ¹ÙÀ̽º ¹®ÀÚ¼ÂÀ» ¸¸µé¸é _MB ¸ÅÅ©·Î¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

** »ý·« **


9.2 ¾÷µ¥ÀÌÆ® ·Î±×
mysqld¸¦ ½ÃÀÛÇÒ ¶§ --log-update=file_name ¿É¼ÇÀ»  »ç¿ëÇϸé mysqld´Â µ¥ÀÌŸ¸¦ ¾÷µ¥ÀÌ
Æ®ÇÑ ¸ðµç  sql ¹®À»  Æ÷ÇÔÇÏ´Â ·Î±×  ÆÄÀÏÀ» ±â·ÏÇÕ´Ï´Ù.  ÆÄÀÏÀº  data µð·ºÅ丮(**  º¸Åë
mysql ¼³Ä¡ µð·ºÅ丮 ¹ØÀÇ data  µð·ºÅ丮 **)¿¡ ±â·ÏµÇ¸ç file_name.#  ÇüÅ·ΠµË´Ï´Ù. #Àº
mysqladmin refresh ³ª mysqladmin flush -logs, FLUSH LOGS ¹®, ¶Ç´Â ¼­¹ö¸¦ Àç½ÃÀÛÇÒ
¶§¸¶´Ù Áõ°¡µË´Ï´Ù.

--log ³ª -l ¿É¼ÇÀ» »ç¿ëÇϸé ÆÄÀÏ À̸§Àº 'hostname.log'°¡ µÇ¸ç, restart³ª refreshes¸¦  ÇØ
µµ »õ·Î¿î ·Î±× ÆÄÀÏÀÌ ¸¸µé¾îÁöÁö ¾Ê½À´Ï´Ù. ±âº»ÀûÀ¸·Î mysql.server ½ºÅ©¸³Æ®´Â  -l ¿É¼Ç
À¸·Î mysql ¼­¹ö¸¦ ½ÃÀÛÇÕ´Ï´Ù. production enviroment(?)¸¦ »ç¿ëÇÏ¿© ½ÃÀÛÇÒ¶§ ´õ ³ªÀº ¼º
´ÉÀÌ ÇÊ¿äÇϸé mysql.server¿¡¼­ -l ¿É¼ÇÀ» Á¦°ÅÇÒ ¼ö ÀÖ½À´Ï´Ù.

¾÷µ¥ÀÌÆ® ·Î±×´Â Áö´ÉÀûÀ̼­ ½ÇÁ¦·Î µ¥ÀÌŸ°¡ ¾÷µ¥ÀÌÆ®µÉ ¶§¸¸ ·Î±× ±â·ÏÀ» ³²±é´Ï´Ù. ±×·¡
¼­ WHERE¸¦ »ç¿ëÇÑ UPDATE³ª DELETE¿¡¼­ ÇØ´çÇÏ´Â ·¹Äڵ带 ãÁö ¸øÇÏ¸é ·Î±× ÆÄÀÏ
¿¡ ±â·ÏÇÏÁö ¾Ê½À´Ï´Ù. ¶ÇÇÑ ÀÌ¹Ì Á¸ÀçÇÏ´Â °ªÀ» »ç¿ëÇÒ¶§µµ Update ¹®Àº ¹«½ÃµË´Ï´Ù.

¾÷µ¥ÀÌÆ® ·Î±× ÆÄÀÏ¿¡¼­ µ¥ÀÌÅͺ£À̽º¸¦  ¾÷µ¥ÀÌÆ®ÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ  ÇÏ¸é µË´Ï´Ù. (·Î±×
ÆÄÀÏÀÌ 'file_name.#'ÀÇ ÇüŶó°í °¡Á¤)

# ls -1 -t -r file_name.[0-9]* | xargs cat | mysql

ls´Â Á¤È®ÇÑ ¼ø¼­·Î ¸ðµç ·Î±× ÆÄÀÏÀ» °¡Á®¿Ã ¶§ »ç¿ëÇÕ´Ï´Ù.

ÀÌ°ÍÀº µ¥ÀÌÅͺ£À̽º¿¡ ¼Õ»óÀÌ »ý±ä µÚ ¹é¾÷ ÆÄÀÏ·Î º¹±¸ÇÒ ¶§ À¯¿ëÇϸç, ¹é¾÷°ú ¼Õ»óÀÌ »ý
±ä ½Ã°£ »çÀÌ¿¡ ÀϾ ¾÷µ¥ÀÌÆ®¸¦ ´Ù½Ã ÇÒ¶§(redo) »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

¶ÇÇÑ ´Ù¸¥ È£½ºÆ®¿¡ ¹Ì·¯¸µµÈ µ¥ÀÌÅͺ£À̽º¸¦  °¡Áö°í ÀÖÀ¸¸ç ¸¶½ºÅÍ µ¥ÀÌÅͺ£À̽º¿¡  »ý±ä
º¯È­¸¦ º¹»çÇÒ¶§ ¾÷µ¥ÀÌÆ® ·Î±×¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

9.3 mysql Å×À̺í ÃÖ´ë Å©±â
mysql ÀÚü´Â Å×À̺í ÃÖ´ë Å©±â°¡ 4GÀÌ¸ç ¿î¿µ ½Ã½ºÅÛÀº °¢ÀÚÀÇ °íÀ¯ÇÑ ÆÄÀÏ Å©±â  Á¦ÇÑÀÌ
ÀÖ½À´Ï´Ù. ¸®´ª½º¿¡¼­´Â ÇöÀç 2G ÀÔ´Ï´Ù. ¼Ö¶ó¸®½º 2.5.1¿¡¼­´Â 4GÀ̸ç,  ¼Ö¶ó¸®½º 2.6¿¡¼­´Â
1000G°¡ µÉ °ÍÀÔ´Ï´Ù. ÇöÀç Å×À̺í Å©±â Á¦ÇÑÀº 4GÀ̰ųª, (MYSQL Á¦ÇÑ) ¿î¿µ ½Ã½ºÅÛ Á¦
ÇÑÀÔ´Ï´Ù. 4G ÀÌ»óÀ¸·Î È®´ëÇϱâ À§ÇØ ¾ÕÀ¸·Î mysqlÀ»  ¹Ù²Ü °ÍÀÔ´Ï´Ù. ºÎ·Ï F¸¦ Âü°íÇϼ¼
¿ä.

°Å´ë Å×À̺íÀ» Àбâ Àü¿ëÀ¸·Î ÇÏ¸é  ¸¹Àº Å×À̺íÀ» Çϳª·Î ¸ðÀ¸°í  ¾ÐÃàÇÏ´Â pack_isam À»
»ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. pack_isamÀº ÀϹÝÀûÀ¸·Î Å×À̺íÀ» ÃÖ¼Ò 50%  ¾ÐÃàÇÏ¿© È¿°úÀûÀ¸·Î ´õ
Å« Å×À̺íÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. 12.3 [pack_isam]À» Âü°íÇϼ¼¿ä.

´Ù¸¥ ¼Ö·ç¼ÇÀº MERGE ¶óÀ̺귯¸®¿¡ Æ÷ÇԵǾî ÀÖÀ¸¸ç  identical Å×À̺íÀ» ¸ð¾Æ Çϳª·Î °ü
¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. (¿©±â¼­  IdenticalÀº ¸ðµç Å×À̺íÀÌ identical  Ä÷³ Á¤º¸·Î ¸¸µé¾îÁø´Ù´Â
°ÍÀ»  ÀǹÌÇÕ´Ï´Ù.)  ÇöÀç  MERGE´Â  À妽º¸¦  Áö¿øÇÏÁö  ¾Ê±â  ¶§¹®¿¡  Å×À̺íÀÇ  ¸ðÀ½
(collection)¸¸À» °Ë»öÇϴµ¥¸¸ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. °¡±î¿î  ½ÃÀϳ»¿¡ ¿©±â¿¡ À妽º¸¦ Ãß°¡
ÇÒ °ÍÀÔ´Ï´Ù.

(** Âü°í·Î Àбâ Àü¿ë Å×À̺íÀº mysql¿¡ ¶óÀ̼¾½º¸¦ ÁöºÒÇÏ°í ±¸ÀÔÇßÀ» ¶§¸¸ ¸¸µé ¼ö ÀÖ½À
´Ï´Ù. ´ÜÁö Àб⸸ ÇÏ´Â °ÍÀº °¡´ÉÇÏÁö¸¸ ¾ÐÃàÀÌ µÈ Àбâ Àü¿ë Å×À̺íÀº ¸¸µé ¼ö  ¾ø½À´Ï´Ù.
**)
10. mysqlÀÇ ÃÖ´ë ¼º´É Çâ»ó ¹æ¹ý

10.1 ¹öÆÛ Å©±â Á¶Á¤
mysqld ¼­¹ö°¡ »ç¿ëÇÏ´Â ±âº» ¹öÆÛ Å©±â´Â ´ÙÀ½ÀÇ ¸í·ÉÀ¸·Î ¾Ë ¼ö ÀÖ´Ù.

shell> mysqld --help

ÀÌ ¸í·ÉÀº ¸ðµç mysqld ¿É¼ÇÀÇ ¸ñ·Ï°ú ¼³Á¤ º¯¼ö¸¦ º¸¿©ÁØ´Ù. Ãâ·ÂµÇ´Â ³»¿ëÀº ±âº»°ªÀ»
Æ÷ÇÔÇÏ°í ÀÖÀ¸¸ç ´ÙÀ½°ú ºñ½ÁÇÏ´Ù.

Possible variables for option --set-variable (-O) are:
back_log              current value: 5
connect_timeout       current value: 5
join_buffer           current value: 131072
key_buffer            current value: 1048540
long_query_time       current value: 10
max_allowed_packet    current value: 1048576
max_connections       current value: 90
max_connect_errors    current value: 10
max_join_size         current value: 4294967295
max_sort_length       current value: 1024
net_buffer_length     current value: 16384
record_buffer         current value: 131072
sort_buffer           current value: 2097116
table_cache           current value: 64
tmp_table_size        current value: 1048576
thread_stack          current value: 131072
wait_timeout          current value: 28800

mysqld ¼­¹ö°¡ ÇöÀç °¡µ¿ÁßÀÌ¸é ´ÙÀ½ÀÇ ¸í·ÉÀ» ÅëÇØ ½ÇÁ¦ º¯¼ö°ªÀ» º¼ ¼ö ÀÖ´Ù.

shell> mysqladmin variables

°¢ ¿É¼ÇÀº ¹Ø¿¡¼­ ¼³¸íÇÑ´Ù. ¹öÆÛ  Å©±â, ±æÀÌ, ½ºÅà ũ±â´Â ¹ÙÀÌÆ®ÀÌ´Ù. 'K'(ų·Î¹ÙÀÌÆ®)
³ª 'M'(¸Þ°¡¹ÙÀÌÆ®)¸¦ ¾Õ¿¡ ºÙ¿© °ªÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¸é 16M´Â 16 ¸Þ°¡¹ÙÀÌÆ®¸¦
°¡¸®Å²´Ù. ´ë¼Ò¹®ÀÚ´Â ±¸º°ÇÏÁö ¾Ê´Â´Ù. 16M ¿Í 16mÀº °°´Ù.

-back_log
mysqlÀÌ °¡Áú ¼ö ÀÖ´Â ÃÖ´ë ¿¬°á ¿äûÀÇ ¼ö. ÀÌ°ÍÀº main mysql ½º·¹µå°¡ ¸Å¿ì ªÀº ½Ã°£
µ¿¾È ¸Å¿ì ¸¹Àº ¿¬°á ¿äûÀ» ¹ÞÀ» ¶§ ±â´ÉÀ» ÇÑ´Ù. À̶§ ¸ÞÀÎ ½º·¹µå°¡ ¿¬°áÀ» üũÇÏ°í »õ
·Î¿î ½º·¹µå¸¦ ½ÃÀÛÇϴµ¥´Â ¾à°£ÀÇ ½Ã°£ÀÌ °É¸°´Ù.(±×·¯³ª ¾ÆÁÖ ÂªÀº ½Ã°£ÀÓ) back_log °ª
Àº mysqlÀÌ ¼ø°£ÀûÀ¸·Î »õ·Î¿î ¿äû¿¡ ´äÇÏ´Â °ÍÀ» ¸ØÃß±âÀü¿¡ ÀÌ ÂªÀº ½Ã°£µ¿¾È ¾ó¸¶³ª
¸¹Àº ¿äûÀ» ½×¾ÆµÎ°í ÀÖ´ÂÁö¸¦ ÁöÁ¤ÇÑ´Ù. ¸Å¿ì ªÀº ½Ã°£µ¿¾È ¸Å¿ì ¸¹Àº ¿¬°áÀÌ ¿¹»óµÉ¶§
¸¸ ÀÌ °ªÀ» Áõ°¡½ÃÄÑ¾ß ÇÑ´Ù.

´Ù¸¥ ¸»·Î ÀÌ °ªÀº tcp/ip ¿¬°áÀ» ¹Þ´Â listen queueÀÇ Å©±âÀÌ´Ù. °¢ ¿î¿µÃ¼Á¦¸¶´Ù ÀÌ·¯ÇÑ Å¥
ÀÇ Å©±â¿¡ ÇÑ°è°¡ ÀÖ´Ù. Unix system call listen(2) ¸Å´º¾óÆäÀÌÁö¿¡ ÀÚ¼¼ÇÑ Á¤º¸°¡ ÀÖ´Ù. ba
ck_log°ªÀÇ ÇÑ°è´Â ¿î¿µÃ¼Á¦ ¹®¼­¸¦ È®ÀÎÇغÁ¶ó. back_log¸¦ ÃÖ´ë°ªº¸´Ù ´õ ³ô¿©µµ È¿°ú°¡
¾ø´Ù.

-connect_timeout
Bad handshake¿¡ ¹ÝÀÀÇϱâ Àü¿¡ ¿¬°á ÆÐŶÀ» mysql ¼­¹ö¿¡¼­ ±â´Ù¸®´Â ½Ã°£.(ÃÊ)

-join_buffer
(À妽º¸¦ »ç¿ëÇÏÁö ¾Ê´Â Á¶ÀÎÀÇ) full-join¿¡¼­ »ç¿ëÇÏ´Â ¹öÆÛÀÇ Å©±â. ¹öÆÛ´Â µÎ Å×ÀÌºí »ç
ÀÌ¿¡¼­ °¢ full-join¸¶´Ù Çѹø ÇÒ´çÀÌ µÈ´Ù. À妽ÌÀ» Ãß°¡ÇÏÁö ¸øÇÒ ¶§ Á¶ÀÎ ¹öÆÛ¸¦ Áõ°¡½Ã
Å°¸é full joinÀÇ ¼Óµµ¸¦ Çâ»ó½Ãų ¼ö ÀÖ´Ù. (ÀϹÝÀûÀ¸·Î ºü¸£°Ô Á¶ÀÎÀ» ÇÏ´Â °¡Àå ÁÁÀº ¹æ¹ý
ÀºÀ妽º¸¦ Ãß°¡ÇÏ´Â °ÍÀÌ´Ù)

-key_buffer
À妽º ºí¶ôÀº ¹öÆÛ¸µµÇ°í ¸ðµç ½º·¹µå¿¡¼­ °øÀ¯ÇÑ´Ù. Å° ¹öÆÛ´Â À妽º ºí¶ô¿¡¼­ »ç¿ëÇÏ´Â
¹öÆÛÀÇ Å©±âÀÌ´Ù. À妽º°¡ ¸¹Àº Å×ÀÌºí¿¡¼­ delete³ª insert ÀÛ¾÷À» ¸¹ÀÌ Çϸé Å° ¹öÆÛ°ªÀ»
Áõ°¡½ÃÅ°´Â °ÍÀÌ ÁÁ´Ù. ´õ ºü¸¥ ¼Óµµ¸¦ ³»·Á¸é LOCK TABLES¸¦ »ç¿ëÇÏÀÚ. [Lock Tables]
Âü°í.

-max_allowed_packet
ÇÑ ÆÐŶÀÇ ÃÖ´ë Å©±â. ¸Þ½ÃÁö ¹öÆÛ´Â net_buffer_length ¹ÙÀÌÆ®·Î ÃʱâÈ­µÇÁö¸¸ ÇÊ¿äÇϸé ÃÖ
´ë Çã¿ë ÆÐŶ ¹ÙÀÌÆ®¸¦ Áõ°¡½Ãų ¼ö ÀÖ´Ù.±âº»°ªÀº Å« ÆÐŶÀ» Àâ±â¿¡´Â ÀÛ´Ù. °Å´ë BLOB
Ä÷³À» »ç¿ëÇÑ´Ù¸é °ªÀ» Áõ°¡½ÃÄÑ¾ß ÇÑ´Ù. »ç¿ëÀÚ°¡ ¿øÇÏ´Â ÃÖ´ë blob¸¸Å­ Å©°Ô  ÇØ¾ß ÇÑ´Ù.

-max_connections
µ¿½Ã Ŭ¶óÀ̾ðÆ® ¼ýÀÚ. mysqld°¡ ÇÊ¿ä·ÎÇÏ´Â ÆÄÀÏ Áö½ÃÀÚ(descriptor)ÀÇ ¼ýÀÚ¸¸Å­ °ªÀ» ´Ã·Á
¾ß ÇÑ´Ù. ¹Ø¿¡¼­ ÆÄÀÏ µð½ºÅ©¸³ÅÍ Á¦ÇÑ¿¡ ´ëÇÑ ³»¿ëÀ» Âü°íÇÏÀÚ.

-max_connect_errors
È£½ºÆ®¿¡¼­ ÃÖ´ë ¿¬°á ¿¡·¯ÀÌ»óÀÇ interrupted ¿¬°áÀÌ ÀÖÀ¸¸é ´õ ¸¹Àº ¿¬°áÀ» À§ÇØ È£½ºÆ®´Â
blockÈ­µÈ´Ù. FLUSH HOSTS ¸í·ÉÀ¸·Î È£½ºÆ®ÀÇ blockÀ» ÇØÁ¦ÇÒ ¼ö ÀÖ´Ù.

-max_join_size
ÃÖ´ë Á¶ÀÎ Å©±âÀÌ»óÀ¸·Î ·¹Å©µµ¸¦ Àд Á¶ÀÎÀ» ÇÏ¸é ¿¡·¯°¡ ³­´Ù. ¸¸¾à »ç¿ëÀÚ°¡ where ¹®
À» »ç¿ëÇÏÁö ¾Ê°í ½Ã°£ÀÌ ¸¹ÀÌ °É¸®¸é¼­ ¸î¹é¸¸°³ÀÇ ·¹Äڵ带 Àд Á¶ÀÎÀ» ¼öÇàÇÏ·Á Çϸé
ÀÌ °ªÀ» ¼³Á¤ÇÑ´Ù.

-max_sort_length
BLOB³ª TEXT °ªÀ¸·Î Á¤¿­ÇÒ¶§ »ç¿ëÇÏ´Â ¹ÙÀÌÆ®ÀÇ ¼ýÀÚ. (°¢ °ªÁß ¿ÀÁ÷ ù¹ø° max_sort
_length ¹ÙÀÌÆ®¸¸ »ç¿ëµÈ´Ù. ³ª¸ÓÁö´Â ¹«½ÃµÈ´Ù)

-net_buffer_length
ÁúÀÇ¿¡¼­ Åë½Å ¹öÆÛ°¡ ÃʱâÈ­µÇ´Â Å©±â. ÀϹÝÀûÀ¸·Î ¹Ù²îÁö ¾ÊÁö¸¸ ¸Å¿ì ÀûÀº ¸Þ¸ð¸®¸¦ °¡
Áö°í ÀÖÀ» ¶§ ¿¹»óµÇ´Â ÁúÀÇ¿¡ ¸Â°Ô ¼¼ÆÃÇÒ ¼ö ÀÖ´Ù. (ÀÌ°ÍÀº Ŭ¶óÀ̾ðÆ®¿¡ °¡´Â ¿¹»óµÈ sql
¹®ÀÇ ±æÀÌÀÌ´Ù. ÁúÀǹ®ÀÌ ÀÌ Å©±â¸¦ ³ÑÀ¸¸é ¹öÆÛ´Â ÀÚµ¿À¸·Î max_allowed_packet ¹ÙÀÌÆ®±î
Áö Áõ°¡ÇÑ´Ù)

-record_buffer
¼øÂ÷ÀûÀÎ °Ë»öÀ» ÇÏ´Â °¢ ½º·¹µå¿¡¼­ °¢ °Ë»ö Å×ÀÌºí¿¡ ÇÒ´çÇÏ´Â ¹öÆÛ Å©±â. ¼øÂ÷ÀûÀÎ °Ë»ö
À» ¸¹ÀÌ Çϸé ÀÌ °ªÀ» Áõ°¡½ÃÄÑ¾ß ÇÑ´Ù.

-sort_buffer
Á¤·ÄÀÌ ÇÊ¿äÇÑ °¢ ½º·¹µå¿¡¼­ ÇÒ´çÇÏ´Â ¹öÆÛ Å©±â. order by ³ª group by ¿ÀÆÛ·¹À̼ÇÀ» ºü
¸£°Ô ÇÏ·Á¸é ÀÌ °ªÀ» Áõ°¡½ÃŲ´Ù. 16.4 [Àӽà ÆÄÀÏ] Âü°í.

-table_cache
¸ðµç ½º·¹µå¿¡¼­ ¿­ ¼ö ÀÖ´Â Å×À̺íÀÇ ¼ýÀÚ. mysqld°¡ ÇÊ¿ä·Î ÇÏ´Â ÆÄÀÏ µð½ºÅ©¸³ÅÍÀÇ ¼ý
ÀÚ¸¸Å­ ÀÌ °ªÀ» Áõ°¡½ÃÄѶó. mysqlÀº °¢ À¯ÀÏÇÑ ¿ÀÇ Å×ÀÌºí¿¡¼­ µÎ°³ÀÇ ÆÄÀÏ µð½ºÅ©¸³ÅÍ°¡
ÇÊ¿äÇÏ´Ù. ÆÄÀÏ µð½ºÅ©¸³ÅÍ Á¦ÇÑÀ»  Âü°íÇÑ´Ù. Å×À̺í ij½¬°¡ ¾î¶»°Ô ÀÛµ¿ÇÏ´ÂÁö´Â 10.6 [Å×
À̺í ij½¬]¸¦ Âü°íÇÑ´Ù.

-tmp_table_size
Àӽà Å×À̺íÀÌ ÀÌ °ªÀ» ³ÑÀ¸¸é mysqlÀº "The Table tbl_name is full"À̶ó´Â ¿¡·¯ ¸Þ½ÃÁö¸¦
³½´Ù. ¸Å¿ì ¸¹Àº group by ÁúÀǸ¦ »ç¿ëÇϸé ÀÌ °ªÀ» Áõ°¡½ÃÄÑ¾ß ÇÑ´Ù.

-thread_stack
°¢ ½º·¹µåÀÇ ½ºÅà »çÀÌÁî. creash-me test(**¿ªÀÚÁÖ : µ¥ÀÌÅͺ£À̽ºÀÇ º¥Ä¡¸¶Å·À» ÇÏ´Â Å×½º
Æ®ÀÔ´Ï´Ù. ¸»±×´ë·Î µ¥ÀÌÅͺ£À̽º¸¦ Á׿©ÁÖÁö¿ä) ¿¡¼­ ÀâÈ÷´Â ¸¹Àº Á¦ÇÑÀº ÀÌ °ª¿¡ ´Þ·ÁÀÖ
´Ù. ±âº»°ªÀº ÀϹÝÀûÀ¸·Î ÃæºÐÈ÷ Å©´Ù. 11ÀåÀÇ [º¥Ä¡¸¶Å©] ÂüÁ¶

-wait_timeout
¿¬°áÀ» ²÷±âÀü¿¡ ¿¬°á È°µ¿(activity)À» ¼­¹ö¿¡¼­ ±â´Ù¸®´Â ½Ã°£(ÃÊ).

table_cache ¿Í max_connections´Â ¼­¹ö°¡ ¿­ ¼ö ÀÖ´Â ÃÖ´ë ÆÄÀÏ °¹¼ö¿¡ ¿µÇâÀ» ¹ÌÄ£´Ù. ÀÌ
°ªÀ» Áõ°¡½ÃÅ°¸é ¿î¿µ½Ã½ºÅÛ¿¡¼­ ¿ÀÇ ÆÄÀÏ µð½ºÅ©¸³ÅÍÀÇ per-process ¼ýÀÚÀÇ ÇÑ°è±îÁö ¿Ã
¸± ¼ö ÀÖ´Ù. (** ... imposed by your operating system on the per-process number of
open file descriptors. ¹ø¿ªÀÌ ÀÌ»óÇϹǷΠ¿µ¹® Âü°í)
±×·¯³ª ¸¹Àº ½Ã½ºÅÛ¿¡¼­ ÀÌ ÇѰ踦 Áõ°¡½Ãų¼ö ÀÖ´Ù. ÀÌ·¸°Ô ÇÏ·Á¸é °¢ ½Ã½ºÅÛ¿¡¼­ ÀÌ ÇÑ°è
¸¦ º¯È­½ÃÅ°´Â ¹æ¹ýÀÌ ¸Å¿ì ´Ù¾çÇϹǷΠ¿î¿µÃ¼Á¦ ¹®¼­¸¦ Âü°íÇØ¾ß ÇÑ´Ù.

table_cache ´Â max_connections ¿Í °ü°è°¡ ÀÖ´Ù. ¿¹¸¦ µé¸é 200°³ÀÇ ¿¬°áÀÌ ÀÖÀ¸¸é ÃÖ¼Ò 2
00 * n ÀÇ Å×À̺í ij½¬¸¦ °¡Á®¾ß ÇÑ´Ù. ¿©±â¼­ nÀº Á¶Àο¡¼­ Å×À̺íÀÇ ÃÖ´ë ¼ýÀÚÀÌ´Ù.

mysqlÀº ¸Å¿ì À¯¿ëÇÑ ¾Ë°í¸®ÁòÀ» »ç¿ëÇϱ⠶§¹®¿¡ ÀϹÝÀûÀ¸·Î´Â ¸Å¿ì ÀûÀº ¸Þ¸ð¸®·Î »ç¿ë
ÇÒ ¼ö ÀÖÀ¸¸ç ¸Þ¸ð¸®°¡ ¸¹À» ¼ö·Ï ¼º´ÉÀÌ ´õ ¸¹ÀÌ Çâ»óµÈ´Ù.

¸¹Àº ¸Þ¸ð¸®¿Í ¸¹Àº Å×À̺íÀ» °¡Á³°í Áß°£Á¤µµ ¼ýÀÚÀÇŬ¶óÀ̾ðÆ®¿¡¼­ ÃÖ´ëÀÇ ¼º´ÉÀ» ¿øÇÑ´Ù
¸é ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÑ´Ù.

shell> safe_mysqld -O key_buffer=16M -O table_cache=128 \
           -O sort_buffer=4M -O record_buffer=1M &

¸Þ¸ð¸®°¡ Àû°í ¿¬°áÀÌ ¸¹À¸¸é ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÑ´Ù.

shell> safe_mysqld -O key_buffer=512k -O sort_buffer=100k \
           -O record_buffer=100k &

¶Ç´Â:

shell> safe_mysqld -O key_buffer=512k -O sort_buffer=16k \
           -O table_cache=32 -O record_buffer=8k -O net_buffer=1K &

¸Å¿ì ¸¹Àº ¿¬°áÀÌ ÀÖÀ» ¶§ mysqld°¡ °¢ ¿¬°á¸¶´Ù ÃÖ¼ÒÇÑÀÇ ¸Þ¸ð¸®¸¦ »ç¿ëÇϵµ·Ï ¼³Á¤ÇÏÁö
¾Ê¾Ò´Ù¸é "swapping problems" ¹®Á¦°¡ »ý±æ °ÍÀÌ´Ù.

mysqld¿¡¼­ ¿É¼ÇÀ» ¹Ù²Ù¾úÀ¸¸é ±×°ÍÀº ¼­¹öÀÇ ÇØ´çÇÏ´Â ÀνºÅϽº¿¡¸¸ ¿µÇâÀ» ¹ÌÄ£´Ù´Â °Í
À» ±â¾ïÇÏÀÚ.

¿É¼ÇÀ» ¹Ù²Ù¾úÀ»¶§ÀÇ È¿°ú¸¦ º¸±â À§ÇØ ´ÙÀ½°ú °°ÀÌ Çغ¸ÀÚ.

shell> mysqld -O key_buffer=32m --help

¸¶Áö¸·¿¡ --help ¿É¼ÇÀÌ µé¾î°£ °ÍÀ» ±â¾ïÇÏÀÚ. ±×·¸Áö ¾ÊÀ¸¸é Ä¿¸Çµå ¶óÀο¡¼­ »ç¿ëÇÑ ¿É
¼ÇÀÇ È¿·ÂÀº Ãâ·Â¿¡´Â ¹Ý¿µµÇÁö ¾ÊÀ» °ÍÀÌ´Ù.


10.2 ¸Þ¸ð¸® »ç¿ë ¹æ¹ý <¸Þ¸ð¸® ÃÖÀûÈ­>

¾Æ·¡¿¡¼­ ¼³¸íÇÏ´Â ¸ñ·ÏÀº mysqld ¼­¹ö°¡ ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ­ ³ªÅ¸³»°í ÀÖ
´Ù. ¸Þ¸ð¸® »ç¿ë°ú °ü·ÃµÈ ¼­¹öÀÇ º¯¼ö À̸§ÀÌ ÁÖ¾îÁø´Ù.


- Å° ¹öÆÛ(º¯¼ö key_buffer)´Â ¸ðµç ½º·¹µå¿¡¼­ °øÀ¯ÇÑ´Ù. ¼­¹ö¿¡¼­ »ç¿ëÇÏ´Â ´Ù¸¥ ¹öÆÛ´Â
ÇÊ¿äÇÑ´ë·Î ÇÒ´çÀÌ µÈ´Ù.

- °¢ ¿¬°áÀº °¢ ½º·¹µå¸¶´ÙÀÇ Æ¯Á¤ÇÑ °ø°£À» »ç¿ëÇÑ´Ù. ½ºÅÃ(64k, º¯¼ö thread_stack) , ¿¬°á
¹öÆÛ(º¯¼ö net_buffer_length), result ¹öÆÛ (º¯¼ö net_buffer_length) µî. ¿¬°á ¹öÆÛ¿Í result
¹öÆÛ´Â ÇÊ¿äÇÒ¶§ max_allowed_packet ±îÁö µ¿ÀûÀ¸·Î Áõ°¡µÈ´Ù. ÁúÀÇ°¡ ¼öÇàµÉ ¶§ ÇöÀçÀÇ
ÁúÀǹ®ÀÇ º¹»ç¹®ÀÌ ¶ÇÇÑ ÇÒ´çÀÌ µÈ´Ù.
(** When a query is running a copy of the current query string is also alloced.)

- ¸ðµç ½º·¹µå´Â °°Àº ±âº» ¸Þ¸ð¸®¸¦ °øÀ¯ÇÑ´Ù.
- ¸Þ¸ð¸® ¸ÊÀº ¾ÆÁ÷ Áö¿øÀÌ ¾ÈµÈ´Ù. (¾ÐÃà Å×À̺íÀ» Á¦¿ÜÇÏ°í. ±×·¯³ª ÀÌ°ÍÀº ´Ù¸¥ À̾߱âÀÌ
´Ù) ¿Ö³ÄÇϸé 4GBÀÇ 32ºñÆ® ¸Þ¸ð¸® °ø°£Àº ´ëºÎºÐÀÇ ´ëÇü Å×ÀÌºí¿¡¼­ ÃæºÐÈ÷ Å©±â°¡ ¾Ê±â
¶§¹®ÀÌ´Ù. ¿ì¸®°¡ 64ºñÆ® ÁÖ¼Ò °ø°£À» °¡Áø ½Ã½ºÅÛÀ» °¡Áö°Ô µÉ ¶§ ¿ì¸®´Â ¸Þ¸ð¸® ¸ÊÇÎÀ»
À§ÇÑ ÀϹÝÀûÀÎ Áö¿øÀ» Ãß°¡ÇÒ °ÍÀÌ´Ù.

- Å×ÀÌºí¿¡¼­ ¼øÂ÷ÀûÀÎ °Ë»öÀ» ÇÏ´Â °¢ ¿äûÀº read ¹öÆÛ¿¡ ÇÒ´çÀÌ µÈ´Ù. (º¯¼ö record_buff
er)

- ¸ðµç Á¶ÀÎÀº Çѹø¿¡ ¼öÇàÀÌ µÇ¸ç ´ëºÎºÐÀÇ Á¶ÀÎÀº Àӽà Å×À̺íÀ» »ý¼ºÇÏÁö ¾Ê°í ¼öÇàÀÌ
µÈ´Ù. ´ëºÎºÐÀÇ Å×À̺íÀº ¸Þ¸ð¸® ±â¹Ý(HEAP) Å×À̺íÀÌ´Ù. °Å´ë ±æÀÌÀÇ ·¹Äڵ带 °¡Á³°Å³ª
BLOB Ä÷³À» Æ÷ÇÔÇÑ Àӽà Å×À̺íÀº µð½ºÅ©¿¡ ÀúÀåÀÌ µÈ´Ù. ÇöÀçÀÇ ¹®Á¦´Â ¸Þ¸ð¸® ±â¹Ý Å×
À̺íÀÌ tmp_table_size¸¦ ÃÊ°úÇßÀ»¶§ "The table tbl_name is full"À̶ó´Â ¿¡·¯°¡ »ý±â´Â °Í
ÀÌ´Ù. °¡±î¿î ½ÃÀϾȿ¡ ÇÊ¿äÇÒ¶§ ÀÚµ¿ÀûÀ¸·Î ¸Þ¸ð¸® ±â¹Ý(HEAP) Å×À̺íÀ» µð½ºÅ© ±â¹Ý(NI
SAM) Å×À̺í·Î ¹Ù²Ùµµ·Ï °íÄ¥ °ÍÀÌ´Ù.
ÀÌ ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ­ mysqldÀÇ tmp_table_size ¿É¼ÇÀ» ¼³Á¤ÇÏ¿© Àӽà Å×À̺í Å©±â¸¦
´ÃÀ̰ųª Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥¿¡¼­ SQL_BIG_TABLES¶ó´Â sql ¿É¼ÇÀ» ¼³Á¤ÇÏ¿©¾ß ÇÑ´Ù. 7.
24 SET OPTION À» Âü°íÇÏÀÚ.
mysql 3.20¿¡¼­ Àӽà Å×À̺íÀÇ ÃÖ´ë Å©±â´Â record_buffer*16ÀÌ´Ù. 3.20 ¹öÀüÀ» »ç¿ëÇÏ°í ÀÖ
´Ù¸é record_bufferÀÇ °ªÀ» Áõ°¡½ÃÄÑ¾ß ÇÑ´Ù. ¶ÇÇÑ mysqld¸¦ ½ÃÀÛÇÒ ¶§ --big-tables ¿É¼ÇÀ»
»ç¿ëÇÏ¿© Ç×»ó Àӽà Å×À̺íÀ» µð½ºÅ©¿¡ ÀúÀåÇÒ ¼ö ÀÖÁö¸¸ ÁúÀÇ ¼Óµµ¿¡ ¿µÇâÀ» ¹ÌÄ£´Ù.

- Á¤¿­À» ÇÏ´Â ´ëºÎºÐÀÇ ¿äûÀº Á¤·Ä ¹öÆÛ¿Í Çϳª³ª µÎ°³ÀÇ Àӽà ÆÄÀÏÀ» ÇÒ´çÇÑ´Ù. 16.4ÀÇ
[Àӽà ÆÄÀÏ]À» Âü°íÇÑ´Ù.

- ´ëºÎºÐÀÇ ÆÄ¡(parsing)°ú °è»êÀº Áö¿ª ¸Þ¸ð¸®¿¡¼­ ÀÌ·ç¾îÁø´Ù. ÀÛÀº ¾ÆÀÌÅÛ¿¡´Â ¸Þ¸ð¸® o
verhead°¡ ÇÊ¿ä¾ø°í ÀϹÝÀûÀÎ ´À¸° ¸Þ¸ð¸® ÇÒ´ç(slow memory allocation)°ú freeing(¸Þ¸ð¸®
ÇØÁ¦)´Â ¹«½ÃµÈ´Ù. ¸Þ¸ð¸®´Â ¿ÀÁ÷ ¿¹»óÁö ¸øÇÑ °Å´ë ¹®ÀÚ¿­¿¡¼­ ÇÒ´çÀÌ µÈ´Ù.( mallloc() °ú
free() »ç¿ë)

- °¢ À妽º ÆÄÀÏÀº Çѹø¿¡ ¿­¸®¸ç °¢ º´Çà¼öÇàµÇ´Â ½º·¹µå¿¡¼­ µ¥ÀÌÅÍ ÆÄÀÏÀº Çѹø¿¡ ¿­
¸°´Ù. °¢ º´Çà¼öÇà ½º·¹µå¸¶´Ù Å×ÀÌºí ±¸Á¶, °¢ Ä÷³ÀÇ Ä÷³ ±¸Á¶, 3 * n ÀÇ ¹öÆÛ Å©±â°¡ ÇÒ
´çµÈ´Ù. ( nÀº ÃÖ´ë ·¹ÄÚµå ±æÀÌÀ̸ç BLOB Ä÷³Àº ÇØ´çÇÏÁö ¾Ê´Â´Ù) BLOB´Â BLOB µ¥ÀÌ
ÅÍÀÇ ±æÀÌ¿¡ 5¿¡¼­ 8 ¹ÙÀÌÆ®¸¦ ´õÇÑ °ªÀ» »ç¿ëÇÑ´Ù.

- BLOB Ä÷³À» °¡Áø °¢ Å×ÀÌºí¿¡¼­ ¹öÆÛ´Â °Å´ë BLOB °ªÀ» ÀÐÀ» ¼ö ÀÖµµ·Ï µ¿ÀûÀ¸·Î Ä¿
Áø´Ù. Å×À̺íÀ» °Ë»öÇÏ¸é ¹öÆÛ´Â ÃÖ´ë BLOBÀÇ °ª¸¸Å­ ¹öÆÛ°¡ ÇÒ´çÀÌ µÈ´Ù.

- ¸ðµç »ç¿ëÁßÀÎ Å×À̺íÀÇ Å×À̺í Çڵ鷯´Â ij½¬¿¡ ÀúÀåµÇ¸ç FIFO·Î °ü¸®°¡ µÈ´Ù. ÀϹÝÀû
À¸·Î ij½¬´Â 64 ¿£Æ®¸®¸¦ °®´Â´Ù. µ¿½Ã¿¡ µÎ°³ÀÇ ½ÇÇà ½º·¹µå¿¡¼­ Å×À̺íÀ» »ç¿ëÇϸé ij½¬
´Â Å×À̺íÀÇ µÎ ¿£Æ®¸®¸¦ Æ÷ÇÔÇÑ´Ù. 10.6 [Å×À̺í ij½¬]¸¦ Âü°íÇÑ´Ù.

- mysqladmin flush-tables ¸í·ÉÀº »ç¿ëÇÏÁö ¾Ê´Â ¸ðµç Å×À̺íÀ» ´Ý°í ÇöÀç ½ÇÇàµÇ´Â ½º·¹
µå°¡ ³¡³¯ ¶§ ¸ðµç »ç¿ëÁßÀÎ Å×À̺íÀ» ´Ý´Â´Ù°í Ç¥½ÃÇÑ´Ù. ÀÌ°ÍÀº È¿°úÀûÀ¸·Î »ç¿ëÁßÀÎ ¸Þ
¸ð¸®¸¦ ÇØÁ¦ÇÑ´Ù.


ps ¿Í ´Ù¸¥ ½Ã½ºÅÛ »óȲ ÇÁ·Î±×·¥Àº mysqld°¡ ¸¹Àº ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ°í ÀÖ´Ù°í º¸°íÇÒ °ÍÀÌ
´Ù. ÀÌ°ÍÀº ´Ù¸¥ ¸Þ¸ð¸® ÁÖ¼ÒÀÇ ½º·¹µå-½ºÅö§¹®¿¡ »ý±ä´Ù. ¿¹¸¦ µé¸é ¼Ö¶ó¸®½ºÀÇ ps ´Â ½º
ÅûçÀÌÀÇ »ç¿ëÇÏÁö ¾Ê´Â ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ´Â ¸Þ¸ð¸®·Î °£ÁÖÇÑ´Ù. ÀÌ°ÍÀº swap -s¸¦ ÀÌ¿ë »ç
¿ë°¡´ÉÇÑ ½º¿ÒÀ» üũÇÏ¿© È®ÀÎÇÒ¼ö ÀÖ´Ù. ¿ì¸®´Â mysqld¸¦ »ó¿ë ¸Þ¸ð¸® À¯Ãâ ÃøÁ¤ ÇÁ·Î±×
·¥À¸·Î Å×½ºÆÃÇؼ­ mysqld¿¡´Â ¸Þ¸ð¸® À¯ÃâÀÌ ¾ø´Ù.


10.3 ¼Óµµ Çâ»ó¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â ÄÄÆÄÀÏ/¸µÅ© ¹æ¹ý <ÄÄÆÄÀϽà ÃÖÀûÈ­Çϱâ>

´ÙÀ½ Å×½ºÆ®ÀÇ ´ëºÎºÐÀº ¸®´ª½º¿Í mysql º¥Ä¡¸¶Å©¸¦ °¡Áö°í ¼öÇàµÇ¾úÁö¸¸ ´Ù¸¥ ¿î¿µ ½Ã½º
ÅÛ¿¡µµ ¾Ï½ÃÇØÁÖ´Â °ÍÀÌ ÀÖ´Ù.

staticÀ¸·Î ¸µÅ©¸¦ ÇÒ¶§ °¡Àå ºü¸¥ ½ÇÇà ¼Óµµ¸¦ ¾òÀ» ¼ö ÀÖ´Ù. µ¥ÀÌÅͺ£À̽º¿¡ ¿¬°áÇϱâ À§
ÇØ TCP/IPº¸´Ù´Â À¯´Ð½º ¼ÒÄÏÀ» »ç¿ëÇÏ¸é ´õ ÁÁÀº ¼º´ÉÀ» ³¾ ¼ö ÀÖ´Ù.

¸®´ª½º¿¡¼­ pgcc¿Í -O6À» »ç¿ëÇÏ¸é °¡Àå ºü¸£´Ù. 'sql_yacc.cc'¸¦ ÀÌ ¿É¼ÇÀ¸·Î ÄÄÆÄÀÏÇÏ·Á¸é
gcc/pgcc´Â ¸ðµç ¼º´ÉÀ» ³»±â À§ÇØ ¸¹Àº ¸Þ¸ð¸®°¡ ÇÊ¿äÇϱ⠶§¹®¿¡ 180MÀÇ ¸Þ¸ð¸®°¡ ÇÊ¿ä
ÇÏ´Ù. ¶ÇÇÑ mysqlÀ» ¼³Á¤ÇÒ¶§ libstdc++ ¶óÀ̺귯¸®¸¦ Æ÷ÇÔÇÏÁö ¾Ê±â À§ÇØ CXX=gcc¶ó°í ¼³
Á¤ÇØ¾ß ÇÑ´Ù.

- pgcc¸¦ »ç¿ëÇÏ°í ¸ðµÎ´Ù -O6 ¿É¼ÇÀ¸·Î ÄÄÆÄÀÏÇϸé mysqld ¼­¹ö´Â gcc·Î ÄÄÆÄÀÏÇÑ °Íº¸
´Ù 11% »¡¶óÁø´Ù.

- µ¿ÀûÀ¸·Î ¸µÅ©Çϸé (-staticÀ» »ç¿ëÇÏÁö ¾Ê°í) 13% ´À·ÁÁø´Ù.
    If you connect using TCP/IP rather than Unix sockets, the result is 7.5% slower.
- À¯´Ð½º ¼ÒÄÏÀ» »ç¿ëÇÏ´Â °Íº¸´Ù tcp/ip·Î ¿¬°áÇÏ´Â °ÍÀÌ 7.5% ´À·ÁÁø´Ù.

- On a Sun sparcstation 10, gcc 2.7.3 is 13% faster than Sun Pro C++ 4.2.
- On Solaris 2.5.1, MIT-pthreads is 8-12% slower than Solaris native threads.
(** ¹ø¿ªÀ» ¾ÈÇÑ ÀÌÈÄ. ¸®´ª½º¶û »ó°ü¾øÀ¸´Ï±ñ... **)

TcX¿¡¼­ Á¦°øÇÑ mysql ¸®´ª½º ¹èÆ÷ÆÇÀº pgcc·Î ÄÄÆÄÀϵǾú°í Á¤ÀûÀ¸·Î ¸µÅ©µÇ¾ú´Ù.


10.4 How MySQL uses indexes

prefix- and end-space compressed. See section 7.26 CREATE INDEX syntax (Compatibil
ity function).

¸ðµç À妽º(PRIMARY, UNIQUE and INDEX()) ´Â B-trees ¿¡ ÀúÀåµÈ´Ù. ¹®ÀÚ¿­Àº ÀÚµ¿Àû
À¸·Î ¾Õ µÚÀÇ °ø°£(?)ÀÌ ¾ÐÃàµÈ´Ù. 7.26 [À妽º »ý¼º] Âü°í.

À妽ºÀÇ »ç¿ë :
- WHERE ¹®¿¡¼­ ÇØ´çÇÏ´Â ·¹ÄÚµå »¡¸®  ã±â
- Á¶ÀÎÀ» ¼öÇàÇÒ¶§ ´Ù¸¥ Å×ÀÌºí¿¡¼­ ·¹ÄÚµå °¡Á®¿À±â
- ƯÁ¤ Å°¿¡¼­ MAX() ³ª MIN() °ª ã±â
- ¼ÒÆÃÀ̳ª ±×·ìÈ­ÇÒ¶§ À妽º Å°¸¦ »ç¿ëÇϸé Å×À̺íÀ» Á¤¿­Çϰųª ±×·ìÈ­ÇÑ´Ù. Å°¿¡  DES
C°¡ ºÙÀ¸¸é ¿ª¼øÀ¸·Î À妽º¸¦ Àд´Ù.
- ¾î¶² °æ¿ì¿¡´Â µ¥ÀÌÅÍ ÆÄÀÏ¿¡ ¹¯Áö ¾Ê°í °ªÀ» °¡Á®¿Â´Ù. ¾î¶² Å×ÀÌºí¿¡¼­ »ç¿ëÇÏ´Â ¸ðµç
Ä÷³ÀÌ ¼ýÀÚÀÌ°í ƯÁ¤ Å°·Î Çü¼ºµÇ¾îÀÖÀ¸¸é ºü¸¥ ¼Óµµ·Î À妽º Æ®¸®¿¡¼­ °ªÀ» °¡Á®¿Ã ¼ö
ÀÖ´Ù.

´ÙÀ½ ¿¹Á¦¸¦ º¸ÀÚ.

mysql> SELECT * FROM tbl_name WHERE col1=val1 AND col2=val2;


´ÙÁß Ä÷³ À妽º°¡ col1 °ú col2¿¡ ÀÖÀ¸¸é ÇØ´çÇÏ´Â ·¹Äڵ带 Á÷Á¢ °¡Á®¿Ã ¼ö ÀÖ´Ù.  ºÐ¸®
µÈ ´ÜÀÏ Ä÷³ À妽º°¡ col1 °ú col2 ¿¡ ÀÖÀ¸¸é ÃÖÀûÈ­±â´Â ¾î¶² À妽º°¡ ´õ ÀûÀº ·¹ÄÚµå
¸¦ °¡Á³´ÂÁö È®ÀÎÇÏ°í ·¹Äڵ带 °¡Á®¿À±â À§ÇØ ±× À妽º¸¦ »ç¿ëÇϵµ·Ï °áÁ¤ÇÑ´Ù.

Å×À̺íÀÌ ´ÙÁß Ä÷³ À妽º¸¦ °¡Á³´Ù¸é ÃÖÀûÈ­±â°¡ ·¹Äڵ带 ã´Âµ¥ ¾î¶² À妽ºÅ°¸¦ »ç¿ë
ÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¸é ¼¼°¡Áö Ä÷³ À妽º(col1, col2, col3)¸¦ °¡Á³´Ù¸é (col1), (col1,col2)
(col1,col2,col3) À妽º¸¦ »ç¿ëÇÏ¿© °Ë»öÀ» ÇÒ ¼ö ÀÖ´Ù. 

MySQL can't use a partial index if the columns don't form a leftmost prefix of the inde
x.
Suppose you have the SELECT statements shown below:
(** Çؼ®ÀÌ Àß ¾ÈµÇ´Âµ¥ ¿¹Á¦¸¦ º¸½Ã¸é ¹«½¼ ¸»ÀÎÁö ¾Ë ¼ö ÀÖÀ» °ÍÀÓ**)

mysql> SELECT * FROM tbl_name WHERE col1=val1;
mysql> SELECT * FROM tbl_name WHERE col2=val2;
mysql> SELECT * FROM tbl_name WHERE col2=val2 AND col3=val3;

If an index exists on (col1,col2,col3), only the first query shown above uses the index.
The second and third queries do involve indexed columns, but (col2) and (col2,col3) are
not leftmost prefixes of (col1,col2,col3).

À妽º°¡ (col1,col2,col3)·Î ÀÖ´Ù¸é À§ÀÇ ÁúÀÇÁß ¿ÀÁ÷ ù¹ø° ÁúÀǸ¸ À妽º¸¦ »ç¿ëÇÑ´Ù. µÎ
¹ø° ¹× ¼¼¹ø° ÁúÀÇÀº À妽ºµÈ Ä÷³ÀÌ Æ÷ÇԵǾî ÀÖÁö¸¸ (col2) ¿Í (col2,col3)´Â (col1,col2,c
ol3) À妽º¿¡ ÇØ´çÇÏÁö ¾Ê´Â´Ù.

MySQL also uses indexes for LIKE comparisons if the argument to LIKE is a constant
string that doesn't start with a wildcard character. For example, the following SELECT
stat ements use indexes:

mysqlÀº ¶ÇÇÑ LIKEÀÇ Àμö°¡ ¿ÍÀϵåÄ«µå ¹®ÀÚ·Î ½ÃÀÛÇÏÁö ¾Ê´Â »ó¼ö ¹®ÀÚ¿­ÀÏÀ̶ó¸é LIK
E ºñ±³¹®¿¡¼­ À妽º¸¦ »ç¿ëÇÑ´Ù. ¿¹¸¦ µé¾î ´ÙÀ½ÀÇ SELECT ¹®Àº À妽º¸¦ »ç¿ëÇÑ´Ù.

mysql> select * from tbl_name where key_col LIKE "Patrick%";
mysql> select * from tbl_name where key_col LIKE "Pat%_ck%";

ù¹ø° ¹®Àå¿¡¼­´Â "Patrick" <= key_col < "Patricl" À» °¡Áø ·¹Äڵ常 °í·ÁµÈ´Ù. µÎ¹ø° ¹®
Àå¿¡¼­´Â "Pat" <= key_col < "Pau" À» °¡Áø ·¹Äڵ常 °í·ÁµÈ´Ù.


´ÙÀ½ÀÇ SELECT ¹®Àº À妽º¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù:

mysql> select * from tbl_name where key_col LIKE "%Patrick%";
mysql> select * from tbl_name where key_col LIKE other_col;

ù¹ø° ¹®Àå¿¡¼­ LIKE °ªÀº ¿ÍÀϵåÄ«µå ¹®ÀÚ·Î ½ÃÀÛÇÏ°í ÀÖ´Ù. µÎ¹ø° ¹®Àå¿¡¼­´Â LIKE
°ªÀÌ »ó¼ö°¡ ¾Æ´Ï´Ù.



10.5 WHERE ¹®¿¡¼­ ÃÖÀûÈ­Çϱâ
(À̹ø ÀýÀº ¿ÏÀüÇÑ ³»¿ëÀ» Æ÷ÇÔÇÏ°í ÀÖÁö´Â ¾Ê´Ù. mysqlÀº ¸¹Àº ÃÖÀûÈ­¹æ¹ýÀÌ ÀÖ´Ù.)

In general, when you want to make a slow SELECT ... WHERE faster, the first thing t
o check is whether or not you can add an index. All references between different tables
should usually be done with indexes. You can use the EXPLAIN command to determine
which indexes are used for a SELECT. See section 7.21 EXPLAIN syntax (Get informat
ion about a SELECT).
ÀϹÝÀûÀ¸·Î ´À¸° SELECT ... WHERE ¹®À» ºü¸£°Ô ÇÏ·Á¸é °¡Àå ¸ÕÀú È®ÀÎÇØ¾ß ÇÒ °ÍÀÌ ÀÎ
µ¦½º Ãß°¡ ¹®Á¦ÀÌ´Ù. ´Ù¸¥ Å×À̺í»çÀÌ¿¡¼­ ¸ðµç ·¹ÆÛ·±½º(references ÂüÁ¶)´Â ÀϹÝÀûÀ¸·Î ÀÎ
µ¦½º¿¡ ÀÇÇØ ¼öÇàµÈ´Ù. SELECT ¹®¿¡¼­ ¾î¶² À妽º¸¦ »ç¿ëÇÏ´ÂÁö °áÁ¤Çϱâ À§ÇØ EXPLAI
N ¸í·ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. 7.21 [Explain]À» Âü°í.

mysql¿¡¼­ ¼öÇàÇÏ´Â ÃÖÀûÈ­´Â ´ÙÀ½°ú °°´Ù.


- ºÒÇÊ¿äÇÑ »ðÀÔ¾î Á¦°Å

       ((a AND b) AND c OR (((a AND b) AND (c AND d))))
    -> (a AND b ANDc) OR (a AND b AND c AND d)

-»ó¼ö Æúµù(folding)

       (a    -> b>5 AND b=c AND a=5

- »ó¼ö Á¶°Ç Á¦°Å(»ó¼ö Æúµù¶§¹®¿¡  ÇÊ¿ä)

       (B>=5 AND B=5) OR (B=6 AND 5=5) OR (B=7 AND 5=6)
    -> B=5 OR B=6

- À妽º¿¡¼­ »ç¿ëµÇ´Â »ó¼ö Ç¥ÇöÀº Çѹø¿¡ °è»êµÈ´Ù.
(Constant expressions used by indexes are evaluated only once.)

- WHERE ÀýÀÌ ¾ø´Â ´ÜÀÏ Å×À̺íÀÇ COUNT(*)´Â Å×À̺í Á¤º¸¿¡¼­ Á÷Á¢ °ªÀ» °¡Á®¿Â´Ù.
´ÜÀÏ Å×ÀÌºí¿¡¼­ »ç¿ëµÈ NOT NULL Ç¥Çöµµ ÀÌ¿Í °°ÀÌ ¼öÇàµÈ´Ù. 

- À¯È¿ÇÏÁö ¾ÊÀº »ó¼ö Ç¥ÇöÀº ¹Ì¸® Á¦°ÅµÈ´Ù. mysqlÀº ºÒ°¡´ÉÇÏ°í ÇØ´çÇÏ´Â ·¹Äڵ尡 ¾ø´Â
SELECT ¹®À» ºü¸£°Ô °¨ÁöÇÑ´Ù.

- GROUP BY ³ª ±×·ì Æã¼Ç(COUNT(), MIN() ...)À» »ç¿ëÇÏÁö ¾ÊÀ¸¸é HAVINGÀº WHERE
¿¡ ÇÕÃÄÁø´Ù.
(** HAVING Àý¿¡¼­´Â À妽º¸¦ »ç¿ëÇÏÁö ¸øÇÔ. ±×·¯¹Ç·Î °¡´ÉÇÑ HAVINGÀýÀ» »ç¿ëÇÏÁö
¾Ê´Â°Ô ¼Óµµ¸é¿¡¼­ ÁÁ´Ù **)

- °¢ ¼­ºê Á¶Àο¡¼­ ºü¸£°Ô WHERE ¹®À» °è»êÇÏ°í °¡´ÉÇÑÇÑ ·¹Äڵ带 Á¦¿ÜÇϵµ·Ï °£¼ÒÇÏ
°Ô WHERE ¹®ÀÌ ¸¸µé¾îÁø´Ù.

- mysqlÀº ÀϹÝÀûÀ¸·Î ÃÖ¼ÒÇÑÀÇ ·¹Äڵ带 ã±â À§ÇØ À妽º¸¦ »ç¿ëÇÑ´Ù. =, >, >=, <, <=,
BETWEEN ±×¸®°í  'something%' ó·³ ¾ÕÀÌ ¿ÍÀϵåÄ«µå·Î ½ÃÀÛÇÏÁö ¾Ê´Â LIKE ¹®µîÀ»
»ç¿ëÇÏ¿© ºñ±³¸¦ ÇÒ ¶§ À妽º¸¦ »ç¿ëÇÑ´Ù. (** 10.4 Àý¿¡¼­ ¼³¸íÇÏ¿´µíÀÌ like ¸¦ »ç¿ëÇÒ¶§
¿ÍÀϵåÄ«µå·Î ½ÃÀÛÇÏ´Â like ¹®À» »ç¿ëÇϸé À妽º¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù. ÀÏÁ¤ÇÑ ´Ü¾î·Î¸¸ ½Ã
ÀÛÇÏ´Â Ä÷³¿¡¼­ ÀڷḦ ãÀ» ¶§ À¯¿ëÇÒ °ÍÀÌ´Ù. **)

- Any index that doesn't span all AND levels in the WHERE clause is not used to opti
mize the query.

´ÙÀ½ÀÇ WHERE ¹®Àº À妽º¸¦ »ç¿ëÇÑ´Ù.:

... WHERE index_part1=1 AND index_part2=2
... WHERE index=1 OR A=10 AND index=2      /* index = 1 OR index = 2 */
... WHERE index_part1='hello' AND index_part_3=5
          /* optimized like "index_part1='hello'" */

´ÙÀ½ÀÇ WHERE ¹®Àº À妽º¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù.:

... WHERE index_part2=1 AND index_part3=2  /* index_part_1 is not used */
... WHERE index=1 OR A=10                  /* No index */
... WHERE index_part1=1 OR index_part2=10  /* No index spans all rows */

- ÁúÀÇ¿¡¼­ ´Ù¸¥ Å×ÀÌºíº¸´Ù ¸ðµç »ó¼ö Å×À̺íÀ» ¸ÕÀú Àд´Ù. »ó¼ö Å×À̺íÀº ´ÙÀ½°ú °°´Ù.
        ¤·ºó Å×À̺íÀ̳ª 1°³ÀÇ ·¹Äڵ常 ÀÖ´Â Å×À̺í
        ¤·WHERE ¹®¿¡¼­ UNIQUE À妽º³ª PRIMARY KEY ¸¦ »ç¿ëÇÏ°í ¸ðµç À妽º
´Â »ó¼ö Ç¥ÇöÀ¸·ÎµÈ Å×À̺í

        ´ÙÀ½ÀÇ Å×À̺íÀº »ó¼ö Å×À̺í·Î »ç¿ëµÈ´Ù.

    mysql> SELECT * FROM t WHERE primary_key=1;
    mysql> SELECT * FROM t1,t2
               WHERE t1.primary_key=1 AND t2.primary_key=t1.id;

- ¸ðµç °¡´É¼ºÀ» ½ÃµµÇÏ¿© Å×À̺íÀ» Á¶ÀÎÇϴµ¥ °¡Àå ÁÁÀº Á¶ÀÎ Á¶ÇÕÀ» ã´Â´Ù. (ORDER B
Y³ª GROUP BYÀÇ ¸ðµç Ä÷³ÀÌ µ¿ÀÏÇÑ Å×ÀÌºí¿¡¼­ ³ª¿À¸é Á¶ÀÎÀ» ÇÒ¶§ ÀÌ Å×À̺íÀÌ ¸ÕÀú
¼±ÅõȴÙ)

- ORDER BY ¹®°ú ´Ù¸¥ GROUP BY ¹®ÀÌ ÀÖÀ» ¶§, ¶Ç´Â ORDER BY ³ª GROUP BY°¡
Á¶ÀΠťÀÇ Ã¹¹ø° Å×À̺íÀÌ ¾Æ´Ñ ´Ù¸¥ Å×À̺íÀÇ Ä÷³À» Æ÷ÇÔÇÏ°í ÀÖÀ¸¸é ÀÓ»ç Å×À̺íÀ» ¸¸
µç´Ù.

- °¢ Å×À̺í À妽º¸¦ ã°í ·¹ÄÚµåÀÇ 30%¹Ì¸¸À» »ç¿ëÇÏ´Â (best) À妽º°¡ »ç¿ëµÈ´Ù. ±×·±
À妽º°¡ ¾øÀ¸¸é ºü¸¥ Å×ÀÌºí °Ë»öÀÌ »ç¿ëµÈ´Ù.

- ¾î¶² °æ¿ì¿¡´Â mysqlÀº µ¥ÀÌÅÍ ÆÄÀÏÀ» Á¶È¸ÇÏÁö ¾Ê°í À妽º¿¡¼­ ·¹Äڵ带 ÀÐÀ» ¼ö ÀÖ
´Ù. À妽º¿¡¼­ »ç¿ëÇÑ ¸ðµç Ä÷³ÀÌ ¼ýÀÚ¶ó¸é ÁúÀǸ¦ ó¸®Çϴµ¥ ´ÜÁö À妽º Æ®¸®¸¸À» »ç
¿ëÇÑ´Ù.

- °¢ ·¹Äڵ尡 Ãâ·ÂµÇ±â Àü¿¡ HAVING Àý¿¡ ¸ÂÁö ¾Ê´Â ·¹ÄÚµå´Â °Ç³Ê¶Ú´Ù.

´ÙÀ½Àº ¸Å¿ì ºü¸¥ ÁúÀÇÀÇ ¿¹ÀÌ´Ù:

mysql> SELECT COUNT(*) FROM tbl_name;
mysql> SELECT MIN(key_part1),MAX(key_part1) FROM tbl_name;
mysql> SELECT MAX(key_part2) FROM tbl_name
           WHERE key_part_1=constant;
mysql> SELECT ... FROM tbl_name
           ORDER BY key_part1,key_part2,... LIMIT 10;
mysql> SELECT ... FROM tbl_name
           ORDER BY key_part1 DESC,key_part2 DESC,... LIMIT 10;

´ÙÀ½ÀÇ Ä¿¸®´Â À妽º Æ®¸®¸¸À» »ç¿ëÇÏ¿© °ªÀ» ±¸ÇÑ´Ù.(À妽º Ä÷³Àº ¼ýÀÚ¶ó°í °¡Á¤):

mysql> SELECT key_part1,key_part2 FROM tbl_name WHERE key_part1=val;
mysql> SELECT COUNT(*) FROM tbl_name
           WHERE key_part1=val1 and key_part2=val2;
mysql> SELECT key_part2 FROM tbl_name GROUP BY key_part1;

´ÙÀ½ÀÇ ÁúÀÇ´Â °³º°ÀûÀÎ Á¤¿­À» ÇÏÁö ¾Ê°í Á¤¿­µÈ ¼ø¼­´ë·Î ¿­À» °¡Á®¿À´Â µ¥ À妽º¸¦ »ç
¿ëÇÑ´Ù:

mysql> SELECT ... FROM tbl_name ORDER BY key_part1,key_part2,...
mysql> SELECT ... FROM tbl_name ORDER BY key_part1 DESC,key_part2 DESC,...


10.6 Å×ÀÌºí ¿­°í ´Ý´Â ¹æ¹ý

open Å×À̺íÀÇ Ä³½¬´Â table_cacheÀÇ ÃÖ´ë°ª±îÁö Ä¿Áú ¼ö ÀÖ´Ù. (±âº»°ª 64 ; ÀÌ °ªÀº mysql
d¿¡¼­ -0 table_cache=# À¸·Î ¹Ù²Ü ¼ö ÀÖ´Ù) ij½¬°¡ ²Ë áÀ»¶§, ±×¸®°í ´Ù¸¥ ½º·¹µå°¡ Å×ÀÌ
ºíÀ» ¿­·Á°í ÇÒ ¶§, ¶Ç´Â mysqladmin refresh ³ª mysqladmin flush-tables¸¦ »ç¿ëÇÒ¶§¸¦ Á¦
¿ÜÇÏ°í´Â Å×À̺íÀº °áÄÚ ´ÝÈ÷Áö ¾Ê´Â´Ù.

Å×À̺í ij½¬°¡ ²Ë Â÷¸é ¼­¹ö´Â ij½¬ ¿£Æ®¸®¸¦ »ç¿ëÇϵµ·Ï Á¶ÀýÇϱâ À§ÇØ ´ÙÀ½ÀÇ ÀýÂ÷¸¦ »ç
¿ëÇÑ´Ù.

- °¡Àå ¸ÕÀú »ç¿ëÇß´ø ¼ø¼­´ë·Î ÇöÀç »ç¿ëÇÏÁö ¾Ê´Â Å×À̺íÀ» ´Ý´Â´Ù.
- ij½¬°¡ ²Ë á°í ¾î¶² Å×ÀÌºíµµ ´ÝÈ÷Áö ¾ÊÁö¸¸ »õ·Î¿î Å×À̺íÀ» ¿­¾î¾ß ÇÑ´Ù¸é ij½¬°¡ ÇÊ
¿äÇÑ ¸¸Å­ ÀÓ½ÃÀûÀ¸·Î È®ÀåµÈ´Ù.
- ij½¬°¡ ÀÓ½ÃÀûÀ¸·Î È®ÀåµÈ »óÅÂÀÌ°í Å×À̺íÀ» »ç¿ëÇÒ ¼ö ¾ø´Â »óȲÀ¸·Î °¡¸é Å×À̺íÀ»
´Ý°í ij½¬¸¦ ÇØÁ¦ÇÑ´Ù.

Å×À̺íÀº °¢ µ¿½Ãº´ÇàÀûÀÎ Á¢±Ù¶§¸¶´Ù ¿­¸°´Ù. µ¿ÀÏÇÑ Å×ÀÌºí¿¡ Á¢±ÙÇÏ´Â µÎ°³ÀÇ ½º·¹µå°¡
Àְųª °°Àº ÁúÀÇ¿¡¼­ Å×ÀÌºí¿¡ µÎ¹ø Á¢±ÙÇϸé(with AS) Å×À̺íÀ» µÎ¹ø ¿­¿©¾ß ÇÑ´Ù´Â ÀÇ
¹ÌÀÌ´Ù. Å×À̺íÀÇ Ã¹¹ø° °³¹æÀº µÎ°³ÀÇ ÆÄÀÏ µð½ºÅ©¸³Å͸¦ °¡Áø´Ù. ; Ãß°¡ÀûÀÎ Å×À̺íÀÇ °³
¹æÀº ÇϳªÀÇ ÆÄÀÏ µð½ºÅ©¸³Å͸¦ °¡Áú »ÓÀÌ´Ù. óÀ½¿¡ °³¹æ¿¡ »ç¿ëÇÏ´Â Ãß°¡ÀûÀº ÆÄÀÏ µð½º
Å©¸³ÅÍ´Â À妽º ÆÄÀÏ¿¡ »ç¿ëµÈ´Ù. ; ÀÌ µð½ºÅ©¸³ÅÍ´Â ¸ðµç ½º·¹µå¿¡¼­ °øÀ¯µÈ´Ù.


10.6.1 µ¥ÀÌÅͺ£À̽º¿¡¼­ ¸¹Àº ¼öÀÇ Å×À̺íÀ» ¸¸µé¶§ÀÇ ´ÜÁ¡

µð·ºÅ丮¿¡ ¸¹Àº ÆÄÀÏÀÌ ÀÖ´Ù¸é open, close ±×¸®°í create ¿ÀÆÛ·¹À̼ÇÀº ´À·ÁÁú °ÍÀÌ´Ù. ¼­
·Î ´Ù¸¥ ¸¹Àº Å×ÀÌºí¿¡¼­ SELECT ¹®À» ¼öÇàÇϸé Å×À̺í ij½¬°¡ ²Ë Âû ¶§ ¾à°£ÀÇ overhea
d°¡ ÀÖÀ» °ÍÀÌ´Ù. ¿Ö³Ä¸é °³¹æµÈ Å×À̺íÀÌ ÀÖ´Ù¸é ´Ù¸¥ Å×À̺íÀº ´ÝÇô¾ß Çϱ⠶§¹®ÀÌ´Ù. Å×
À̺í ij½¬¸¦ Å©°Ô Çؼ­ ÀÌ·¯ÇÑ ¿À¿ì¹öÇìµå¸¦ ÁÙÀÏ ¼ö ÀÖ´Ù.


10.7 ¸¹Àº Å×À̺íÀ» ¿©´Â ÀÌÀ¯

mysqladmin status ¸¦ ½ÇÇàÇÒ ¶§ ´ÙÀ½°ú °°ÀÌ ³ª¿Ã °ÍÀÌ´Ù:

Uptime: 426 Running threads: 1 Questions: 11082 Reloads: 1 Open tables: 12

´ÜÁö 6Å×À̺íÀ» »ç¿ëÇߴµ¥ ÀÌ·¯ÇÑ °á°ú´Â ´çȲ½º·¯¿ï °ÍÀÌ´Ù.

mysqlÀº ¸ÖƼ½º·¹µå¸¦ »ç¿ëÇÑ´Ù. ±×·¡¼­ µ¿½Ã¿¡ °°Àº Å×ÀÌºí¿¡¼­ ¸¹Àº ÁúÀǸ¦ ÇÒ ¼ö ÀÖ´Ù.
°°Àº ÆÄÀÏ¿¡ ´ëÇÏ¿© ´Ù¸¥ »óȲÀ» °¡Áö´Â µÎ°³ÀÇ ½º·¹µå¿¡ ´ëÇÑ ¹®Á¦¸¦ ÁÙÀ̱â À§ÇØ Å×À̺í
Àº °¢ µ¿½Ãº´ÇàÀûÀÎ ½º·¹µå¸¶´Ù µ¶¸³ÀûÀ¸·Î °³¹æµÈ´Ù. ÀÌ°ÍÀº Å×ÀÌŸ ÆÄÀÏ¿¡¼­ ¾à°£ÀÇ ¸Þ¸ð
¸®¿Í ÇϳªÀÇ Ãß°¡ÀûÀÎ ÆÄÀÏ µð½ºÅ©¸³Å͸¦ »ç¿ëÇÑ´Ù. ¸ðµç ½º·¹µå¿¡¼­ À妽º ÆÄÀÏÀº °øÀ¯µÈ
´Ù.


10.8 µ¥ÀÌÅͺ£À̽º¿Í Å×ÀÌºí¿¡¼­ ½Éº¼¸¯ ¸µÅ© »ç¿ë

µ¥ÀÌÅͺ£À̽º µð·ºÅ丮¿¡¼­ Å×À̺í°ú µ¥ÀÌÅͺ£À̽º¸¦ ´Ù¸¥ À§Ä¡·Î ¿Å±â°í »õ·Î¿î À§Ä¡·Î ½É
º¼¸¯ ¸µÅ©¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ·¸°Ô ÇÏ´Â °ÍÀ» ¿øÇÒ °æ¿ì°¡ ÀÖ´Ù. ¿¹¸¦ µé¸é µ¥ÀÌÅͺ£À̽º
¸¦ ´õ ¿©À¯°ø°£ÀÌ ¸¹Àº ÆÄÀϽýºÅÛÀ¸·Î ¿Å±â´Â °æ¿ì µî.

mysql¿¡¼­ Å×À̺íÀÌ ½Éº¼¸µ ¸µÅ©µÇ¾ú´Ù´Â °ÍÀ» °¨ÁöÇÏ¸é ½Éº¼¸µ ¸µÅ©°¡ °¡¸®Å°´Â Å×À̺íÀ»
´ë½Å »ç¿ëÇÒ ¼ö ÀÖ´Ù. realpath() call À» Áö¿øÇÏ´Â ¸ðµç ½Ã½ºÅÛ¿¡¼­ ÀÛµ¿ÇÑ´Ù. (ÃÖ¼ÒÇÑ ¸®´ª
½º¿Í ¼Ö¶ó¸®½º´Â realpath()¸¦ Áö¿øÇÑ´Ù) realpath()¸¦ Áö¿øÇÏÁö ¾Ê´Â ½Ã½ºÅÛ¿¡¼­ µ¿½Ã¿¡ ½Ç
Á¦ °æ·Î¿Í ½Éº¼¸¯ ¸µÅ©µÈ °æ·Î¿¡ Á¢±ÙÇÏ¸é ¾ÈµÈ´Ù. ÀÌ·± °æ¿ì¿¡´Â ¾÷µ¥ÀÌÆ® µÈÈÄ¿¡ Å×À̺í
ÀÌ ¸ð¼øµÉ ¼ö ÀÖ´Ù.

mysqlÀº ±âº»°ªÀ¸·Î µ¥ÀÌÅͺ£À̽º ¸µÅ©¸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù. µ¥ÀÌÅͺ£À̽º°£¿¡ ½Éº¼¸¯ ¸µÅ©
¸¦ »ç¿ëÇÏÁö ¾Ê´Â ÀÛµ¿À» Àß ÇÒ °ÍÀÌ´Ù. mysql µ¥ÀÌÅÍ µð·ºÅ丮¿¡ db1 µ¥ÀÌÅͺ£À̽º°¡ ÀÖ
°í db1À» °¡¸®Å°´Â db2 ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé¾ú´Ù°í Çغ¸ÀÚ:

shell> cd /path/to/datadir
shell> ln -s db1 db2

ÀÌÁ¦ db1¿¡ tbl_a¶ó´Â Å×À̺íÀÌ ÀÖ´Ù¸é db2¿¡µµ tbl_a°¡ ³ªÅ¸³¯ °ÍÀÌ´Ù. ÇÑ ½º·¹µå°¡ db1.tbl
_a¸¦ ¾÷µ¥ÀÌÆ®ÇÏ°í ´Ù¸¥ ½º·¹µå°¡ db2.tbl_a¸¦ ¾÷µ¥ÀÌÆ®ÇÏ¸é ¹®Á¦°¡ »ý±æ °ÍÀÌ´Ù.

Á¤¸»·Î ÀÌ ±â´ÉÀÌ ÇÊ¿äÇϸé , `mysys/mf_format.c'¿¡¼­ ´ÙÀ½ÀÇ Äڵ带 ¼öÁ¤ÇØ¾ß ÇÑ´Ù.:

if (!lstat(to,&stat_buff))  /* Check if it's a symbolic link */
    if (S_ISLNK(stat_buff.st_mode) && realpath(to,buff))

À§ Äڵ带 ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù :

if (realpath(to,buff))


10.9 Å×ÀÌºí¿¡ ¶ô °Å´Â ¹æ¹ý

mysqlÀÇ ¸ðµç ¶ôÀº deadlock-free ÀÌ´Ù. ¾ðÁ¦³ª ÁúÀǸ¦ ½ÃÀÛÇÒ¶§ Çѹø¿¡ ¸ðµç ÇÊ¿äÇÑ ¶ôÀ»
¿äûÇÏ°í ¾ðÁ¦³ª °°Àº ¼ø¼­´ë·Î Å×ÀÌºí¿¡ ¶ôÀ» °É¾î °ü¸®ÇÑ´Ù.

WRITE ¶ôÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù:

- Å×ÀÌºí¿¡ ¶ôÀÌ ¾øÀ¸¸é ±× Å×ÀÌºí¿¡ write ¶ôÀ» °Ç´Ù.
- ÀÌ·± °æ¿ì°¡ ¾Æ´Ï¶ó¸é write ¶ô Å¥¿¡ ¶ôÀ» ¿äûÇÑ´Ù.

READ ¶ôÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù:

- Å×ÀÌºí¿¡ write ¶ôÀÌ ¾øÀ¸¸é ±× Å×ÀÌºí¿¡ read ¶ôÀ» °Ç´Ù.
- ÀÌ·± °æ¿ì°¡ ¾Æ´Ï¶ó¸é read ¶ô Å¥¿¡ ¶ôÀ» ¿äûÇÑ´Ù.

¶ôÀÌ ÇØÁ¦µÇ¾úÀ» ¶§ ¶ôÀº write ¶ô Å¥ÀÇ ½º·¹µå¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç ±×·¯°í ³ª¼­ read ¶ô
Å¥ÀÇ ½º·¹µå¿¡¼­ »ç¿ëÇÑ´Ù.

Å×ÀÌºí¿¡¼­ ¾÷µ¥ÀÌÆ®¸¦ ¸¹ÀÌ Çϸé SELECT ¹®Àº ´õ ÀÌ»ó ¾÷µ¥ÀÌÆ®°¡ ¾øÀ» ¶§±îÁö ±â´Ù¸°
´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.

ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ Å×ÀÌºí¿¡¼­ INSERT ¿Í SELECT ¿ÀÆÛ·¹À̼ÇÀ» ¸¹ÀÌ »ç¿ëÇÏ
´Â °æ¿ì¿¡ ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù. Àӽà Å×ÀÌºí¿¡ ·¹Äڵ带 ÀÔ·ÂÇÏ°í Çѹø¿¡ Àӽà Å×ÀÌºí¿¡
¼­ ½ÇÁ¦ Å×À̺í·Î ·¹Äڵ带 ¾÷µ¥ÀÌÆ®ÇÑ´Ù.

´ÙÀ½ÀÇ ¿¹¸¦ º¸ÀÚ:

mysql> LOCK TABLES real_table WRITE, insert_table WRITE;
mysql> insert into real_table select * from insert_table;
mysql> delete from insert_table;
mysql> UNLOCK TABLES;

¸¸¾à ¾î¶² °æ¿ì¿¡ SELECT¹®¿¡ ¿ì¼±±ÇÀ» ÁÖ°í ½Í´Ù¸é INSERT ¿É¼Ç¿¡¼­ LOW_PRIORITY
or HIGH_PRIORITY ¿É¼ÇÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. 7.13 [Insert] Âü°í. (** LOW_PRIORITY¸¦ Áö
Á¤Çϸé Ŭ¶óÀ̾ðÆ®¿¡¼­ Å×À̺íÀ» ÀÐÁö ¾ÊÀ» ¶§±îÁö INSERT ¹® ¼öÇàÀÌ ¹Ì·ç¾îÁø´Ù. **)

´ÜÀÏ Å¥¸¦ »ç¿ëÇϱâ À§ÇØ `mysys/thr_lock.c' ÀÇ ¶ôÅ· Äڵ带 ¹Ù²Ü ¼ö ÀÖ´Ù. ÀÌ·± °æ¿ì writ
e ¶ô°ú read ¶ôÀº °°Àº ¿ì¼±±ÇÀ» °¡Áö¸ç ¾î¶² ¾ÖÇø®ÄÉÀ̼ǿ¡¼­´Â À¯¿ëÇÒ ¼ö ÀÖ´Ù.

10.10 Å×À̺íÀ» ºü¸£°í ÀÛ°Ô ¹è¿­ÇÏ´Â ¹æ¹ý <** Å×À̺í ÃÖÀûÈ­ **>

´ÙÀ½Àº Å×ÀÌºí¿¡¼­ ÃÖ´ëÀǼº´ÉÀ» ³»´Â ¹æ¹ý°ú ÀúÀå °ø°£À» Àý¾àÇÒ ¼ö ÀÖ´Â Å×Å©´ÐÀÌ´Ù:

- °¡´ÉÇÑÇÑ NOT NULL·Î Ä÷³À» ¼±¾ðÇÑ´Ù. ¼Óµµ°¡ »¡¶óÁö¸ç °¢ Ä÷³¸¶´Ù 1 ºñÆ®¸¦ Àý¾àÇÒ
¼ö ÀÖ´Ù.
- default °ªÀ» °¡Áú ¶§ À¯¸®ÇÏ´Ù. ÀԷµǴ °ªÀÌ ±âº»°ª°ú ´Ù¸¦ ¶§¸¸ È®½ÇÇÏ°Ô °ªÀÌ ÀԷµÈ
´Ù. INSERT ¹®¿¡¼­ ù¹ø° TIMESTAMP Ä÷³À̳ª AUTO-INCREAMENT Ä÷³ÀÇ °ªÀ»
ÀÔ·ÂÇÒ ÇÊ¿ä°¡ ¾ø´Ù. 18.4.49 [mysql_insert_id()] Âü°í.
- °¡´ÉÇÑÇÑ Å×À̺íÀ» ÀÛ°Ô ¸¸µå·Á¸é ´õ ÀÛÀº integer ŸÀÔÀ» »ç¿ëÇÏÀÚ. ¿¹¸¦ µé¸é MEDIUM
INT °¡ º¸Åë INT º¸´Ù ÁÁ´Ù.
- °¡º¯ ±æÀÌ Ä÷³ÀÌ ¾ø´Ù¸é(VARCHAR, TEXT or BLOB columns), °íÁ¤ ±æÀÌ ·¹ÄÚµå Æ÷
¸ËÀÌ »ç¿ëµÈ´Ù. ÀÌ °æ¿ì ¼Óµµ´Â ´õ ºü¸£Áö¸¸ ºÒÇàÈ÷µµ(ÈæÈæ~) ³¶ºñµÇ´Â °ø°£ÀÌ ´õ ¸¹´Ù. 10.1
4 [Row format] Âü°í.
- mysqlÀÌ ÁúÀǸ¦ È¿°úÀûÀ¸·Î ÃÖÀûÈ­Çϱâ À§ÇØ ¸¹Àº ¾çÀÇ µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÑÈÄ isamchk --a
nalyze¸¦ ½ÇÇàÇÏÀÚ. ÀÌ·¸°Ô ÇÏ¸é µ¿ÀÏÇÑ °ªÀ» °¡Áø ÁÙÀÇ Æò±Õ ¼ýÀÚ¸¦ °¡¸®Å°´Â °¢ À妽ºÀÇ
°ªÀ» ¾÷µ¥ÀÌÆ®ÇÑ´Ù. (¹°·Ð unique À妽º¿¡¼­´Â Ç×»ó 1ÀÌ´Ù)
- À妽º¿Í À妽º¿¡ µû¸¥ µ¥ÀÌŸ¸¦ Á¤¿­ÇÏ·Á¸é
isamchk --sort-index --sort-records=1 À» »ç¿ëÇÏÀÚ.(if you want to sort on index 1).
À妽º¿¡ µû¶ó Á¤·ÄµÈ ¸ðµç ·¹Äڵ带 Àбâ À§ÇØ unique À妽º¸¦ °¡Á³´Ù¸é ÀÌ·¸°Ô ÇÏ´Â °Í
ÀÌ ¼Óµµ¸¦ ºü¸£°Ô ÇÏ´Â °¡Àå ÁÁÀº ¹æ¹ýÀÌ´Ù.
- INSERT ¹®¿¡¼­ °¡´ÉÇÑ ´ÙÁß °ª ¸ñ·ÏÀ» »ç¿ëÇÏÀÚ. °³º°ÀûÀÎ SELECT ¹®º¸´Ù ÈξÀ ºü¸£
´Ù. µ¥ÀÌŸ¸¦ Å×ÀÌºí¿¡ ÀÔ·ÂÇÒ ¶§ LOAD DATA INFILEÀ» »ç¿ëÇÏÀÚ. ¸¹Àº INSERT ¹®À»
»ç¿ëÇÏ´Â °Íº¸´Ù º¸Åë 20¹è ºü¸£´Ù. 7.15 [Load] Âü°í.

¸¹Àº À妽º¸¦ °¡Áø Å×ÀÌºí¿¡ µ¥ÀÌŸ¸¦ ÀÔ·ÂÇÒ¶§ ´ÙÀ½ÀÇ °úÁ¤À» »ç¿ëÇÏ¸é ¼Óµµ¸¦ Çâ»ó½Ãų
¼ö ÀÖ´Ù.
1. mysqlÀ̳ª Perl ¿¡¼­ CREATE TABLE·Î Å×À̺íÀ» ¸¸µç´Ù.
2. mysqladmin flush-tables ½ÇÇà. (** ¿­¸° Å×À̺íÀ» ¸ðµÎ ´ÝÀ½ **)
3. isamchk --keys-used=0 /path/to/db/tbl_name »ç¿ë. Å×ÀÌºí¿¡¼­ ¸ðµç À妽º »ç¿ëÀ» Á¦
°ÅÇÑ´Ù.
4. LOAD DATA INFILE ¸¦ ÀÌ¿ë Å×ÀÌºí¿¡ µ¥ÀÌŸ¸¦ ÀÔ·Â.
5. pack_isamÀ» °¡Áö°í ÀÖ°í Å×À̺íÀ» ¾ÐÃàÇϱ⠿øÇϸé pack_isamÀ» ½ÇÇà.
6. isamchk -r -q /path/to/db/tbl_name ¸¦ ÀÌ¿ë À妽º¸¦ ´Ù½Ã »ý¼º.
7. mysqladmin flush-tables ½ÇÇà.

- LODA DATA INFILE °ú INSERT ¹®¿¡¼­ ´õ ºü¸¥ ¼Óµµ¸¦ ³»·Á¸é Å° ¹öÆÛ¸¦ Áõ°¡½ÃŲ
´Ù. mysqld³ª safe_mysqld¿¡¼­ -O key_buffer=# ¿É¼ÇÀ» »ç¿ëÇÏ¸é µÈ´Ù. ¿¹¸¦ µé¾î 16M´Â
dzºÎÇÑ ·¥À» °¡Á³´Ù¸é ÈǸ¢ÇÑ °ªÀÌ´Ù.
- ´Ù¸¥ ÇÁ·Î±×·¥À» »ç¿ëÇÏ¿© µ¥ÀÌŸ¸¦ ÅؽºÆ® ÆÄÀÏ·Î ´ýÇÁÇÒ¶§ SELECT ... INTO OUTFIL
E À» »ç¿ëÇÏÀÚ. 7.15 [LOAD DATA INFILE] Âü°í.
- ¿¬¼ÓÀ¸·Î ´Ù·®ÀÇ insert¿Í update¸¦ ÇÒ ¶§ LOCK TABLEÀ» »ç¿ëÇÏ¿© Å×ÀÌºí¿¡ ¶ôÀ» °É
¸é ¼Óµµ¸¦ Çâ»ó½Ãų ¼ö ÀÖ´Ù. LOAD DATA INFILE ±×¸®°í SELECT ...INTO OUTFILE
´Â ¿øÀÚÀûÀ̱⠶§¹®¿¡ LOCK TABLEÀ» »ç¿ëÇÏ¸é ¾ÈµÈ´Ù. 7.23 [LOCK TABLES/UNLOCK
TABLES] Âü°í.

Å×À̺íÀÌ ¾ó¸¶³ª ´ÜÆíÈ­µÇ¾ú´ÂÁö Á¡°ËÇÏ·Á¸é '.ISM' ÆÄÀÏ¿¡¼­ isamchk -evi ¸¦ ½ÇÇàÇÑ´Ù. 1
3Àå [Maintenance] Âü°í.



10.11 INSERT ¹®¿¡¼­ ¼Óµµ¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â ºÎºÐ <** insert ÃÖÀûÈ­ **>

insert ÇÏ´Â ½Ã°£Àº ´ÙÀ½¿Í °°ÀÌ ±¸¼ºµÈ´Ù:

    Connect: (3)
    Sending query to server: (2)
    Parsing query: (2)
    Inserting record: (1 x size of record)
    Inserting indexes: (1 x indexes)
    Close: (1)

(¼ýÀÚ)´Â ºñ·ÊÀûÀÎ ½Ã°£ÀÌ´Ù. ÀÌ°ÍÀº Å×À̺íÀ» °³¹æÇÒ¶§ ÃʱâÀÇ overhead¸¦ °í·ÁÇÏ°í ÀÖÁö
´Â ¾Ê´Ù. (¸Å µ¿½Ãº´ÇàÀûÀ¸·Î ¼öÇàµÇ´Â ÁúÀǸ¶´Ù ¹ß»ý)

The size of the table slows down the insertion of indexes by N log N (B-trees).


Å×À̺íÀÇ Å©±â´Â N log N(B-trees)¿¡ µû¶ó À妽ºÀÇ ÀÔ·ÂÀÌ ´À·ÁÁø´Ù. (**¸»ÀÌ Á» ÀÌ»ó. Å×
À̺íÀÌ Ä¿Áü¿¡ µû¶ó À妽º »ý¼ºµµ ´À·ÁÁø´Ù´Â ¶æÀÌ°ÚÁÕ **)

Å×ÀÌºí¿¡ ¶ôÀ» °É°Å³ª insert ¹®¿¡¼­ ´ÙÁß °ª ¸ñ·ÏÀ» »ç¿ëÇÏ¿© ÀÔ·Â ¼Óµµ¸¦ ºü¸£°Ô ÇÒ ¼ö
ÀÖ´Ù. ´ÙÁß °ª ¸ñ·ÏÀ» »ç¿ëÇÏ¸é ´ÜÀÏ insert º¸´Ù 5¹è Á¤µµ ¼Óµµ°¡ »¡¶óÁø´Ù.

mysql> LOCK TABLES a WRITE;
mysql> INSERT INTO a VALUES (1,23),(2,34),(4,33);
mysql> INSERT INTO a VALUES (8,26),(6,29);
mysql> UNLOCK TABLES;

ÁÖ¿äÇÑ ¼Óµµ Â÷ÀÌ´Â ¸ðµç INSERT ¹®ÀÌ ¿Ï·áµÇ°í ³­ ÈÄ¿¡ Çѹø¿¡ À妽º ¹öÆÛ°¡ ¾²¿©±âÁö
¶§¹®¿¡ »ý±ä´Ù. º¸Åë ¼­·Î ´Ù¸¥ ¿©·¯ INSERT ¹®ÀÌ ÀÖÀ¸¸é ¸¹Àº À妽º ¹öÆÛ Ç÷¯½¬°¡ ÀÖ
À» °ÍÀÌ´Ù. ¸ðµç ÁÙÀ» ´ÜÀÏ ¹®À¸·Î ÀÔ·ÂÇÏ¸é ¶ôÀº ÇÊ¿ä¾ø´Ù.

¶ôÅ·Àº ¶ÇÇÑ ´ÙÁß ¿¬°á Å×½ºÆ®ÀÇ ÃÑ ½Ã°£À» ÁÙÀÏ ¼ö´Â ÀÖ´Ù. ±×·¯³ª ¾î¶² ½º·¹µå¿¡¼­´Â ÃÑ
´ë±â½Ã°£Àº Áõ°¡ÇÒ ¼ö ÀÖ´Ù.(¿Ö³Ä¸é ¶ôÀ» ±â´Ù¸®±â ¶§¹®ÀÌ´Ù)
¿¹¸¦ µé¾îº¸ÀÚ:

thread 1 does 1000 inserts
thread 2, 3, and 4 does 1 insert
thread 5 does 1000 inserts

¶ôÀ» »ç¿ëÇÏÁö ¾ÊÀ¸¸é 2, ,3 4´Â 1°ú 5 Àü¿¡ ³¡¸¶Ä¥ °ÍÀÌ´Ù. ¶ôÀ» »ç¿ëÇϸé 2,3,4´Â ¾Æ¸¶µµ 1
À̳ª 5 Àü¿¡ ³¡³ªÁö ¾ÊÀ» °ÍÀÌ´Ù. ±×·¯³ª ÃÑ ½Ã°£Àº 40% »¡¶óÁø´Ù.

INSERT, UPDATE, DELETE ¿ÀÆÛ·¹À̼ÇÀº mysql¿¡¼­ ¸Å¿ì ºü¸£´Ù. ±×·¸±â ¶§¹®¿¡ ÁÙ¿¡¼­
5°³  ÀÌ»óÀÇ insert³ª update¸¦ ÇÒ ¶§ ¶ôÀ» Ãß°¡ÇÏ¸é ´õ ÁÁÀº ¼º´ÉÀ» ¾òÀ» ¼ö ÀÖ´Ù. ÁÙ¿¡ ¸Å
¿ì ¸¹Àº ÀڷḦ ÀÔ·ÂÇÑ´Ù¸é ´Ù¸¥ ½º·¹µå¿¡¼­ Å×ÀÌºí¿¡ Á¢±ÙÇϵµ·Ï Çϱâ À§ÇØ ¶§¶§·Î(°¢ 100
0ÁÙ¸¶´Ù) UNLOCK TABLES¸¦ »ç¿ëÇÏ´Â LOCK TABLES ½ÇÇàÇÏ¸é µÈ´Ù. ÀÌ·¸°Ô Çϸé ÁÁ
Àº ¼º´ÉÀ» ³¾ ¼ö ÀÖ´Ù. (** ¿­½ÉÈ÷ ÀÔ·ÂÀ» ÇÏ°í Áß°£¿¡ ¶ôÀ» Ç®¾ú´Ù°¡ ´Ù½Ã ¶ôÀ» °Å´Â °Í
¹Ýº¹ÇÔ**)

¹°·Ð LOAD DATA INFILE ÀÌ ´õ ºü¸£´Ù.



10.12 DELETE ¹®¿¡¼­ ¼Óµµ¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â ºÎºÐ <** DELETE ¹® ÃÖÀûÈ­ **>

·¹Äڵ带 »èÁ¦ÇÏ´Â ½Ã°£Àº Á¤È®È÷ À妽º ¼ýÀÚ¿¡ ºñ·ÊÇÑ´Ù. ·¹Äڵ带 ºü¸£°Ô Áö¿ì±â À§ÇØ
À妽º ij½¬ÀÇ Å©±â¸¦ Áõ°¡½Ãų ¼ö ÀÖ´Ù. ±âº» À妽º ij½¬´Â 1M ÀÌ´Ù; ºü¸£°Ô »èÁ¦Çϱâ À§
ÇØ Áõ°¡µÇ¾î¾ß ÇÑ´Ù.(ÃæºÐÇÑ ¸Þ¸ð¸®¸¦ °¡Áö°í ÀÖ´Ù¸é 16M·Î ÇÏÀÚ)


10.13 mysql¿¡¼­ ÃÖ´ë ¼Óµµ¸¦ ¾ò´Â ¹æ¹ý

º¥Ä¡¸¶Å·À» ½ÃÀÛÇÏÀÚ! mysql º¥Ä¡¸¶Å© ½ºÀ§Æ®¿¡¼­ ¾î¶² ÇÁ·Î±×·¥À» »ç¿ëÇÒ ¼ö ÀÖ´Ù. (ÀϹÝ
ÀûÀ¸·Î 'sql-bench' µð·ºÅ丮¿¡ ÀÖÀ½) ±×¸®°í ÀԸ¿¡ ¸Â°Ô ¼öÁ¤ÇÏÀÚ. ÀÌ·¸°Ô ÇÏ¸é ´ç½ÅÀÇ ¹®
Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Â ´Ù¸¥ ÇØ°áÃ¥À» ãÀ» ¼ö ÀÖÀ¸¸ç ´ç½Å¿¡°Ô °¡Àå ºü¸¥ ÇØ°áÃ¥À» Å×½ºÆ®ÇÒ
¼ö ÀÖ´Ù.

- mysqld¸¦ ÀûÀýÇÑ ¿É¼ÇÀ¸·Î ½ÃÀÛÇÏÀÚ. ¸Þ¸ð¸®°¡ ¸¹À»¼ö·Ï ¼Óµµ°¡ ºü¸£´Ù.
  10.1 [MySQL parameters] Âü°í.
- SELECT ¹®ÀÇ ¼Óµµ¸¦ ºü¸£°Ô Çϱâ À§ÇØ À妽º¸¦ ¸¸µéÀÚ.
10.4 [MySQL indexes] Âü°í.
- °¡´ÉÇÑ È¿À²ÀûÀ¸·Î Ä÷³ ŸÀÔÀ» ÃÖÀûÈ­ÇÏÀÚ. ¿¹¸¦ µé¸é °¡´ÉÇÑ NOT NULL·Î Ä÷³À» Á¤
ÀÇÇÏÀÚ. 10.10 [Table efficiency] Âü°í.
- --skip-locking ¿É¼ÇÀºSQL ¿äû¿¡¼­ ÆÄÀÏ ¶ôÅ·À» ¾ø¾Ø´Ù. ¼Óµµ°¡ »¡¶óÁöÁö¸¸ ´ÙÀ½ÀÇ °ú
Á¤À» µû¶ó¾ß ÇÑ´Ù:
        ¤· isamchk·Î Å×À̺íÀ» üũÇϰųª ¼ö¸®Çϱâ Àü¿¡ mysqladmin flush-tables ·Î ¸ð
µç Å×À̺íÀ» Ç÷¯½ÃÇØ¾ß ÇÑ´Ù. (isamchk -d tbl_nameÀº ¾ðÁ¦³ª Çã¿ëµÈ´Ù. ¿Ö³ÄÇϸé ÀÌ°Ç ´Ü
¼øÈ÷ Å×À̺íÀÇ Á¤º¸¸¦ º¸¿©Áֱ⠶§¹®ÀÌ´Ù)
        ¤· µ¿½Ã¿¡ ¶á µÎ°³ÀÇ mysql ¼­¹ö°¡ µ¿ÀÏÇÑ Å×À̺íÀ» ¾÷µ¥ÀÌÆ®ÇÏ·Á ÇÑ´Ù¸é µ¿ÀÏÇÑ
µ¥ÀÌÅÍ ÆÄÀÏ¿¡ µÎ°³ÀÇ mysql ¼­¹ö¸¦ ¶ç¿ì¸é ¾ÈµÈ´Ù.

        --skip-locking ¿É¼ÇÀº MIT-pthreads·Î ÄÄÆÄÀÏÇÒ¶§ ±âº»°ªÀÌ´Ù. ¿Ö³Ä¸é ¸ðµç Ç÷§
ÆûÀÇ MIT-pthreads¿¡¼­ flock()°¡ ¿ÏÀüÇÏ°Ô Áö¿øÀÌ µÇÁö ¾Ê±â ¶§¹®ÀÌ´Ù.

- ¾÷µ¥ÀÌÆ®¿¡ ¹®Á¦°¡ ÀÖ´Ù¸é ¾÷µ¥ÀÌÆ®¸¦ ¹Ì·ç°í ³ªÁß¿¡ ÇÏÀÚ. ¸¹Àº ¾÷µ¥ÀÌÆ®¸¦ ÇÏ´Â °ÍÀÌ
Çѹø¿¡ Çϳª¸¦ ¾÷µ¥ÀÌÆ®ÇÏ´Â °Íº¸´Ù ´õ ºü¸£´Ù.
- FreeBSD ½Ã½ºÅÛ¿¡¼­ MIT-pthreads¿¡ ¹®Á¦°¡ ÀÖÀ¸¸é FreeBSD 3.0 ÀÌÈÄ ¹öÀüÀ¸·Î ¾÷µ¥
ÀÌÆ® Çϴ°ÍÀÌ ÁÁ´Ù. ÀÌ·¸°Ô Çϸé À¯´Ð½º ¼ÒÄÏÀ» »ç¿ëÇÏ´Â °ÍÀÌ °¡´ÉÇϸç(FreBSD¿¡¼­ À¯´Ð
½º ¼ÒÄÏÀÌ MIT-pthreads¿¡¼­ TCP/IP ¿¬°áÀ» »ç¿ëÇÏ´Â °Íº¸´Ù ºü¸£´Ù) ±×¸®°í ½º·¹µå ÆÐÅ°
Áö°¡ Á¶Á¤(intergrated?)µÇ¾î¾ß ÇÑ´Ù.
- Å×À̺íÀ̳ª Ä÷³ ´Ü°è¸¦ üũÇÏ´Â GRANT´Â ¼º´ÉÀ» ¶³¾î¶ß¸°´Ù.


10.14 ·Î¿ì Æ÷¸Ë°ú ´Ù¸¥ Á¡Àº ¹«¾ùÀΰ¡? ¾ðÁ¦ VARCHAR/CHARÀ» »ç¿ëÇØ¾ß Çϴ°¡?

mysqlÀº ½ÇÁ¦ÀÇ SQL VARCHAR ŸÀÔÀÌ ¾ø´Ù. ±×´ë½Å mysqlÀº ·¹Äڵ带 ÀúÀåÇÏ°í ÀÌ°ÍÀ»
VARCHAR·Î ¿¡¹Ä·¹ÀÌÆ®Çϴµ¥ ¼¼°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù.

Å×ÀÌºí¿¡ VARCHAR, BLOB, TEXT Ä÷³ÀÌ ¾øÀ¸¸é °íÁ¤ row size¸¦ »ç¿ëÇÑ´Ù. ±×¿Ü¿¡´Â
µ¿Àû row size¸¦ »ç¿ëÇÑ´Ù. CHAR °ú VARCHAR Ä÷³Àº ¾ÖÇø®ÄÉÀ̼ÇÀÇ °üÁ¡¿¡¼­ µ¿ÀÏÇÏ
°Ô Ãë±ÞµÈ´Ù; µÑ´Ù trailing space´Â Ä÷³À» °¡Á®¿Ã¶§ Á¦°ÅµÈ´Ù.

isamchk -d ¸¦ ÀÌ¿ë Å×ÀÌºí¿¡¼­ »ç¿ëÇÏ´Â Æ÷¸ËÀ» üũÇÒ ¼ö ÀÖ´Ù.
(-d ´Â "Å×ÀÌºí ¹¦»ç"¸¦ ÀǹÌ)

mysqlÀº ¼¼°¡Áö ´Ù¸¥ Å×À̺í Æ÷¸ËÀ» °¡Áö°í ÀÖ´Ù; °íÁ¤±æÀÌ, ´ÙÀ̳ª¹Í, ¾ÐÃà.


°íÁ¤ ±æÀÌ Å×À̺í
- ±âº» Æ÷¸Ë. Å×ÀÌºí¿¡ VARCHAR, BLOB, TEXT Ä÷³ÀÌ ¾øÀ» ¶§ »ç¿ë.
- ¸ðµç CHAR, NUMERIC, DECIMAL Ä÷³Àº Ä÷³ ±æÀÌ¿¡ space-padded ÀÌ´Ù. (** space-
padded¸¦ ¹«¾ùÀ̶ó°í ¹ø¿ªÇØ¾ß ÇÒÁö ¾Ö¸Å¸ðÈ£Çؼ­ **)
- ¸Å¿ì ºü¸§
- ij½¬Çϱ⠽±´Ù
- ¼Õ»ó ÈÄ º¹±¸°¡ ½±´Ù. ¿Ö³Ä¸é °íÁ¤µÈ À§ÀÌ¿¡ ·¹Äڵ尡 À§Ä¡Çϱ⠶§¹®ÀÌ´Ù.
- ¸¹Àº ¾çÀÇ ·¹Äڵ尡 Áö¿öÁ³°Å³ª ¿î¿µ ½Ã½ºÅÛ¿¡¼­ ÀÚÀ¯ °ø°£À» ´Ã¸®±æ ¿øÄ¡ ¾Ê´Â´Ù¸é (isa
mchk¸¦ ÀÌ¿ë) ÀçÁ¶Á÷È­ÇÒ ÇÊ¿ä¾ø´Ù.
- º¸Åë ´ÙÀ̳ª¹Í Å×ÀÌºíº¸´Ù ¸¹Àº µð½ºÅ© °ø°£À» ÇÊ¿ä·Î ÇÑ´Ù.


´ÙÀ̳ª¹Í Å×À̺í
- Å×À̺íÀÌ VARCHAR, BLOB, TEXT Ä÷³À» Æ÷ÇÔÇÏ°í ÀÖÀ» ¶§ »ç¿ë.
- ¸ðµç ¹®ÀÚ¿­ Ä÷³Àº ´ÙÀ̳ª¹ÍÇÏ´Ù.(4º¸´Ù ÀÛÀº ±æÀ̸¦ °¡Áø ¹®ÀÚ¿­ Á¦¿Ü)
- Ä÷³ÀÌ ¹®ÀÚ¿­ Ä÷³¿¡¼­ ºñ¾ú°Å³ª ('') ¼ýÀÚÇü Ä÷³¿¡¼­ 0(NULL °ªÀ» °¡Áø Ä÷³°ú µ¿ÀÏ
ÇÑ °ÍÀÌ ¾Æ´Ï´Ù) À» ³ªÅ¸³»´Â ºñÆ®¸ÊÀÌ ¸ðµç ·¹ÄÚµå ¾Õ¿¡ ¼±ÇàµÈ´Ù. ¹®ÀÚ¿­ Ä÷³¿¡¼­ trailin
g space¸¦ Á¦°ÅÇÑ ÈÄ zeroÀÇ ±æÀ̸¦ °¡Áö°Å³ª ¼ýÀÚÇü Ä÷³ÀÌ zeroÀÇ °ªÀ» °¡Áö¸é ºñÆ® ¸ÊÀ¸
·Î Ç¥½ÃµÇ°í µð½ºÅ©¿¡ ÀúÀåµÇÁö ¾Ê´Â´Ù. ºñÁö ¾ÊÀº ¹®ÀÚ´Â ¹®ÀÚ³»¿ë¿¡ ±æÀÌ ¹ÙÀÌÆ®¸¸Å­ Ãß
°¡µÇ¾î ÀúÀåµÈ´Ù.
- º¸Åë °íÁ¤ ±æÀÌ Å×ÀÌºíº¸´Ù µð½ºÅ© °ø°£ Àý¾à.
- ÁÙÀÇ ±æÀ̸¦ È®ÀåÇÏ´Â Á¤º¸¸¦ °¡Áö°í ÁÙÀ» ¾÷µ¥ÀÌÆ®Çϸé ÁÙÀº ´ÜÆíÈ­µÉ °ÍÀÌ´Ù. ÀÌ·± °æ
¿ì ´õ ÁÁÀº ¼º´ÉÀ» À§ÇØ ¶§¶§·Î isamchk -r À» ½ÇÇàÇØ¾ß ÇÑ´Ù. Åë°èÀûÀ¸·Î(?) isamchk -ei
tbl_nameÀ» »ç¿ëÇÏÀÚ.
- ¼Õ»óÈÄ º¹±¸°¡ ¾î·Æ´Ù. ¿Ö³Ä¸é ·¹Äڵ尡 ¸¹Àº Á¶°¢µå·Î ´ÜÆíÈ­µÇ°í ¸µÅ©(´ÜÆí)°¡ ¾ø¾îÁö
±â ¶§¹®ÀÌ´Ù.
- ´ÙÀ̳ª¹Í »çÀÌÁî Å×À̺íÀÇ ¿¹»óµÇ´Â ¿­ ±æÀÌ :
    3
    + (number of columns + 7) / 8
    + (number of char columns)
    + packed size of numeric columns
    + length of strings
    + (number of NULL columns + 7) / 8

°¢ ¸µÅ©¸¶´Ù 6 ¹ÙÀÌÆ®°¡ ´õ ÀÖ´Ù. ´ÙÀ̳ª¹Í ·¹ÄÚµå´Â ¾÷µ¥ÀÌÆ®·Î ·¹Äڵ尡 ´Ã¾î³¯¶§¸¶´Ù ¸µ
Å©µÈ´Ù. °¢ »õ·Î¿î ¸µÅ©´Â ÃÖ¼Ò 20¹ÙÀÌÆ®ÀÏ °ÍÀ̸ç, ±×·¡¼­ ´ÙÀ½ÀÇ È®ÀåÀº ¾Æ¸¶µµ µ¿ÀÏÇÑ ¸µ
Å©·Î µÉ °ÍÀÌ´Ù. ±×°Ô ¾Æ´Ï¶ó¸é ´Ù¸¥ ¸µÅ©°¡ ÀÖÀ» °ÍÀÌ´Ù. isamchk -ed ·Î ¾ó¸¶³ª ¸¹Àº ¸µ
Å©°¡ ÀÖ´ÂÁö üũÇÒ ¼ö ÀÖ´Ù. ¸ðµç ¸µÅ©´Â isamchk -r ·Î Á¦°ÅÇÒ ¼ö ÀÖ´Ù.(** ?? **)

There is a penalty of 6 bytes for each link. A dynamic record is linked whenever an up
date causes an enlargement of the record. Each new link will be at least 20 bytes, so th
e next enlargement will probably go in the same link. If not, there will be another link.
You may check how many links there are with isamchk -ed. All links may be removed
with isamchk -r.


¾ÐÃà Å×À̺í

- Àбâ Àü¿ë Å×À̺íÀº pack_isam À¯Æ¿¸®Æ¼·Î ¸¸µé ¼ö ÀÖ´Ù. È®Àå mysql À̸ÞÀÏ Áö¿øÀ» ±¸
ÀÔÇÑ ¸ðµç °í°´Àº ³»ºÎÀûÀÎ ¿ëµµ·Î pack_isamÀ» »ç¿ëÇÒ ±Ç¸®°¡ ÁÖ¾îÁø´Ù.
- ¾ÐÃàÇØÁ¦ ÄÚµå´Â ¸ðµç mysql ¹èÆ÷ÆÇ¿¡ ÀÖÀ¸¹Ç·Î pack_isamÀÌ ¾ø´Â °í°´µµ pack_isamÀ¸
·Î ¾ÐÃàµÈ Å×À̺íÀ» ÀÐÀ» ¼ö ÀÖ´Ù. (Å×À̺íÀÌ °°Àº Ç÷§Æû¿¡¼­ ¾ÐÃàµÇ¾î ÀÖ´ÂÇÑ)
- ¸Å¿ì ÀûÀº µð½ºÅ© ¿ë·®À» »ç¿ë.
- °¢ ·¹ÄÚµå´Â °³º°ÀûÀ¸·Î ¾ÐÃàÀÌ µÈ´Ù.( ¸Å¿ì ÀûÀº ¾×¼¼½º overhead) ·¹ÄÚµåÀÇ Çì´õ´Â Å×
À̺íÀÇ °¡Àå Å« ·¹Äڵ忡 µû¶ó (1-3 ¹ÙÀÌÆ®) °íÁ¤µÈ´Ù. °¢ Ä÷³Àº ´Ù¸£°Ô ¾ÐÃàÀÌ µÈ´Ù. ¾ÐÃà
ŸÀÔÀº ´ÙÀ½°ú °°´Ù:

        ¤· ÀϹÝÀûÀ¸·Î °¢ Ä÷³¸¶´Ù ´Ù¸¥ Huffman Å×À̺íÀÌ´Ù.
        ¤· Suffic °ø°£ ¾ÐÃà
        ¤· Prefix °ø°£ ¾ÐÃà
        ¤· 0 °ªÀ» °¡Áø ¼ýÀÚ´Â 1ºñÆ®·Î ÀúÀå.
        ¤· integer Ä÷³ÀÇ °ªÀÌ ÀÛÀº ¹üÀ§¸¦ °¡Á³´Ù¸é, Ä÷³Àº ÃÖ´ëÇÑ ÀÛÀº ŸÀÔÀ¸·Î ÀúÀå
µÈ´Ù. ¿¹¸¦ µé¸é BIGINT Ä÷³Àº ¸ðµç °ªÀÌ 0ºÎÅÍ 255¶ó¸é TINIINT Ä÷³(1¹ÙÀÌÆ®)·Î ÀúÀå
µÈ´Ù.
        ¤· Ä÷³ÀÌ ¸î°¡Áö °¡´ÉÇÑ °ªÀ¸·Î¸¸ ±¸¼ºµÇ¾î ÀÖ´Ù¸é, Ä÷³ ŸÀÔÀº ENUMÀ¸·Î º¯È¯
µÈ´Ù.
        ¤· Ä÷³Àº À§ ¾ÐÃà ¹æ¹ýÀ» Á¶ÇÕÇÏ¿© »ç¿ëÇÑ´Ù.
- °íÁ¤ ±æÀ̳ª ´ÙÀ̳ª¹Í ±æÀÌÀÇ Å×À̺íÀ» ´Ù·ê ¼ö ÀÖ´Ù. ±×·¯³ª BLOB³ª TEXT Ä÷³Àº ´Ù
·ê ¼ö ¾ø´Ù.
- isamchk·Î ¾ÐÃàÀ» ÇØÀçÇÒ ¼ö ÀÖ´Ù.

mysqlÀº ´Ù¸¥ À妽º ŸÀÔÀ» Áö¿øÇÑ´Ù. ±×·¯³ª ÀϹÝÀûÀΠŸÀÔÀº NISAMÀÌ´Ù. ÀÌ°ÍÀº B-tre
e À妽ºÀÌ¸ç ¸ðµç Å°ÀÇ °©À» ÇÕÇÏ¿© (Å° ±æÀÌ+4)*0.67·Î À妽º ÆÄÀÏÀÇ Å©±â¸¦ ´ë°­ °è»ê
ÇÒ ¼ö ÀÖ´Ù. (ÀÌ°ÍÀº ¸ðµç Å°°¡ Á¤·ÄµÈ ¼ø¼­·Î ÀÔ·ÂµÈ °¡Àå ³ª»Û °æ¿ìÀÌ´Ù)


String indexes are space compressed. If the first index part is a string, it will also be p
refix compressed. Space compression makes the index file smaller if the string column h
as a lot of trailing space or is a VARCHAR column that is not always used to the full
length. Prefix compression helps if there are many strings with an identical prefix.

¹®ÀÚ¿­ À妽º´Â °ø°£ÀÌ ¾ÐÃàµÈ´Ù. ù¹ø° À妽º ºÎºÐÀÌ ¹®ÀÚ¿­À̶ó¸é, prefix°¡ ¾ÐÃàµÈ´Ù.
¹®ÀÚ¿­ Ä÷³ÀÌ ´Ù·®ÀÇ trailing space¸¦ °¡Á³°Å³ª ¾ðÁ¦³ª ¿ÏÀüÇÑ ±æÀ̸¦ »ç¿ëÇÏÁö ¾Ê´Â VA
RCHAR Ä÷³ÀÏ ¶§ space ¾ÐÃàÀº À妽º ÆÄÀÏÀ» ´õ ÀÛ°Ô ¸¸µç´Ù. prefix ¾ÐÃàÀº ¸¹Àº ¹®ÀÚ
¿­¿¡ µ¿ÀÏÇÑ prefix°¡ ÀÖÀ» ¶§ À¯¿ëÇÏ´Ù.
{{
}}11. mysql º¥Ä¡¸¶Å© ½ºÀ§Æ®

¿©±â¿¡´Â mysql º¥Ä¡¸¶Å© ½ºÀ§Æ®(±×¸®°í crash-me)¿¡ ´ëÇÑ ±â¼úÀûÀÎ ¼³¸íÀÌ µé¾î°¡¾ß ÇÑ´Ù. ±×·¸
Áö¸¸ ¾ÆÁ÷ ÀÛ¼ºÀÌ µÇÁö ¾Ê¾Ò´Ù. ÇöÀç·Î¼­´Â ¹èÆ÷ÆÇÀÇ 'bench' µð·ºÅ丮¿¡¼­ ÄÚµå¿Í °á°ú¸¦ »ìÆ캸
¾Æ¾ß ÇÑ´Ù.(¶ÇÇÑ ´ÙÀ½ÀÇ À¥ÆäÀÌÁö¿¡¼­ »ìÆ캼 ¼ö ÀÖ´Ù.
{{{{http://www.mysql.com/crash-me-choose.htmy)
}}
}}

ÀÌ°ÍÀº »ç¿ëÀÚ¿¡°Ô  ÁÖ¾îÁø SQL ¼öÇàÀÌ Á¦´ë·Î ¼öÇàµÇ´ÂÁö ¾Æ´ÑÁö¸¦ ¾Ë·ÁÁÖ´Â º¥Ä¡¸¶Å©ÀÌ´Ù.

crash-me ´Â ½ÇÁ¦·Î ÁúÀǸ¦ ¼öÇàÇÏ¿© µ¥ÀÌÅͺ£À̽º¿¡¼­ Áö¿øÇÏ´Â ±â´É°ú ´É·Â, Á¦ÇÑ»çÇ× µîÀ» Ãø
Á¤ÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. ¿¹¸¦ µé¾î ´ÙÀ½ÀÇ »çÇ×À» ÃøÁ¤ÇÑ´Ù:

        ¤· Áö¿øÇÏ´Â Ä÷³ ŸÀÔ
        ¤· Áö¿øÇÏ´Â À妽º ¼ýÀÚ
        ¤· Áö¿øÇÏ´Â Æã¼Ç
        ¤· ÁúÀÇÀÇ ÃÖ´ë Å©±â
        ¤· VARCHAR Ä÷³ÀÇ ÃÖ´ë Å©±â
¹ø¿ªÀÚ : ¹®ÅÂÁØ(taejun@hitel.net)

12. mysql À¯Æ¿¸®Æ¼

12.1 ´Ù¾çÇÑ mysql ÇÁ·Î±×·¥ °³¿ä

mysql client ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ¿© ¼­¹ö¿Í Åë½ÅÀ» ÇÏ´Â ¸ðµç mysql Ŭ¶óÀ̾ðÆ®´Â ´ÙÀ½ÀÇ
ȯ°æ º¯¼ö¸¦ »ç¿ëÇÑ´Ù:

Name                    Description
MYSQL_UNIX_PORT         ±âº» ¼ÒÄÏ; ·ÎÄÃÈ£½ºÆ®¿¡¼­ Á¢¼ÓÇÒ¶§ »ç¿ë
MYSQL_TCP_PORT          ±âº» TCP/ip port
MYSQL_PWD               ±âº» Æнº¿öµå
MYSQL_DEBUG             µð¹ö±ëÇÒ¶§ Debug-trace ¿É¼Ç
TMPDIR                  Àӽà Å×À̺í/ÆÄÀÏÀÌ »ý¼ºµÇ´Â µð·ºÅ丮

MYSQL_PWD ¸¦ »ç¿ëÇÏ´Â °ÍÀº º¸¾È¿¡ Ãë¾àÇÏ´Ù. 6.2 [Connecting] Âü°í.

'mysql' Ŭ¶óÀ̾ðÆ®´Â ¸í·ÉÇà ¶óÀÎ È÷½ºÅ丮¿¡ ȯ°æ º¯¼ö¸¦ ÀúÀåÇϱâ À§ÇØ MYSQL_HISTF
ILE À̶ó´Â ÆÄÀÏÀ» »ç¿ëÇÑ´Ù.

¸ðµç MYSQL ÇÁ·Î±×·¥Àº ¸Å¿ì ´Ù¾çÇÑ ¿É¼ÇÀÌ ÀÖ´Ù. ±×·¯³ª ¸ðµç MYSQL ÇÁ·Î±×·¥¿¡¼­ --
help ¿É¼ÇÀ» Á¦°øÇÑ´Ù. --help ¿É¼ÇÀ» ÀÌ¿ëÇØ ÇÁ·Î±×·¥ÀÇ ´Ù¾çÇÑ ¿É¼Ç¿¡ ´ëÇÑ ¸ðµç Á¤º¸¸¦
º¼ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, mysql --help ¸¦ Çغ¸ÀÚ.

¾Æ·¡ÀÇ ¸ñ·ÏÀº mysql ÇÁ·Î±×·¥¿¡ ´ëÇؼ­ ¼³¸íÇÏ°í ÀÖ´Ù:

isamchk : mysql Å×À̺í Á¤º¸ º¸±â, Á¡°Ë, ÃÖÀûÈ­, º¹±¸ À¯Æ¿¸®Æ¼. ¸¹Àº ±â´ÉÀÌ Àֱ⠶§¹®¿¡
º°µµÀÇ Àå¿¡¼­ ÀÚ¼¼È÷ ¼³¸íÇÏ°í ÀÖ´Ù. 13Àå Âü°í.

make_binary_release : ÄÄÆÄÀÏµÈ mysql ¹ÙÀ̳ʸ® ¹öÀüÀ» ¸¸µç´Ù. ´Ù¸¥ myql »ç¿ëÀÚÀÇ ÆíÀÇ
¸¦ À§ÇØ ftp.tcx.eÀÇ '/pub/mysql/Incoming' ¿¡ ¿Ã¸®ÀÚ.

msql2mysql : msql ÇÁ·Î±×·¥À» mysql·Î º¯È¯ÇÏ´Â ½© ½ºÅ©¸³Æ®. ¸ðµç °æ¿ì¸¦ ´Ù·ê ¼ö´Â ¾ø
Áö¸¸ º¯È¯ÇÒ¶§ À¯¿ëÇÒ °ÍÀÌ´Ù.

mysql : °£´ÜÇÑ SQL ½©. (GNU readline ȣȯ¼ºÀÖÀ½) »óÈ£´ëÈ­½Ä ¹× ºñ´ëÈ­½ÄÀ¸·Î »ç¿ëÇÒ
¼ö ÀÖ´Ù. ´ëÈ­½ÄÀ¸·Î »ç¿ëÇÏ´Â °æ¿ì, ÁúÀÇ °á°ú´Â ¾Æ½ºÅ°-Å×À̺í Æ÷¸ËÀ¸·Î Ãâ·ÂµÈ´Ù. ºñ´ëÈ­
½ÄÀ¸·Î »ç¿ëÇÒ °æ¿ì, °á°ú´Â ÅÜÀ¸·Î ºÐ¸®µÈ Æ÷¸ËÀ¸·Î Ãâ·ÂµÈ´Ù. (Ãâ·Â Æ÷¸ËÀº ¸í·ÉÇà ¶óÀÎ
¿É¼ÇÀ» ÀÌ¿ëÇØ ¹Ù²Ü ¼ö ÀÖ´Ù) ´ÙÀ½°ú °°ÀÌ ½ºÅ©¸³Æ®¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù:

shell> mysql database 
µ¡±Û¾²±â  °Ô½Ã±Û ´ã±â


¸ñ·Ï

ºÐ·ù ¼±ÅÃ
79 ÀÏ¹Ý oracle10g + php5.1.2 error [OCIEnvNlsCreate() failed] È£¼® 07-04-27 7111
78 ÀÏ¹Ý [sql] select case when then ¸¦ ÀÌ¿ëÇÑ Äõ¸®¹® È£¼® 07-04-26 5947
77 ÀÏ¹Ý ¿À¶óŬ¿¡¼­ ÀÓÀÇ·Î ¹üÀ§ÀÇ ³¯Â¥¸¦ °¡Á®¿À´Â Äõ¸®¹® È£¼® 07-04-05 3921
76 ÀÏ¹Ý undotbs01°¡ ³Ê¹« Ä¿Á³À» °æ¿ì ÃʱâÈ­ ¿À¶óŬ 9i È£¼® 07-04-04 4777
75 ÀÏ¹Ý [Æß]·Ñ¹é ¼¼±×¸ÕÆ® , ÅÛÆ÷·¯¸® ¼¼±×¸ÕÆ® ´Ù·ç±â È£¼® 07-04-04 3949
74 ÀÏ¹Ý decode È°¿ëÄõ¸® ºñ±³¿¬»êÀÚ ´ë¿ë sign() È£¼® 07-03-29 4291
73 ÀÏ¹Ý ¿À¶óŬ Ä¿³Î shared max °ª Àû¿ëÇϱâ È£¼® 07-03-26 3635
72 ÀÏ¹Ý ORU-10027 ¿¡·¯ -> dbms_output.enable('10000000000') »ç¿ë È£¼® 07-03-19 3783
71 ÀÏ¹Ý ORA-27123 ¿¡·¯ ¸ÞŸ¸µÅ© ÂüÁ¶ È£¼® 07-03-19 4119
70 ÀÏ¹Ý RHEL4 ¸®´ª½º¿¡¼­ ¿À¶óŬ¼³Ä¡ ¡Ú¡Ú¡Ú¡Ú¡Ú (1) È£¼® 07-03-09 4215
69 ÀÏ¹Ý ¿À¶óŬ¿¡¼­ pfile°ú spfileÀÇ Æ¯Â¡ È£¼® 07-03-09 3933
68 ÀÏ¹Ý ¿À¶óŬ À妽º ÀÛ¼º ±ÔÄ¢ ORACLE È£¼® 07-02-15 4384
67 ÀÏ¹Ý ¿À¶óŬ »ç¿ëÀÚ¼öº° ÆĶó¹ÌÅÍ ¼³Á¤°ª È£¼® 07-02-10 3731
ÀÏ¹Ý MYSQL manual Çѱ۹ø¿ª(260k) È£¼® 07-02-10 4931
65 ÀÏ¹Ý [Æ©´×] °è¼Ó swap paging ¹ß»ý½Ã¿¡ È£¼® 07-02-09 3961
óÀ½ÀÌÀü  [1] [2] [3] [4] 5 [6] [7] [8] [9] [10]  ´ÙÀ½¸Ç³¡

 
Copyright © zenos.pe.kr. All rights reserved.