My SQL °ÁÂ 1
ÇãÁ¤¼ö
1997³â °Ü¿ï, ÇÊÀÚ´Â SQLÀ» ¹è¿ì±â À§ÇØ DB ¼¹ö¸¦ ã°í ÀÖ¾ú´Ù. ¿©·¯ ÀâÁö¿Í Ã¥À» ã¾Æ º¸¾Ò´Âµ¥, ±×¶§¸¸ Çصµ mSQL°ú PostgreSQL¿¡ ´ëÇÑ ³»¿ë¹Û¿¡ ¾ø¾ú´Ù. Æò¼Ò ÀÏ¹Ý »ç¶÷µé°ú ´Ù¸¥ »îÀ» »ì°í ½Í¾ú´ø ÇÊÀÚ´Â ÀÏ¹Ý »ç¶÷µéÀÌ ¸¹ÀÌ ¾²Áö ¾Ê´Â DB ¼¹ö¸¦ ã´Ù°¡ ¿ì¿¬È÷ MySQLÀ» ¾Ë°Ô µÇ¾ú°í, MySQL¿¡ ¹ÝÇØ ¹ö·È´Ù. 1997³â ¸¸Çصµ MySQLÀº mSQLÀ̳ª, PostgreSQLº¸´Ù´Â »ç¿ëÀÚ°¡ Àû¾ú´Ù(¿ì¸® ³ª¶ó¿¡¼¸¸ ±×·±Áö´Â ¸ð¸£Áö¸¸). ¸î ´Þ Àü ¸®´ª½º Àú³Î¿¡¼ °¢ ºÐ¾ßº°·Î ¾î¶² ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ °¡Àå ¸¹Àº »ç¿ëÀÚ¸¦ È®º¸Çß³ª Á¶»ç¸¦ ÇÑ ÀûÀÌ ÀÖ´Ù. DB ºÐ¾ß¿¡¼´Â MySQLÀÌ 1µîÀ» Çß´Ù. ¾ÆÀÌ·¯´ÏÄà ÇÏ°Ôµµ ´Ù¸¥ »ç¶÷ÀÌ ¸¹ÀÌ ¾È ¾²´Â DB ¼¹ö¸¦ »ç¿ëÇϱâ À§ÇØ MySQLÀ» ½è¾ú´Âµ¥, Áö±ÝÀº °¡Àå ¸¹Àº »ç¿ëÀÚ¸¦ È®º¸ÇÏ¿´´Ù. ÀÌ ±Û¿¡¼´Â MySQLÀÇ Æ¯Â¡°ú ¼³Ä¡ ¹æ¹ý, ¼³Á¤ ¹æ¹ý, CAPI¸¦ ÀÌ¿ëÇÏ¿© ÀÀ¿ë ÇÁ·Î±×·¥°ú ¿¬µ¿Çϱâ, PHP3¸¦ ÀÌ¿ëÇÏ¿© ¿¬µ¿ÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ ¾Ë¾Æ º»´Ù. À̹ø ±â»ç¿¡¼´Â MySQLÀÇ Æ¯Â¡°ú ¼³Ä¡ ¹æ¹ý, ¼³Á¤ ¹æ¹ý¿¡ ´ëÇؼ ¾Ë¾Æ º»´Ù.
MySQLÀÇ ¸Þ´º¾óÀ» º¸¸é MySQLÀÇ Æ¯Â¡ÀÌ ¾à 30°¡Áö Á¤µµ ³ª¿Í ÀÖ´Ù. ¿ä¾àÇØ º¸¸é ´ÙÀ½°ú °°´Ù.
* Ä¿³Î thread¸¦ ÀÌ¿ëÇÑ Multi thread¸¦ Áö¿øÇϹǷÎ,
CPU°¡ ¿©·¯ °³ÀÏ °æ¿ì À̵é CPU¸¦ Àß È°¿ëÇÒ ¼ö ÀÖ´Ù.
* ´Ù¾çÇÑ Ç÷§ÆûÀ» Áö¿øÇÑ´Ù.( Windows NTµµ Áö¿øÇÑ´Ù. )
* ¾ÆÁÖ Å« µ¥ÀÌŸ º£À̽ºµµ ´Ù·ê ¼ö ÀÖ´Ù. MySQLÀ»
¸¸µç ȸ»ç´Â 5õ¸¸°³ÀÇ ·¹Äڵ带 °¡Áø µ¥ÀÌŸ º£À̽ºµµ »ç¿ëÇÏ°í ÀÖ´Ù.
* ´Ù¾çÇÑ ³ª¶ó¸»·Î ¿¡·¯ ¸Þ½ÃÁö¸¦ Ç¥½ÃÇÑ´Ù.
* ÃÖÀûÈµÈ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÑ´Ù.
ÇÏÁö¸¸, MySQLÀÇ °¡Àå Å« Ư¡À» µé¶ó°í Çϸé, ºü¸¥ ¼Óµµ¸¦ µé ¼ö ÀÖ´Ù. ¾Æ·¡¿¡ MySQL°ú ¿À¶óŬÀÇ ¼Óµµ¸¦ ºñ±³ÇØ ³õÀº º¥Ä¡ ¸¶Å© °á°ú°¡ ÀÖ´Ù.
À§ ±×¸²¿¡¼ ¾Ë ¼ö ÀÖµíÀÌ, MySQLÀº ¸Å¿ì ºü¸£´Ù. http://www.tcx.se/benchmark.html ¿¡ °¡¸é ´Ù¸¥ Á¦Ç°°úµµ ºñ±³ÇØ ³õÀº ÀÚ·á°¡ ¸¹ÀÌ ÀÖÀ¸´Ï, °ü½ÉÀÖ´Â µ¶ÀÚ´Â Á÷Á¢ È®ÀÎÇϱ⠹ٶõ´Ù.
±×·¸´Ù¸é, ¿Ö MySQLÀÌ ´Ù¸¥ Á¦Ç°¿¡ ºñÇؼ ºü¸¥Áö ±Ã±ÝÇÏÁö ¾Ê´Â°¡? MySQLÀº ¼Óµµ Çâ»óÀ» À§Çؼ ÀϺη¯ ¸î °¡Áö ANSI SQLÀ» ±¸ÇöÇÏÁö ¾Ê´Ù. ¹Ù·Î, Transaction°ú TriggerÀÌ´Ù. Transaction°ú Trigger´Â ½Ã½ºÅÛÀÇ ÀÚ¿øÀ» ¸¹ÀÌ ¼Ò¸ðÇÔÀ¸·Î ¼Óµµ¸¦ ¶³¾îÁö°Ô ÇÑ´Ù. MySQLÀº Transaction°ú Trigger¸¦ ÀϺη¯ ±¸ÇöÇÏÁö ¾Ê¾Ò´Ù.
´ÙÀ½Àº ¾ÆÁ÷ MySQLÀÌ Áö¿øÇÏ´Â ¾Ê´Â ±â´ÉµéÀÌ´Ù.
Sub-select
SELECT * FROM table1 WHERE id IN( SELECT id FROM table2) ; ¿Í °°Àº °ÍÀº ¾ÆÁ÷
MySQL¿¡¼ Áö¿øÇÏÁö ¾Ê´Â´Ù. ´Ù¸¸, INSERT .. SELECT .. ¿Í REPLACE .. SELECT ¸¸ÀÌ
Áö¿øµÈ´Ù. sub-select´Â 3.23.0 ¹öÀü¿¡¼ »ç¿ë°¡´ÉÇÒ °ÍÀ̶ó°í ÇÑ´Ù. *
SELECT INTO TABLE
MySQLÀº SELECT .. INTO TABLEÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù. SELECT .. INTO OUTFILE ¸¸À»
Áö¿øÇÑ´Ù.
Transaction
¾Õ¿¡¼µµ ¸»Çß´Ù½ÃÇÇ MySQLÀº TransactionÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù. TransactionÀº ½Ã½ºÅÛÀÇ
ÀÚ¿øÀ» ¸¹ÀÌ ¼Ò¸ðÇÔÀ¸·Î ÀüüÀûÀÎ ¼Óµµ¸¦ ´À¸®°Ô ÇÑ´Ù. µû¶ó¼, MySQLÀº TransactionÀ»
±¸ÇöÇÏÁö ¾Ê°í, ´ë½Å¿¡ LOCK TABLES/UNLOCK TABLES¸¦ ÀÌ¿ëÇÏ¿© Transaction°ú °°Àº
ÀÏÀ» ÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿´´Ù.
Stored Procedure¿Í Trigger
Stored Procedure´Â ¾ÕÀ¸·Î Áö¿øÇÒ °èȹÀÌÁö¸¸, Trigger´Â
¼Óµµ¸¦ ¶³¾îµå¸®°í, º°·Î ÇÊ¿ä ¾ø´Â Äõ¸®¶ó¼ ¾ÕÀ¸·Îµµ Áö¿øÇÒ °èȹÀÌ ¾ø´Ù.
Foreign Key
View
¾Æ½±°Ôµµ MySQLÀÇ ¶óÀ̼¾½º ¹æ½Ä ¶§¹®¿¡ ·¹µåÇÞ °°Àº ¸®´ª½º ¹èÆ÷ÆÇ¿¡´Â MySQLÀÌ Æ÷ÇԵǾî ÀÖÁö ¾Ê´Ù. MySQLÀÇ ¶óÀ̼¾½º ¹æ½ÄÀº ºñ»ó¾÷¿ëÀ¸·Î MySQLÀÌ ¾²ÀÏ °æ¿ì ¹«·áÀÌ°í, »ó¾÷ÀûÀ¸·Î ¾²ÀÏ °æ¿ì, ¶óÀ̼¾½º¸¦ ±¸ÀÔÇØ¾ß ÇÑ´Ù. Win 95, Win 98, Win NT¿ë MySQLÀº »ó¾÷ÀûÀÌµç ºñ»ó¾÷ÀûÀÌµç ¶óÀ̼¾½º¸¦ ±¸ÀÔÇØ¾ß ÇÑ´Ù. http://www.tcx.se/download.html ¿¡¼ MySQLÀ» ±¸ÇÒ ¼ö ÀÖ´Ù.
¹èÆ÷µÇ´Â Çü½ÄÀº ¼Ò½º ÄÚµå, ¹ÙÀ̳ʸ®, RPMÀÌ´Ù. ÀÌ ±ÛÀÌ ¾²¿© Áö°í ÀÖ´Â Áö±ÝÀÇ ÃֽŠ¹öÀüÀº 3.22.20aÀÌ´Ù.
Ãʺ¸ÀÚµéÀº ÄÄÆÄÀÏÀ» µÎ·Á¿ö ÇÏ´Â °æÇâÀÌ ÀÖ´Ù. ÇÏÁö¸¸ ´ëºÎºÐÀÇ ÇÁ·Î±×·¥Àº autoconf¿Í automake¸¦ ÀÌ¿ëÇÏ¿© ¹èÆ÷µÇ¹Ç·Î ÄÄÆÄÀÏÇϱⰡ ½±´Ù. ¸Þ´º¾ó¿¡ ³ª¿Â´ë·Î Àß µû¶ó°£´Ù¸é ½ÇÆоøÀÌ ´Ü Çѹø¿¡ ¼³Ä¡¸¦ ¸¶Ä¥ ¼ö ÀÖ´Ù. °¡Àå ±âº»ÀûÀÎ °úÁ¤Àº ´ÙÀ½°ú °°´Ù.
% gzip -d mysql-Version.tar.gz % tar xvf mysql-Version.tar % cd mysql-Version
ÀÌÁ¦ ½ÇÁ¦ ¼³Ä¡ ´Ü°èÀÌ´Ù.
% configure % make % make check % make install % cd scripts % mysql_install_db
¸î ÁÙ¸¸ Ä¡¸é ¼³Ä¡°¡ ´Ù ³¡³´Ù. °¢ ´Ü°è´Â ´ÙÀ½°ú °°Àº ÀÏÀ» ÇÑ´Ù.
configure : °¢ÀÚÀÇ È¯°æ¿¡ ¸Â°Ô MakefileÀ» »ý¼ºÇÑ´Ù.
make : ÄÄÆÄÀÏÀ» ÇÑ´Ù.
make check : ÄÄÆÄÀÏÀÌ Á¦´ë·Î µÇ¾ú´ÂÁö °Ë»çÇÏ´Â ´Ü°èÀÌ´Ù. (²À ÇÒ ÇÊ¿ä´Â ¾ø´Ù.)
make install : ¸¸µé¾îÁø ½ÇÇà ÆÄÀÏÀ» ¿øÇÏ´Â µð·ºÅ丮¿¡ ¼³Ä¡ÇÑ´Ù.
mysql_install_db : MySQLÀÇ ±ÇÇÑ¿¡ ´ëÇÑ Å×À̺íÀ» »ý¼ºÇÑ´Ù.
MySQLÀ» óÀ½ ¼³Ä¡ÇßÀ» ¶§¸¸ ÇÊ¿äÇÑ °úÁ¤ÀÌ°í, ÀÌÀü ¹öÀüÀÇ MySQL¿¡¼ ¾÷±×·¹À̵带 ÇÏ°í ½Í´Ù¸é mysql_fix_ privilege_tables¸¦ ½ÇÇà½ÃÅ°¸é µÈ´Ù.
µû·Î MySQLÀÌ ¼³Ä¡µÉ µð·ºÅ丮¸¦ ÁöÁ¤ÇÏÁö ¾Ê¾Ò´Ù¸é, ±âº»ÀûÀÎ µð·ºÅ丮´Â /usr/local/ÀÌ µÈ´Ù. MySQLÀ» ¼³Ä¡ÇÒ ½Ã½ºÅÛÀÌ ÀÚ½ÅÀÌ ½´ÆÛ À¯ÀúÀÎ ½Ã½ºÅÛÀ̶ó¸é »ó°ü¾ø°ÚÀ¸³ª, Çб³ ¼¹ö¿¡ ¼³Ä¡ÇÑ´Ù¸é, °æ¿ì´Â ´ëºÎºÐ /usr/local/¿¡ ¼³Ä¡ÇÒ ±ÇÇÑÀÌ ¾øÀ» °ÍÀÌ´Ù. À̶§, MySQLÀ» ¼³Ä¡ÇÒ µð·ºÅ丮¸¦ ÁöÁ¤ÇØ ÁÙ ¼ö ÀÖ´Ù.
% configure --prefix=¿øÇÏ´Â µð·ºÅ丮
ÀÌ·¸°Ô Çϸé MySQLÀÌ ÀÚ½ÅÀÌ ÁöÁ¤ÇÑ µð·ºÅ丮¿¡ ¼³Ä¡µÈ´Ù. MySQLÀÌ ¼³Ä¡µÈ µð·ºÅ丮ÀÇ bin µð·ºÅ丮¿¡ ½ÇÇà ÆÄÀÏÀÌ ¼³Ä¡µÇ°í, include/mysql¿¡ Çì´õ ÆÄÀÏÀÌ ¼³Ä¡µÈ´Ù. lib/mysql¿¡ ¶óÀ̺귯¸®µéÀÌ ¼³Ä¡µÇ°í, libexec¿¡ MySQLÀÇ µ¥¸óÀÎ mysqld°¡ ¼³Ä¡µÈ´Ù. var¿¡´Â ½ÇÁ¦ µ¥ÀÌŸµéÀÌ ¼³Ä¡µÈ´Ù.
ÀÏ´Ü ¹ÙÀ̳ʸ® ¹èÆ÷ÆÇÀ» À§ÀÇ È¨ÆäÀÌÁö¿¡¼ ¹ÞÀº ÈÄ¿¡
% gzip -d mysql-Version-OS.tar.gz % tar xvf mysql-Version-OS % ln -s mysql-Version-OS mysql % cd mysql% scripts/mysql_install_db
ÀÌ·¸°Ô ÇÏ¸é ¼³Ä¡°¡ ³¡³´Ù.
rpmÀº ¼Ò½º ÄÚµå rpm°ú ¹ÙÀ̳ʸ® rpmÀÌ ÀÖ´Ù. rpmÀÌ ¼Ò½º Äڵ带 ´ã°í ÀÖ´Ù¸é,
% rpm -i MySQL-Version.src.rpm % cd /usr/src/redhat/SOURCES
ÀÌÈÄ¿¡´Â ¼Ò½º ÄÚµå·Î ¼³Ä¡Çϱ⠰úÁ¤À» ÇÏ¸é µÈ´Ù.
¹ÙÀ̳ʸ®ÀÇ °æ¿ì MySQL-Version.i386.rpm, MySQL-client-Version.i386.rpm MySQL-bench-Version.i386.rpm, MySQL-devel-Version.i386.rpm ÀÇ 4 °³ÀÇ ÆÄÀÏÀÌ ÇÊ¿äÇÏ´Ù. rpmÀ» ÀÌ¿ëÇÏ¿© À§ÀÇ 4 °³ ÆÄÀÏÀ» ¼³Ä¡ÇÏ¸é µÈ´Ù. À̶§ /var/lib/mysql¿¡ ½ÇÁ¦ µ¥ÀÌŸµéÀÌ ÀúÀåµÈ´Ù. ºÎÆýÿ¡ ÀÚµ¿À¸·Î µ¥¸óÀ» ½ÇÇà½ÃÅ°´Â ÆÄÀÏÀ» ÀÚµ¿À¸·Î ¸¸µé¾î ÁØ´Ù.
¼³Ä¡°¡ ¿Ï·áµÆÀ¸´Ï, ÀÌÁ¦ MySQLÀ» »ç¿ëÇØ º¸ÀÚ. ¸ÕÀú ¾î¶² ½ÇÇà ÆÄÀÏÀÌ ¸¸µé¾î Á³´ÂÁö »ìÆì º¸ÀÚ. ¸¹Àº ½ÇÇà ÆÄÀÏÀÌ ÀÖÁö¸¸,¸¹ÀÌ ¾²ÀÌ´Â ½ÇÇà ÆÄÀϸ¸ Á¤¸®ÇÏ¸é ´ÙÀ½°ú °°´Ù.
1) mysql
SQL ½©·Î¼, client ÇÁ·Î±×·¥ÀÌ´Ù. MySQL¿¡ Á¢¼ÓÇÏ¿©, Äõ¸®¸¦ ¼öÇàÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. ¾ÕÀ¸·Î ¸¹ÀÌ »ç¿ëÇÏ°Ô µÉ °ÍÀÌ´Ù.
2) mysqladmin
MySQLÀ» °ü¸®ÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. µ¥ÀÌŸ º£À̽º¸¦ ¸¸µé°í, »èÁ¦ÇÏ°í, ±ÇÇÑ¿¡ ´ëÇÑ Å×À̺íÀ» ´Ù½Ã ÀÐ¾î µéÀÌ´Â ÀÏÀ» ÇÑ´Ù.
3) mysqld
MySQL µ¥¸óÀÌ´Ù. MySQLÀ» »ç¿ëÇϱâ À§Çؼ Ç×»ó ½ÇÇà ÁßÀ̾î¾ß ÇÑ´Ù.
4) mysqlshow
MySQL¾È¿¡ ¾î¶² µ¥ÀÌŸ º£À̽ºµéÀÌ ÀÖ´ÂÁö, ±× µ¥ÀÌŸ º£À̽ºµé¿¡´Â ¾î¶² Å×À̺íÀÌ ÀÖ´ÂÁö, Å×ÀÌºí¿¡´Â ¾î¶² Ä÷³ÀÌ ÀÖ´ÂÁö¸¦ º¸¿© ÁØ´Ù.
5) safe_mysqld
mysqld¸¦ Á»´õ ¾ÈÀüÇÏ°Ô ½ÇÇà½ÃÅ°´Â ½ºÅ©¸³Æ® ÆÄÀÏÀÌ´Ù.
6) isamchk
Å×ÀÌºí¿¡ ¹®Á¦°¡ ÀÖÀ» ¶§ ¹®Á¦Á¡À» °íÄ¡±âµµ ÇÏ°í, Å×À̺íÀ» ÃÖÀûÈÇÑ´Ù.
MySQLÀÇ »ç¿ëÇϱâ À§Çؼ µ¥¸óÀÌ ½ÇÇà ÁßÀ̾î¾ß ÇÑ´Ù°í, ¼³¸íÀ» Çß´Ù. µ¥¸óÀ» ½ÇÇà½ÃÅ°´Â ¹æ¹ýÀº
% safe_mysqld ȤÀº % mysqld
ÀÌ´Ù. MySQLÀº 3306¹ø Æ÷Æ®¸¦ »ç¿ëÇÑ´Ù. Ȥ½Ã ´Ù¸¥ ÇÁ·Î±×·¥¿¡¼ ¸ÕÀú 3306¹øÀ» ¾²°í ÀÖÀ¸¸é µ¥¸óÀÌ ¿¡·¯¸¦ ³»¸é¼ ½ÇÇàÀÌ ¾È µÈ´Ù. À̶§´Â
% mysqld -P 3333
ó·³ »ç¿ëÇÒ Æ÷Æ® ¹øÈ£¸¦ ÁöÁ¤ÇØ ÁÙ ¼ö ÀÖ´Ù.
¸Å¹ø ºÎÆýø¶´Ù µ¥¸óÀ» ¼Õ¼ö ½ÇÇà½ÃÅ°±â ±ÍÂú´Ù¸é, safe_mysqld¸¦ /etc/rc.d/rc.local¿¡
ÇÑÁÙ Ãß°¡ÇØÁÖ¸é ºÎÆýø¶´Ù ÀÚµ¿À¸·Î ½ÇÇàµÈ´Ù. (rpmÀ¸·Î ¼³Ä¡ÇÑ »ç¶÷Àº ÀÚµ¿À¸·Î
µÇ¾î ÀÖ´Ù.)
MySQL ¼³Ä¡ ´Ü°è¿¡¼ mysql_install_db ´Ü°è°¡ ±ÇÇÑ¿¡ ´ëÇÑ Å×À̺íÀ» ¼³Ä¡ÇÏ´Â ´Ü°è¶ó°í ÇÏ¿´´Ù. MySQLÀ» óÀ½ ¼³Ä¡Çϸé root¸¸ÀÌ MySQLÀ» »ç¿ëÇϵµ·Ï ±ÇÇÑÀÌ Á־ ÀÖ´Ù. ÀÏ´Ü ¾î¶² µ¥ÀÌŸ º£À̽ºµéÀÌ ÀÖ´ÂÁö º¸ÀÚ.
% mysqlshow -u root +-----------+ | Databases | +-----------+ | mysql | | test | +-----------+
¡®-u root¡¯°¡ ¹Ù·Î root·Î »ç¿ëÀ» ÇÑ´Ù´Â
¿É¼ÇÀÌ´Ù.
MySQLÀ» óÀ½ ¼³Ä¡Çϸé mysql, test¶ó´Â µÎ °³ÀÇ µ¥ÀÌŸ º£À̽º°¡ ¼³Ä¡µÈ´Ù. mysql¿¡
¾î¶² Å×À̺íÀÌ ÀÖ´ÂÁö º¸ÀÚ.
% mysqlshow -u root mysql Database: mysql +--------------+ | columns_priv | | db | | func | | host | | tables_priv | | user | +--------------+
6 °³ÀÇ Å×À̺íÀÌ ÀÖ´Ù. ÀÌ Áß user Å×À̺íÀÌ »ç¿ëÀÚ¿¡ °üÇÑ Å×À̺íÀÌ´Ù. ÀÌÁ¦ mysqlÀ̶ó´Â Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥À» ÀÌ¿ëÇؼ MySQLÀ» »ç¿ëÇØ º¸ÀÚ.
% mysql -u root mysql>
mysql µ¥ÀÌŸ º£À̽º¸¦ »ç¿ëÇϱâ À§Çؼ ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
mysql> use mysql
±×·³ ´ÙÀ½°ú °°ÀÌ ÇÏ¿©, mysql µ¥ÀÌŸ º£À̽ºÀÇ user Å×ÀÌºí¿¡ ¾î¶² ·¹Äڵ尡 ÀÖ´ÂÁö º¸ÀÚ.
mysql> select * from user ; +-------------+-------+----------------+-------------+- | Host | User | password | Select_priv | +-------------+-------+----------------+-------------+- | localhost | root | | Y | | inos.ml.org | root | | Y | | localhost | | | | N | | inos.ml.org | | | N | +-------------+-------+----------------+-------------+- 7 rows in set (0.00 sec)
À§¿Í ºñ½ÁÇÏ°Ô ³ª¿ÔÀ» °ÍÀÌ´Ù. SQL ¾ð¾î¸¦ Àß ¸ð¸£´Â µ¶ÀÚ¸¦ À§ÇØ ¼³¸íÇÏÀÚ¸é ¡®SELECT ... ¡¯´Â Å×À̺í·Î ºÎÅÍ Ä÷³À» ¸®ÅÏÇ϶ó´Â Äõ¸®ÀÌ´Ù. ¸ðµç Äõ¸®ÀÇ ³¡Àº ¡®;¡¯ ȤÀº ¡®\g¡¯·Î ³¡³´Ù. XXX_priv´Â XXX¿¡ ´ëÇÑ ±ÇÇÑÀ» ³ªÅ¸³½´Ù. Áï Select_priv°¡ ¡®Y¡¯ÀÌ¸é ±× »ç¿ëÀÚ´Â select Äõ¸®¸¦ ¼öÇàÇÒ ¼ö ÀÖÀ½À» ³ªÅ¸³½´Ù.
| Host | User | password | Select_priv | +-------------+-------+------------------+-------------+- | localhost | root | | Y |
À§´Â localhostÀÇ root°¡ Æнº¿öµå´Â ¾ø°í, ¸ðµç ±ÇÇÑÀÌ ÁÖ¾îÁ® ÀÖ´Ù´Â °ÍÀ» ³ªÅ¸³½´Ù. ÇÏÁö¸¸ ¾î¶°ÇÑ À¯Àú¶óµµ
% mysql -u root
¸¸ Çϸé MySQL¿¡ ´ëÇÑ ¸ðµç ±ÇÇÑÀ» °¡Áú ¼ö ÀÖÀ¸¹Ç·Î ¸Å¿ì À§ÇèÇÏ´Ù. ¾ÏÈ£¸¦ ÁöÁ¤ÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.
mysql> UPDATE user SET password = password(¡®»õ·Î¿î¾ÏÈ£¡¯) > WHERE user=¡¯root¡¯ ;
Äõ¸®°¡ ±æ´Ù¸é µÎ ÁÙ¿¡ ³ª´²¼ ½áµµ µÈ´Ù. Äõ¸®ÀÇ ³¡À» ³ªÅ¸³»´Â¡¯;¡¯ ¸¸ ÀÖÀ¸¸é µÈ´Ù.
UPDATE´Â Ä÷³ÀÇ °ªÀ» º¯°æ½ÃÅ°´Â Äõ¸®ÀÌ´Ù. (´ÙÀ½ ±â»ç¿¡ SQL ¾ð¾î¿¡ ´ëÇÑ ¼³¸íÀÌ À̾î Áø´Ù.)MySQLÀº password¸¦ ¾ÏÈ£È ÇÑ´Ù. µû¶ó¼ ¾ÏÈ£¸¦ ÁöÁ¤ÇÒ ¶§´Â password(¡®¾ÏÈ£¡¯) ó·³ password() ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¾ß ÇÑ´Ù.
ÀÌÁ¦ mysqlÀ» Àá½Ã Á¾·áÇÏ°í, ¾ÏÈ£°¡ Á¦´ë·Î µÇ¾ú´ÂÁö È®ÀÎÇØ º¸ÀÚ.
mysql> quit
±ÇÇÑ¿¡ ´ëÇÑ Å×À̺íÀ» º¯°æÇÏ¿´À» °æ¿ì¿¡´Â mysqladminÀ» ÀÌ¿ëÇÏ¿© ²À º¯°æµÈ ±ÇÇÑÀ» ´Ù½Ã ÀÐ¾î µé¿©¾ß ÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
% mysqladmin -u reload
À§´Â ±ÇÇÑÀ» ´Ù½Ã ÀÐ¾î µéÀ̶õ ¸í·ÉÀÌ´Ù. À§¸¦ ¾ÈÇϸé, º¯°æµÇÁö ¾ÊÀº ³»¿ëÀ» °¡Áö°í ÀÖ°Ô µÈ´Ù. ´Ù½Ã mysqlÀ» ½ÇÇà½ÃÄÑ º¸ÀÚ. ÀÌÁ¦ ¾ÏÈ£°¡ ÀÖÀ¸¹Ç·Î -p ¿É¼ÇÀ» ºÙ¿©¾ß ÇÑ´Ù.
% mysql -u root -p
Enter password:
ÀÌÁ¦ »õ·Î¿î »ç¿ëÀÚ¸¦ Ãß°¡ÇØ º¸ÀÚ. »ç¿ëÀÚ°¡ root¸¸ ÀÖ´Â °æ¿ì´Â ¾ø°í, ¸ðµç »ç¿ëÀÚ°¡ ¸ðµç ±ÇÇÑÀ» °®´Â °æ¿ìµµ ¾ø´Ù. »ç¿ëÀÚ¿¡ µû¶ó¼´Â SELECT¸¸ ÇÒ ¼ö ÀÖ´Â ±ÇÇÑÀ» ÁÙ ¶§µµ ÀÖ´Ù. »ç¿ëÀÚ¸¦ Ãß°¡ÇÏ·Á¸é, INSERT .. INTO¸¦ ÀÌ¿ëÇؼ MySQLÀÇ user Å×ÀÌºí¿¡ Ãß°¡¸¦ ÇÏ¸é µÈ´Ù.
% mysql -u root -p mysql Enter password: mysql> INSERT INTO user VALUES(¡®localhost¡¯, ¡®new-user¡¯, password(¡®newpasswd¡¯), ¡®Y¡¯,¡¯Y¡¯,¡¯ Y¡¯,¡¯Y¡¯,¡®Y¡¯,¡¯Y¡¯,¡¯Y¡¯,¡¯Y¡¯,¡¯Y¡¯,¡¯Y¡¯,¡¯Y¡¯,¡¯Y¡¯,¡¯Y¡¯,¡¯Y¡¯) ; Query OK, 1 row affected (0.00 sec)
localhostÀÇ new-user¶ó´Â »ç¿ëÀÚ°¡ newpasswd¶ó´Â ¾ÏÈ£¿Í ¸ðµç ±ÇÇÑÀ¸·Î Ãß°¡µÇ¾ú´Ù. ¸ðµç ±ÇÇÑÀ» ÁÖ°í ½ÍÁö ¾Ê´Ù¸é, ÁÖ°í ½ÍÁö ¾ÊÀº ±ÇÇÑ ºÎºÐÀ» ¡®Y¡¯À¸·Î ÇÏ¸é µÈ´Ù.
¸¸¾à SELECT, INSERT, DELETE¿¡ ´ëÇÑ ±ÇÇѸ¸À» ÁÖ°í ½Í´Ù¸é
mysql> INSERT INTO user (host, user,password, Select_priv, Insert_priv, Delete_priv) -> VALUES (¡®localhost¡¯, ¡®new-user¡¯,password(¡®newpasswd¡¯), ¡¯Y¡¯,¡¯Y¡¯,¡¯Y¡¯) ;
ó·³ ÇÏ¸é ´Ù¸¥ ±ÇÇÑÀº ¸ðµÎ ÀÚµ¿À¸·Î ¡®N¡¯ÀÌ µÈ´Ù. »ç¿ëÀÚ Ãß°¡´Â INSERT¿Ü¿¡ GRANT¸¦ ÀÌ¿ëÇÒ ¼öµµ ÀÖ´Ù.
mysql> GRANT ALL PRIVILEGES ON *.* TO new-user@localhostI DENTIFIED BY ¡®newpasswd¡¯ WITH GRANT OPTION ;
À§´Â localhostÀÇ new-user°¡ newpasswd¶ó´Â ¾ÏÈ£·Î ¸ðµç ±ÇÇÑÀ» °®´Â´Ù´Â °ÍÀ» ³ªÅ¸³½´Ù.
mysql> GRANT RELOAD, PROCESS ON *.* TO new-user@localhost ;
´Â localhostÀÇ new-user°¡ RELOAD¿Í PROCESSÀÇ ±ÇÇÑÀ» °®´Â´Ù´Â ³ªÅ¸³½´Ù.
INSERT¿Í GRANT Áß ¾î´À °ÍÀ» ½áµµ »ó°ü¾ø´Ù.
À§¿¡¼ ±ÇÇÑÀÌ ¹Ù²î¸é mysqladmin reload¸¦ ÀÌ¿ëÇؼ ¹Ù²ï ±ÇÇÑÀ» Àû¿ëÇØ¾ß ÇÑ´Ù°í Çß´Ù. ÇÏÁö¸¸, ´ÙÀ½°ú °°ÀÌ ÇÒ ¼öµµ ÀÖ´Ù.
mysql> FLUSH PRIVILEGES ;
Áö±Ý±îÁö MySQLÀÇ Æ¯Â¡°ú ¼³Ä¡¹ý, ¼³Á¤ ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æ º¸¾Ò´Ù. ´ÙÀ½ ½Ã°£¿¡´Â SQL ¾ð¾î¿¡ ´ëÇؼ °øºÎ¸¦ ÇÑ´Ù. ±ÛÀ» ÀÐÀ¸¸é¼ ¸ð¸£´Â Á¡ÀÌ ÀÖ´Ù¸é ¼½¿Ä¡ ¸»°í ÇÊÀÚ¿¡°Ô ¸ÞÀÏÀ» º¸³»Áֱ⠹ٶõ´Ù.
¸¶Áö¸·À¸·Î ¾ÏÈ£¸¦ ÀØ¾î ¹ö·ÈÀ» °æ¿ì, ¾î¶»°Ô ÇØ°áÇÒ Áö¿¡ ´ëÇؼ ¼³¸íÀ» ÇÏ°Ú´Ù. ¾ÏÈ£¸¦ Àؾî¹ö¸®°í¼, ³°¨ÇØ ÇÏ´Â »ç¶÷µéÀ» ¸¹ÀÌ ºÃ´Ù. °Ô Áß¿¡´Â ¾Æ¿¹ MySQLÀ» Áö¿ì°í »õ·Î ¼³Ä¡ÇÏ´Â »ç¶÷µµ ÀÖ´Ù. ½Ã°£ÀÌ ³²´Â »ç¶÷À̶ó¸é »õ·Î ¼³Ä¡Çصµ µÇ°ÚÁö¸¸, ½Ã°£ÀÌ ³²¾Æµµ Áß¿äÇÑ µ¥ÀÌŸ°¡ ÀÖÀ» °æ¿ì´Â »õ·Î ±òÁö ¸øÇÒ °ÍÀÌ´Ù. ÀÌ·± °æ¿ì ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.
¸ÕÀú MySQL µ¥¸óÀÌ ½ÇÇà ÁßÀ̶ó¸é, µ¥¸óÀÇ ½ÇÇàÀ» ÁßÁöÇÑ´Ù. ±×ÈÄ, µ¥¸óÀ» ´Ù½Ã ½ÇÇà½ÃÅ°´Âµ¥, ±ÇÇÑ¿¡ ´ëÇÑ °Ë»ç¸¦ ÇÏÁö ¾Ê°í ½ÇÇàÀ» ½ÃŲ´Ù.
% safe_mysqld -Sg &
-Sg°¡ ¹Ù·Î ±ÇÇÑ °Ë»ç¸¦ ÇÏÁö ¾Ê´Â´Ù´Â ¿É¼ÇÀÌ´Ù. ÀÌÁ¦ mysqlÀ» ÀÌ¿ëÇؼ ¾ÏÈ£¸¦ Á¦°ÅÇØ ÁÖ¸é µÈ´Ù. ±×ÈÄ mysqladmin reload¸¦ ÀÌ¿ëÇؼ ¹Ù²ï ±ÇÇÑÀ» Àû¿ëÇØÁÖ°í ´Ù½Ã µ¥¸óÀ» ½ÇÇà½ÃÅ°¸é µÈ´Ù.
[ ÇÊÀÚ¼Ò°³ ] ÇãÁ¤¼ö´ÔÀº ¼þ½Ç´ëÇб³ ÄÄÇ»ÅÍÇкο¡ ÀçÇÐÁßÀÌ¸ç ¸®´ª½º Æ÷Ä¿½º ÀÚ¿øºÀ»çÀڷεµ È°µ¿ÇÏ°í ÀÖ´Ù. ¸®´ª½º Ä¿³Î°ú µ¥ÀÌŸº£À̽º¿¡ °ü½ÉÀÌ ¸¹´Ù°í ÇÑ´Ù.