[MySQL] mysqld_multi »ç¿ë¹ý - ÀÛ¼ºÀÚ : ±èÄ¥ºÀ - ÀÛ¼ºÀÏ : 2002.02.09(¿ÀŸ¼öÁ¤, º¸¿Ï) : 2003.01.29 - ºÐ ·ù : mysql - ¼ö ÁØ : ÃÊÁß±ÞÀÌ»ó - ³» ¿ë : ÇϳªÀÇ ¼­¹ö¿¡¼­ ¿©·¯°³ÀÇ mysqld µ¥¸óÀ» ¶ç¿ì´Â ¹æ¹ý - Å°¿öµå : mysql, mysqld, mysqld_multi, safe_mysqld, mysqld_safe *ÁÖ1) ÀÌ ¹®¼­¿¡ ´ëÇÑ ÃֽŠ³»¿ëÀº ¾Æ·¡ URL¿¡¼­ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. http://www.linuxchannel.net/docs/mysqld_multi.txt *ÁÖ2) ÀÌ ¹®¼­ÀÇ ³»¿ëÀº °°Àº ÇϳªÀÇ MySQL ¼­¹ö¿¡¼­ ¿©·¯°³ÀÇ mysqld µ¥¸óÀ» ¶ç¿ì´Â ¹æ¹ý¿¡ ´ëÇؼ­ ¼³¸íÇÕ´Ï´Ù. mysql ¼³Ä¡³ª ½ÇÁ¦ ½Ç¹«¿¡¼­ ´Ù·ç´Â °íÂ÷¿øÀûÀÌ°í »ó¼¼ÇÑ ±â¼úÀûÀÎ ºÎºÐÀº ´Ù·çÁö ¾Ê½À´Ï´Ù. *ÁÖ3) `mysqld_multi` ÇÁ·Î±×·¥Àº MySQL 3.23.29 ÀÌ»ó ¹öÀü¿ëÀÔ´Ï´Ù. reference : - http://www.mysql.com/doc/en/mysqld_multi.html - http://www.mysql.com/doc/en/Multiple_servers.html --------------------------------------------------------- ¸ñÂ÷ 1. mysqld multi ¶õ? 2. ¼­·Î ´Ù¸¥ ¿©·¯°³ÀÇ mysqld¸¦ ¶ç¿ì´Â ¹æ¹ý(±âº») 3. mysqld_multi À» ÀÌ¿ëÇÏ¿© ¿©·¯°³ÀÇ mysqld ¶ç¿ì´Â ¹æ¹ý 4. MySQL 3.23.x¿Í MySQL 4.0.x À» µ¿½Ã¿¡ ±¸µ¿ÇÏ´Â ¹æ¹ý 5. °øÀ¯ÇÑ ÇϳªÀÇ DB¿¡ ·£´ýÇÏ°Ô Á¢¼ÓÇÏ´Â ¹æ¹ý 6. Èıâ --------------------------------------------------------- 1. mysqld multi ¶õ? `mysqld_multi'¶ó´Â PERL ½ºÅ©¸³Æ®(3.23.29 ÀÌ»ó)¸¦ ÀÌ¿ëÇÏ¿© °°Àº ¼­¹ö¿¡¼­ ¿©·¯°³ÀÇ µ¶ÀÚÀûÀÎ mysqld¸¦ ¿î¿µÇÏ´Â ¹æ¹ýÀ» ¸»ÇÕ´Ï´Ù. Á¤È®È÷ ¸»Çؼ­, mysql Æ÷Æ®³ª ¼ÒÄÏÀ» ¼­·Î ´Þ¸®ÇÏ¿© ¿©·¯°³ÀÇ mysqld ÇÁ·Î¼¼½º¸¦ ¶ç¿ö ¿î¿µÇÏ´Â ¹æ¹ýÀ» ¸»ÇÕ´Ï´Ù. httpd¿¡¼­ 80, 8080 Æ÷Æ®·Î ¿î¿µÇÏ´Â °ÍÀ̳ª ¶Ç´Â sendmail¿¡¼­ daemonport¸¦ ¼­·Î ´Þ¸®ÇÏ¿© ¿î¿µÇÏ´Â ¹æ¹ý°ú ºñ½ÁÇÑ ¿ø¸®ÀÔ´Ï´Ù. 2. ¼­·Î ´Ù¸¥ ¿©·¯°³ÀÇ mysqld¸¦ ¶ç¿ì´Â ¹æ¹ý(±âº») <ÁÖÀÇ> ÀÌ ÀýÀÇ ³»¿ëÀº ¿©·¯°³ÀÇ mysqld µ¥¸óÀ» ¶ç¿ì´Â ±âº» »çÇ׿¡ ´ëÇؼ­ ´Ù·ì´Ï´Ù. ½ÇÁ¦·Î ÀÌ·¸°Ô ¿î¿µÇÒ ¼öµµ ÀÖÁö¸¸ ¾à°£ ºÒÆíÇϱ⠶§¹®¿¡ ±ÇÀå¹æ¹ýÀº ¾Æ´Õ´Ï´Ù. µû·Î mysqlÀ» Ãß°¡·Î ÄÄÆÄÀÏÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ±âÁ¸ÀÇ safe_mysqld ½ºÅ©¸³Æ®¸¦ ÀÌ¿ëÇÏ¸é µË´Ï´Ù. À̶§ Áß¿äÇÑ Á¡Àº ¹Ýµå½Ã ÃÖ¼ÒÇÑ pid-file, socket À§Ä¡¸¦ ¼­·Î ´Ù¸£°Ô ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. *¹Ýµå½Ã ´Ù¸£°Ô ¼³Á¤ÇؾßÇÒ ¿É¼Ç) --pid-file= --socket= --port= or --skip-network ³ª¸ÓÁö ¿É¼ÇÀº mysqlÀ» ÄÄÆÄÀÏÇÒ¶§ ±âº»°ªÀ¸·Î »ç¿ëÇÏ´Â °ªÀ» µû¸£°Å³ª my.cnf ÆÄÀÏÀÇ [mysqld] ¼½¼Ç¿¡ ¼³Á¤ÇÑ ¿É¼ÇÀ» µû¸¨´Ï´Ù. <ÆÁ> ¿ÜºÎ MySQL client¿¡¼­ Á¢¼ÓÀ» ¿øõ ºÀ¼âÇÏ·Á¸é? mysql.host Å×À̺í°ú »ó°ü¾øÀÌ ¾Æ¿¹ mysql Æ÷Æ®¸¦ ¿­Áö¾Êµµ·Ï --skip-network ¿É¼ÇÀ» ÁÖ°í mysqld¸¦ ½ÃÀÛÇÏ¸é µË´Ï´Ù. (`netstat -atnp`·Î È®ÀÎ). ÀÌÇÏ ¼³¸íÀº ¿ÜºÎ mysql client¿¡¼­ Á¢¼ÓÇØ ¿À´Â °æ¿ì°¡ ¾Æ´Ñ ³»ºÎ client ¿¡¼­ Á¢¼ÓÇÏ´Â °æ¿ì·Î °¡Á¤ÇÏ°Ú½À´Ï´Ù. ¸¸¾à ¿ÜºÎ mysql client(´ëºÎºÐ À¥¼­¹ö)¿¡¼­ Á¢¼ÓÇؾ߸¸ ÇÏ´Â °æ¿ì¶ó¸é --skip-network ´ë½Å --port=# ¿É¼ÇÀ¸·Î ¹Ù²Ù¾î¾ß ÇÕ´Ï´Ù. [ù¹ø° mysqld ±¸µ¿] shell> safe_mysqld & or shell> safe_mysqld --defaults-file=/root/.my.cnf & [µÎ¹ø° Ãß°¡ÀûÀÎ mysqld ±¸µ¿] shell> safe_mysqld \ --pid-file=/usr/local/mysql/var/`hostname`.pid2 \ --socket=/tmp/mysql.sock2 \ --skip-network & /*** or --port=3307 ***/ or shell> safe_mysqld \ --defaults-file=/root/.my.cnf \ --pid-file=/usr/local/mysql/var/`hostname`.pid2 \ --socket=/tmp/mysql.sock2 \ --skip-network & /*** or --port=3307 ***/ µÎ¹ø° mysqld¿¡¼­ »ç¿ëµÇ´Â ³ª¸ÓÁö ¿É¼ÇÀº ù¹ø° mysqldÀÇ ±âº» ¿É¼ÇÀ» ±×´ë·Î µû¸¨´Ï´Ù. Áï basedir, datadir ¿Í °°Àº ¿É¼ÇÀ» µû·Î ÁöÁ¤ÇÏÁö ¾Ê¾Ò±â ¶§¹®¿¡ ¾î¶² °ªÀ» »ç¿ëÇÏ´ÂÁö¸¦ ¾Ë¾Æº¸·Á¸é ´ÙÀ½°ú °°ÀÌ È®ÀÎÇØ º¾´Ï´Ù. [±âº»ÀûÀ¸·Î »ç¿ëµÇ´Â °ª ¾Ë¾Æº¸±â] shell> /usr/local/mysql/libexec/mysqld --help ... basedir: /usr/local/mysql/ datadir: /usr/local/mysql/var/ tmpdir: /tmp/ language: /usr/local/mysql/share/mysql/english/ pid file: /usr/local/mysql/var/home.pid TCP port: 3306 Unix socket: /tmp/mysql.sock ... Possible variables for option --set-variable (-O) are: back_log current value: 50 binlog_cache_size current value: 32768 connect_timeout current value: 5 ... [µÎ¹ø° mysqld¿¡ Á¢¼ÓÇØ º¸±â] ÇöÀç µÎ¹ø° mysqldÀÇ datadir ¿É¼ÇÀÌ ¾ø±â ¶§¹®¿¡ ù¹ø° mysqldÀÇ datadir ¿Í °°½À´Ï´Ù. Áï ÇϳªÀÇ datadir¸¦ °øÀ¯ÇÑ ¼ÀÀÌ µË´Ï´Ù. *ÇÁ·Î¼¼½º È®ÀÎ) shell> ps -ef --cols 400 | grep mysqld *¼ÒÄÏ È®ÀÎ) shell> ls /tmp/mysql.sock* /tmp/mysql.sock /tmp/mysql.sock2 *Á¢¼ÓÇØ º¸±â) shell> mysql -u username -p -S /tmp/mysql.sock2 db_name '-S'(¶Ç´Â --socket) ¿É¼ÇÀ¸·Î µÎ¹ø° mysqldÀÇ ¼ÒÄÏ À§Ä¡¸¦ ÀÔ·ÂÇØ ÁÖ¸é µË´Ï´Ù. [µÎ¹ø° mysqld Á¾·áÇϱâ] ÀÌ¿Í °°ÀÌ µÎ¹ø°, ¼¼¹ø° mysqld¸¦ ±¸µ¿ÇÏ´Â ¹æ¹ýÀº ¸Å¹ø ¿É¼ÇÀ» Àû¾îÁà¾ß ÇÏ´Â ºÒÆíÇÔÀÌ ÀÖ½À´Ï´Ù(¶ÇÇÑ °ü¸®µµ ½â ¸Å²ô·´Áö ¸øÇÏ°í). ÀÏ´Ü µÎ¹ø° mysqld ±¸µ¿¿¡ ¼º°øÇÏ°í Á¢¼Ó Å×½ºÆ®±îÁö ³¡³Â´Ù¸é ÀÌÁ¦´Â ÇÊ¿ä¾øÀ¸´Ï µÎ¹ø° mysqld¸¦ Á¾·áÇØ º¾½Ã´Ù. Á¾·áµµ °£´ÜÇÕ´Ï´Ù. ´ÜÁö ¼ÒÄÏ À§Ä¡¸¸ Ãß°¡ ¿É¼ÇÀ» ÁÖ¸é µË´Ï´Ù. shell> mysqladmin -u root -p -S /tmp/mysql.sock2 shutdown 3. mysqld_multi À» ÀÌ¿ëÇÏ¿© ¿©·¯°³ÀÇ mysqld ¶ç¿ì´Â ¹æ¹ý mysqld_multi ÇÁ·Î±×·¥Àº PERL·Î Â¥¿©Á® ÀÖÀ¸¸ç, PREFIX/bin/mysqld_multi¿¡ À§Ä¡ÇÕ´Ï´Ù. (MySQL 3.23.29 ¹öÀüºÎÅÍ Ãß°¡µÇ¾ú±º¿ä.) mysql.server ¶Ç´Â safe_mysqld ½ºÅ©¸³Æ®´Â ±âº»ÀûÀ¸·Î /etc/my.cnf ¶Ç´Â ~/.my.cnf ¶Ç´Â PREFIX/var/my.cnf ¼³Á¤ ÆÄÀÏ¿¡¼­ [mysqld] ¼½¼ÇÀÇ ¿É¼Ç ³»¿ë À» Àоîµé¿© mysqld ¸¦ ±¸µ¿ÇÕ´Ï´Ù. <ÁÖÀÇ> MySQL 4.0.x ¹öÀüÀº safe_mysqld°¡ ¾Æ´Ï¶ó mysqld_safeÀ¸·Î ½ºÅ©¸³Æ® À̸§ÀÌ º¯°æµÇ¾ú½À´Ï´Ù. ÀÌÇÏ mysql ¼³Á¤ÆÄÀÏ(my.cnf)Àº /root/.my.cnfÀ¸·Î ÅëÀÏÇÕ´Ï´Ù. ¹Ý¸é mysqld_multi ½ºÅ©¸³Æ®´Â [mysqld_multi], [mysqld1], [mysqld2], ..., [mysqld] ÀÇ ¼½¼ÇÀ» Âü°íÇÕ´Ï´Ù. Á¤¸®Çϸé, `safe_mysqld' <-- [mysqld] <-- defaults options `mysqld_multi' <-- [mysqld_multi] |-- [mysqld1] <-- ([mysqld]) <-- defaults options |-- [mysqld2] <-- ([mysqld]) <-- defaults options |-- [mysqld3] <-- ([mysqld]) <-- defaults options `-- [mysqld#] <-- ([mysqld]) <-- defaults options ÀÌ¿Í °°Àº À§°è·Î °¢ ¼½¼ÇÀ» Âü°íÇÏ¿© mysqld¸¦ ±¸µ¿ÇÕ´Ï´Ù. (°ýÈ£¾ÈÀÇ ¼½¼ÇÀº ±× ¼½¼ÇÀÌ ÀÖ´Ù¸é Âü°íÇÑ´Ù´Â ¿É¼ÇÀÔ´Ï´Ù.) mysqld_multi ¸¦ »ç¿ëÇϱâ À§Çؼ­ /root/.my.cnf ÆÄÀÏ¿¡ ´ÙÀ½°ú °°ÀÌ Ãß°¡ÇØ¾ß ÇÕ´Ï´Ù(¾ø´Ù¸é ÆÄÀÏ »ý¼º). shell> /usr/local/mysql/bin/mysqld_multi --example ÇÏ¸é ±× ¿¹Á¦°¡ Ãâ·ÂµË´Ï´Ù. -- /root/.my.cnf ¶Ç´Â /etc/my.cnf (¼öÁ¤Àü) ---------- [client] password = ¾È °¥ÃÄÁ¶¿À.. host = localhost [mysql] ignore-spaces [mysqld] default-character-set = euc_kr safe-show-database skip-name-resolve #port = 3306 skip-network log #log-update user = mysql set-variable = key_buffer=256M set-variable = thread_cache_size=8 set-variable = table_cache=256 [myisamchk] set-variable = key_buffer=100M set-variable = sort_buffer=100M set-variable = read_buffer=3M set-variable = write_buffer=3M #set-variable = sort_key_blocks=20 #set-variable = decode_bits=10 [mysqladmin] #set-variable = connect_timeout=100 #set-variable = shutdown_timeout=1 [mysqldump] user = root ----------------------------------------------------- -- /root/.my.cnf ¶Ç´Â /etc/my.cnf (¼öÁ¤ÈÄ) ---------- [client] (»ý·«)... [mysql] (»ý·«)... [mysqld] default-character-set = euc_kr skip-name-resolve skip-network ## only localhost access language = /usr/local/mysql/share/mysql/english (»ý·«)... [mysqld_multi] mysqld = /usr/local/mysql/bin/safe_mysqld mysqladmin = /usr/local/mysql/bin/mysqladmin #user = root [mysqld1] socket = /tmp/mysql.sock1 #port = 3307 pid-file = /usr/local/mysql/var/mysqld1.pid datadir = /usr/local/mysql/var log = /usr/local/mysql/var/mysqld1.log user = mysql [mysqld2] socket = /tmp/mysql.sock2 #port = 3308 pid-file = /usr/local/mysql/var2/mysqld2.pid datadir = /usr/local/mysql/var2 log = /usr/local/mysql/var2/mysqld2.log user = mysql [myisamchk] (»ý·«)... [mysqladmin] (»ý·«)... [mysqldump] (»ý·«)... ----------------------------------------------------- ¾ÕÀÇ ¼³Á¤¿¡¼­ [mysqld1]Àº datadirÀÌ ±âÁ¸ÀÇ [mysqld] ¼½¼Ç°ú µ¿ÀÏÇϹǷΠÇϳªÀÇ datadirÀ» °øÀ¯ÇÏ°Ú´Ù´Â ÀǹÌÀÔ´Ï´Ù. [mysqld2]ÀÇ datadirÀº ¼­·Î ´Ù¸£¹Ç·Î ¾ÆÁÖ µ¶ÀÚÀûÀÎ µ¥ÀÌÅͺ£À̽º¸¦ ¿î¿µ ÇÏ°Ú´Ù´Â ÀǹÌÀÔ´Ï´Ù. ¿¹) [mysqld2]¿ë datadir ¸¸µé±â shell> mkdir /usr/local/mysql/var2 shell> /usr/local/mysql/bin/mysql_install_db \ --datadir=/usr/local/mysql/var2 shell> chown mysql.mysql -R /usr/local/mysql/var2 ÀÌ¿Í °°ÀÌ ±âº» mysql µ¥ÀÌÅͺ£À̽º¸¦ ¸¸µé¾î ÁÖ¸é µË´Ï´Ù. MySQL ¿µ¹® ¸Å´º¾ó¿¡ ÀÇÇϸé [mysqld_multi] ¼½¼Ç¿¡ multi_admin À¯Àú¸¦ ´ÙÀ½°ú °°ÀÌ ±âÁ¸ÀÇ MySQL¿¡ Ãß°¡ÇÏ¿© °ü¸®Çϵµ·Ï ÇÏ´Â ¿¹Á¦°¡ ÀÖ½À´Ï´Ù. shell> mysql -u root -S /tmp/mysql.sock -proot_password -e \ "GRANT SHUTDOWN ON *.* TO multi_admin@localhost \ IDENTIFIED BY 'multipass'" ±×·¯³ª ¹Ýµå½Ã ÀÌ¿Í °°ÀÌ multi_admin À¯Àú¸¦ Ãß°¡ÇÒ ÇÊ¿ä´Â ¾ø°í ±âÁ¸ÀÇ root À¯Àú¸¦ ÀÌ¿ëÇÏ¸é ±×¸¸ÀÔ´Ï´Ù. <Âü°í> [mysqld1] ¼½¼Ç¿¡¼­ user´Â ÇØ´ç mysqldÀÇ ÇÁ·Î¼¼½º À¯Àú¸¦ ÀǹÌÇÕ´Ï´Ù. /etc/passwd ÆÄÀÏ¿¡ Á¸ÀçÇÑ ´Ù¸¥ À¯Àú·Îµµ ¼³Á¤°¡´ÉÇÕ´Ï´Ù. ¸¸¾à ÇϳªÀÇ À¯Àú¿¡ ´ëÇÑ ¾î¶² Á¦ÇÑ(ulimt)ÀÌ ÀÖ´Ù¸é mysql À¯Àú ´ë½Å ´Ù¸¥ À¯Àú¸¦ /etc/passwd ÆÄÀÏ¿¡ Ãß°¡ÇÏ°í ÇØ´ç À¯Àú¸¦ »ç¿ëÇÏ¸é µË´Ï´Ù. ±×·³ µÎ¹ø° [mysqld1], ¼¼¹ø° [mysqld2] mysqld¸¦ ±¸µ¿ÇØ º¾½Ã´Ù. shell> /usr/local/mysql/bin/mysqld_multi --help ... Usage: mysqld_multi [OPTIONS] {start|stop|report} [GNR,GNR,GNR...] or mysqld_multi [OPTIONS] {start|stop|report} [GNR-GNR,GNR,GNR-GNR,...] .. GNRÀº 'Group NumbeR'¸¦ ÀǹÌÇϸç [mysqld#]¿¡¼­ # ºÎºÐÀ» ¸»ÇÕ´Ï´Ù. Áï Á¤¼ö ´ÜÀ§·Î 1ºÎÅÍ °¡´ÉÇϸç GNR ¿É¼ÇÀÌ ¾ø´Ù¸é ¸ðµç GNRÀ» ±âº»°ªÀ¸·Î »ç¿ëÇÕ´Ï´Ù. *mysqld ±¸µ¿Çϱâ) shell> /usr/local/mysql/bin/mysqld_multi start or shell> /usr/local/mysql/bin/mysqld_multi start 1,2 *±¸µ¿È®ÀÎ) shell> /usr/local/mysql/bin/mysqld_multi report Reporting MySQL servers MySQL server from group: mysqld1 is running MySQL server from group: mysqld2 is running *µÎ¹ø° mysqld¿¡ Á¢¼ÓÇϱâ shell> mysql [OPTIONS] -S /tmp/mysql.sock1 db_name *¼¼¹ø° mysqld¿¡ Á¢¼ÓÇϱâ shell> mysql [OPTIONS] -S /tmp/mysql.sock2 db_name *µÎ¹ø° mysqld Á¾·áÇϱâ) shell> /usr/local/mysql/bin/mysqld_multi stop 1 *µÎ¹ø°, ¼¼¹ø° mysqld Á¾·áÇϱâ) shell> /usr/local/mysql/bin/mysqld_multi stop 1,2 *¸ðµç mysqld multi Á¾·áÇϱâ) shell> /usr/local/mysql/bin/mysqld_multi stop or shell> /usr/local/mysql/bin/mysqld_multi stop 1,2 mysqld_multi´Â safe_mysqld¿Í º°°³ÀÔ´Ï´Ù. ¾î¶² ¿É¼ÇÀ» ÁÖ°í ±¸µ¿ÇÏ´À³Ä¿¡ µû¶ó¼­ µÎ°³°¡ ¼­·Î ¿¬°è¸¦ °®À» ¼ö ÀÖÁö¸¸ Á¤È®È÷ ¸»ÇÏ¸é µÎ°³ÀÇ µ¶¸³µÈ º°°³ÀÇ mysqld ÀÔ´Ï´Ù. Áï, shell> safe_mysqld & shell> mysqld_multi start shell> mysqladmin shutdown shell> mysqld_multi stop ÀÌ¿Í °°ÀÌ º°µµ·Î °¢°¢ ±¸º°ÇÏ¿© ½ÃÀÛ/Á¾·áÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à ÀÌ¿Í °°ÀÌ °¢°¢ ¼­·Î ±¸º°ÇÏ¿© ¿î¿µÇÏ°í ½ÍÁö ¾Ê´Ù¸é ±âÁ¸ÀÇ safe_mysqlÀÇ [mysqld] ¼½¼ÇÀ» mysqld_multi ¿ëÀÇ [mysqld1]À¸·Î ¼öÁ¤ÇÏ¿© ±âº» mysqld·Î ¿î¿µÇÒ ¼ö ÀÖ½À´Ï´Ù. <Âü°í> ºÎÆýà ÀÚµ¿ ½ÃÀÛÇϱâ(/etc/rc.d/rc.local) /usr/local/mysql/bin/mysqld_multi \ --defaults-file=/root/.my.cnf start 4. MySQL 3.23.x¿Í MySQL 4.0.x À» µ¿½Ã¿¡ ±¸µ¿ÇÏ´Â ¹æ¹ý Áö±Ý±îÁöÀÇ ³»¿ëÀ» ÀÌÇØÇß´Ù¸é µÎ°³ÀÇ ¼­·Î ´Ù¸¥ MySQL ¹öÀüÀ» ±¸µ¿ÇÏ´Â ¹æ¹ýÀº ¾ÆÁÖ ½±½À´Ï´Ù. MySQL 3.23.x : /usr/local/mysql MySQL 4.0.x : /usr/local/mysql4 ¿¡ °¢°¢ ¼³Ä¡Çß´Ù´Â °¡Á¤ÀÔ´Ï´Ù. <ÁÖÀÇ> MySQL 4.0.x ¹öÀüÀº safe_mysqld°¡ ¾Æ´Ï¶ó mysqld_safeÀ¸·Î ½ºÅ©¸³Æ® À̸§ÀÌ º¯°æµÇ¾ú½À´Ï´Ù. -- /root/.my.cnf ¶Ç´Â /etc/my.cnf ---------------- [client] (»ý·«)... [mysql] (»ý·«)... [mysqld] (»ý·«)... [mysqld_multi] mysqld = /usr/local/mysql4/bin/mysqld_safe ## <-- ÁÖÀÇ mysqladmin = /usr/local/mysql4/bin/mysqladmin #user = root [mysqld1] socket = /tmp/mysql4.sock1 #port = 3307 skip-name-resolve skip-network ## only localhost access default-character-set = euc_kr pid-file = /usr/local/mysql4/var/mysqld1.pid datadir = /usr/local/mysql4/var language = /usr/local/mysql4/share/mysql/english log = /usr/local/mysql4/var/mysqld1.log user = mysql [myisamchk] (»ý·«)... [mysqladmin] (»ý·«)... [mysqldump] (»ý·«)... ----------------------------------------------------- *MySQL 3.23.x ±¸µ¿ shell> safe_mysqld & *MySQL 4.0.x ±¸µ¿ shell> mysqld_multi start ÇÊÀÚ°¡ ÀÌ ¹æ¹ýÀ» ¼Ò°³ÇÑ ÀÌÀ¯´Â MySQL 4.0.x ¹öÀüÀ¸·Î ¾÷±×·¹À̵åÇÒ °æ¿ì °ü¸®ÀÚ°¡ Á¶¿ëÇÏ°Ô(?) Å×½ºÆ®ÇØ º¸¾Æ, ÀÌ»óÀÌ ¾ø´Ù¸é ¾Æ¹«µµ ¸ð¸£°Ô(?) Á¶¿ëÇÏ°Ô ¾÷±×·¹À̵åÇÒ ¼ö ÀÖ´Ù´Â Á¡ÀÔ´Ï´Ù. ¹°·Ð ´ÙÀ½ÀÇ URLÀ» ¸ÕÀú ¾Ë¾ÆµÎ¾î¾ß ÇÕ´Ï´Ù. - http://www.mysql.com/doc/en/Upgrading-from-3.23.html 5. °øÀ¯ÇÑ ÇϳªÀÇ DB¿¡ ·£´ýÇÏ°Ô Á¢¼ÓÇÏ´Â ¹æ¹ý ÀÌ ¹æ¹ýÀÇ ¼­·Î ´Ù¸¥ ¿©·¯°³ÀÇ mysqld µ¥¸óÀÇ datadirÀ» ¸ðµÎ µ¿ÀÏÇÏ°Ô ¼³Á¤ÇÏ¿© ¿î¿µÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. ¿©·¯°³ÀÇ mysqld µ¥¸óÀ» ¶ç¾î¾ß ÇϹǷΠ½Ã½ºÅÛ¿¡ ÃæºÐÇÑ ¸Þ¸ð¸®°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù(512M ÀÌ»ó). *±ÇÀå ÇÏ´Â °æ¿ì) 1. ½Ã½ºÅÛ ºÎÇÏ°¡ ±Øµµ·Î ³ôÁö ¾Ê´Â °æ¿ì. 2. Çϳª(socket)ÀÇ mysqld·Î ½Ã½ºÅÛÀ» ¿î¿µÇϱ⿡´Â ÀÚ¿øÀÌ ³²´Â °æ¿ì 3. ÇϳªÀÇ mysqld·Î ¼­ºñ½º°¡ Æ÷È­ »óÅÂÀÎ °æ¿ì 4. ±âŸ Å×½ºÆ®·Î Àüº¸´Ù ³´Àº ¼º´ÉÀ» ³¾ °æ¿ì <ÁÖÀÇ> ÇÊÀÚ°¡ Å×½ºÆ®ÇØ º» ¹Ù·Î´Â ½Ã½ºÅÛ ºÎÇÏ(CPU »ç¿ë·® 95%ÀÌ»ó)°¡ ½ÉÇÑ °æ¿ì, ÁÁÀº ´ë¾ÈÀÌ µÉ ¼ö ¾ø½À´Ï´Ù(Å« È¿°ú°¡ ¾øÀ½). (¿©·¯°³ÀÇ mysqld µ¥¸óÀ» ¶ç¿ìÁö ¾Ê¾Æµµ ¾ó¸¶µçÁö ³ôÀº ÆÛÆ÷¸Õ½º¸¦ ³¾ ¼ö ÀÖ½À´Ï´Ù) ´Ù¸¸, ÀÌ ¹æ¹ýÀº ¿©·¯°¡Áö ´õ ¸¹Àº Å×½ºÆ®¸¦ Çغ¸¾Æ, Àüº¸´Ù Á»´õ ³´Àº ¼º´ÉÀ» ³¾ °æ¿ì¿¡¸¸ »ç¿ëÇϵµ·Ï Çϼ¼¿ä. -- /root/.my.cnf ¶Ç´Â /etc/my.cnf ---------------- [client] (»ý·«)... [mysql] (»ý·«)... [mysqld] default-character-set = euc_kr skip-name-resolve skip-network ## only localhost access datadir = /usr/local/mysql/var language = /usr/local/mysql/share/mysql/english user = mysql (»ý·«)... [mysqld_multi] mysqld = /usr/local/mysql/bin/safe_mysqld mysqladmin = /usr/local/mysql/bin/mysqladmin #user = root [mysqld1] socket = /tmp/mysql.sock1 #port = 3307 pid-file = /usr/local/mysql/var/mysqld1.pid log = /usr/local/mysql/var/mysqld1.log [mysqld2] socket = /tmp/mysql.sock2 #port = 3308 pid-file = /usr/local/mysql/var/mysqld2.pid log = /usr/local/mysql/var/mysqld2.log [mysqld3] socket = /tmp/mysql.sock3 #port = 3309 pid-file = /usr/local/mysql/var/mysqld3.pid log = /usr/local/mysql/var/mysqld3.log [myisamchk] (»ý·«)... [mysqladmin] (»ý·«)... [mysqldump] (»ý·«)... ----------------------------------------------------- ¾ÕÀÇ ¼³Á¤À» ¿ä¾àÇÏ¸é °¢ ±×·ì [mysqld#]´Â datadir ¿É¼ÇÀÌ ¾øÀ¸¹Ç·Î [mysqld] ¼½¼ÇÀÇ datadir¸¦ ±×´ë·Î µû¸¨´Ï´Ù. Áï ¸ðµÎ °°Àº ÇϳªÀÇ datadirÀ» °øÀ¯ÇÏ´Â °á°ú°¡ µË´Ï´Ù. ¶ÇÇÑ log ¿É¼ÇÀ» »ý·«ÇÏ¸é ±âº» [mysqld] ¼½¼ÇÀÇ log ¿É¼ÇÀ» µû¸¨´Ï´Ù. ¾ÕÀÇ ¿¹Á¦´Â Á¢¼Ó È®ÀÎÀ» ¾Ë¾Æº¸±â À§Çؼ­ °¢°¢ ´Ù¸¥ log ÆÄÀÏ¿¡ ±â·Ï Çϵµ·Ï ÇßÀ» »ÓÀÔ´Ï´Ù. ¸¸¾à ÇϳªÀÇ À¯Àú·Î ¸ðµÎ ±¸µ¿ÇÏ°í ½ÍÁö ¾Ê´Ù¸é °¢ [mysqld#] ¼½¼Ç¿¡ ÇØ´ç user ¿É¼ÇÀ» ¼³Á¤ÇØ ÁÖ¸é µË´Ï´Ù. (ÇϳªÀÇ À¯Àú´ç ÆÄÀÏ Á¦ÇѼö°¡ ÀûÀ» °æ¿ì) shell> mysqld_multi start ÀÌ·¸°Ô ¸í·É¾î¸¦ ³»¸®¸é Ãß°¡·Î 3°³ÀÇ °¢°¢ µ¶¸³µÈ mysqld°¡ ±¸µ¿µÇ¸ç, ¸ðµÎ µ¿ÀÏÇÑ ÇϳªÀÇ datadir¸¦ °øÀ¯ÇÕ´Ï´Ù. ¸¸¾à 1, 2¹ø mysqld¸¸ ½ÃÀÛÇϵµ·Ï ÇÏ°í ½Í´Ù¸é shell> mysqld_multi start 1,2 ÀÌ·¸°Ô Ãß°¡ ¿É¼ÇÀ» ÁÖ¸é µË´Ï´Ù. shell> mysqld_multi report ¾ÕÀÇ ¸í·É¾î·Î 3°³ ¸ðµÎ ±¸µ¿ÇÏ´ÂÁö È®ÀÎÇØ º¸µµ·Ï Çϼ¼¿ä. ÀÌÁ¦´Â ·£´ýÇÏ°Ô 1, 2, 3¹ø¿¡ Á¢¼ÓÇϵµ·Ï socket ÆÄÀϸ¸ ·£´ýÇÏ°Ô ¼±ÅÃÇØ ÁÖ¸é µË´Ï´Ù. ¸¸¾à PHP·Î Á¢±ÙÇÑ´Ù¸é(°Ë»ö¿¡¸¸ Àû¿ë), ---------------------------------------------------- ---------------------------------------------------- ÀÌ·¸°Ô Á¢¼ÓÇÏ´Â ±âº» socket ÆÄÀÏ À§Ä¡¸¦ ·£´ýÇÏ°Ô ¸¸µé¾î ÁÖ¸é µË´Ï´Ù. ¸¸¾à °¢°¢ datadirÀÌ ¼­·Î ´Ù¸£°í µ¶ÀÚÀûÀ¸·Î ¸ðµÎ º°°³ÀÇ MySQL ¼­ºñ½º¸¦ ÇÑ´Ù¸é, °ü¸®ÀÚ Ãø¸é¿¡¼­ ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. -- httpd.conf -------------------------------------- ... ... php_value mysql.default_socket "/tmp/mysql.sock1" ... php_value mysql.default_socket "/tmp/mysql.sock2" ... php_value mysql.default_socket "/tmp/mysql.sock3" ---------------------------------------------------- or -- DOCUMENT_ROOT/.htaccess ------------------------- ... php_value mysql.default_socket "/tmp/mysql.sock2" ---------------------------------------------------- 6. Èıâ (»ý·«) EOF