php¿¡¼ MSSQL »ç¿ë | ÀÛ¼ºÀÏ : 2005/12/28 00:22 |
Á¶È¸¼ö : 30045 |
Á¦ ¸ñ : php¿¡¼ MSSQL »ç¿ë ÀÛ¼ºÀÚ : ÁÁÀºÁøÈ£(truefeel, http://coffeenix.net/ ) ÀÛ¼ºÀÏ : 2005.12.27(È) ¼öÁ¤ÀÏ : 2007.07.23(¿ù) Linux¿¡¼ ¼³Ä¡ Ãß°¡ Unix/Linux¿¡¼ FreeTDS ¶óÀ̺귯¸®¸¦ »ç¿ëÇؼ MS SQL°ú Sybase DB¸¦ Çڵ鸵ÇÒ ¼ö ÀÖ´Ù. FreeTDS´Â MSSQL¿¡¼ »ç¿ëÇÏ´Â TDS(Tabular Data Stream) ÇÁ·ÎÅäÄÝÀÇ ¿ÀÇ ¼Ò½º ¹öÀüÀ̶ó°í º¸¸éµÈ´Ù. ÇöÀç TDS 4.2(System 10ÀÌÀü Sybase, MS SQL 6.x), 5.0(Sybase), 7.0, 8.0(MS SQL 2000¿¡ ÇØ´ç) ¹öÀüÀ» Áö¿øÇÑ´Ù. 1. FreeTDS ¼³Ä¡ (FreeBSD ¿¡¼) MS SQLÀ» »ç¿ëÇϱâ À§ÇÑ Unix/Linux ¶óÀ̺귯¸® FreeTDS( http://www.freetds.org/ )ÀÇ php ¸ðµâ ¼³Ä¡´Â FreeBSD¸¦ ±âÁØÀ¸·Î ¼³¸íÇÑ´Ù.
/usr/local/etc/php/extensions.ini ¿¡ extension=mssql.so ÀÌ Ãß°¡µÇ¾î ÀÖÀ» °ÍÀÌ°í, apache Àç½ÇÇàÀ¸·Î À¥ÆäÀÌÁö(php)¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Ù. 2. FreeTDS ¿Í php ¸ðµâ ¼³Ä¡ (Linux ¿¡¼) FreeTDS( http://www.freetds.org/ ) ¿¡¼ ÃֽŠFreeTDS¸¦ ¹Þ´Â´Ù. ( freetds-stable.tgz )
1) php¸¦ »õ·Î ¼³Ä¡ÇÒ °æ¿ì php configureÇÒ ¶§ --with-mssql=/usr/local/freetds ¿É¼Ç¸¸ Ãß°¡ÇÏ°í ÄÄÆÄÀÏÇÏ¸é µÈ´Ù. 2) ±âÁ¸¿¡ ¼³Ä¡µÈ php´Â ±×´ë·Î µÎ°í, mssql ¸ðµâ¸¸ Ãß°¡ÇÒ °æ¿ì php ¼Ò½º¸¦ ¸ÕÀú Ǭ ÈÄ ´ÙÀ½°ú °°Àº °úÁ¤À¸·Î ÁøÇàÇÑ´Ù. ÀÌ ¶§ phpize¿Í php-config ¸í·ÉÀº PATH ¿¡ ÀâÇôÀÖ¾î¾ß ÇÑ´Ù. make install½Ã ȸ鿡 Ç¥½ÃµÈ µð·ºÅ丮¿¡ mssql.so ¸ðµâÀÌ ¼³Ä¡µÈ´Ù.
¸¸¾à PDO¸ðµâ(PHP Data Objects, pdo_dblib.so) ±îÁö ÇÊ¿äÇÏ´Ù¸é ext/pdo_dblib/ µð·ºÅ丮 ¿¡¼ ./configure --with-pdo-dblib=/usr/local/freetds ¸í·ÉÀ¸·Î ÇÑ ÈÄ ¼³Ä¡ÇÏ¸é µÈ´Ù. ¸ðµâ·Î ¼³Ä¡ÇÑ °æ¿ì php.ini ¿¡ ´ÙÀ½À» Ãß°¡ÇÑ´Ù.
3. freetds.conf ¼³Á¤ FreeTDS¿¡¼´Â freetds.conf ÆÄÀÏ¿¡ ȯ°æ¼³Á¤À» ÇÑ´Ù. ÆÄÀÏ Çü½ÄÀº SambaÀÇ smb.conf³ª rsyncdÀÇ rsyncd.conf¿Í ºñ½ÁÇÑ ÇüÅÂÀ̸ç, Á¢¼ÓÇÒ MSSQL Server¿Í log ÆÄÀÏ °æ·Î, ¹®ÀÚ¼Â, connection timeout ½Ã°£ µîÀ» ¼³Á¤ÇÑ´Ù. FreeBSD ports ½Ã½ºÅÛÀ¸·Î ¼³Ä¡½Ã /usr/local/etc/freetds.conf ¿¡, Linux¿¡¼ 2¹ø °úÁ¤À¸·Î ¼³Ä¡Çß´Ù¸é /usr/local/freetds/etc/freetds.conf¿¡ À§Ä¡ÇÑ´Ù.
[Coffeenix]¿Í [TestDB] 2°³´Â MSSQL ¼¹ö¸¦ Á¤ÀÇÇÑ °ÍÀÌ°í, [global]Àº °øÅëÀ¸·Î Àû¿ëµÇ´Â ¼³Á¤ÀÌ´Ù. dump file = ´Â tds dump³»¿ëÀ» ÀúÀåÇÒ ÆÄÀÏ °æ·Î·Î 󸮰úÁ¤¿¡ ´ëÇÑ »ó¼¼ÇÑ Á¤º¸¸¦ ¾ò°í ½Í´Ù¸é ¼³Á¤ÇÑ´Ù. client charset = ´Â clientÀÇ ¹®ÀÚ¼ÂÀ» ÁöÁ¤ÇÑ´Ù. MSSQL 7.0À̻󿡼´Â UCS-2 ¹®ÀÚ¼ÂÀ» »ç¿ëÇؼ Åë½ÅÀ» Çϸç client charset = EUC-KR·Î ÁöÁ¤ÇØ¾ß »ç¿ë¿¡ ¹®Á¦°¡ ¾ø´Ù. freetds.log À» º¸¸é ´ÙÀ½°ú °°ÀÌ ¹®ÀÚ¼ÂÀÌ º¯È¯µÇ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
host =, port = ´Â MSSQL ¼¹ö¿Í Æ÷Æ®¸¦ ÁöÁ¤ÇÏ¸é µÇ¸ç ±âº» Æ÷Æ®´Â 1433¹øÀÌ´Ù. tds version = Àº SQL¼¹öÀÇ ¹öÀüÀ» ÁöÁ¤ÇÑ´Ù. text size = ´Â TEXTSIZEÀÇ °ª(bytes´ÜÀ§). TEXT³ª image ŸÀÔÀÏ ¶§ returnµÇ´Â °ªÀÇ ÃÖ´ë ±æÀ̸¦ bytes ´ÜÀ§·Î ÁöÁ¤ÇÑ´Ù. returnµÇ´Â À̹ÌÁöÀÇ Å©±â°¡ Å©´Ù¸é ÀÌ °ªÀ» ´Ã¸®¸é µÈ´Ù. freetds.conf ¼öÁ¤ÈÄ¿¡ apache¸¦ restartÇÒ ÇÊ¿ä´Â ¾ø´Ù. 4. php »ç¿ë ¿¹ $szDBHost¿¡´Â freetds.conf¿¡¼ ÁöÁ¤ÇÑ ¼¹ö¸íÀ̳ª 'IP:1433' Çü½ÄÀÇ °ªÀ» »ç¿ëÇÑ´Ù.
5. ¿¡·¯ ¸Þ½ÃÁö 1) Warning: mssql_connect(): Unable to connect to server: 111.222.123.123 in ... mssql_connect() ÇÔ¼ö¿¡¼ serverÁöÁ¤ÇÒ ¶§ freetds.conf¿¡ ÁöÁ¤ÇÑ ¼¹ö¸íÀ̳ª 'IP:Æ÷Æ®' ÇüÅ·Π»ç¿ëÇØ¾ß ÇÑ´Ù. À§ÀÇ ¿¡·¯´Â freetds.conf¿¡¼ [111.222.123.123] ¼¹ö ¼½¼ÇÀÌ ÀÖ´ÂÁö ã¾ÆºÃ´Ù´Â Àǹ̰¡ µÈ´Ù. µµ¸ÞÀÎÀ̳ª IP¸¦ »ç¿ë½Ã¿¡´Â Æ÷Æ®¸¦ ÁöÁ¤ÇؾßÇÔÀ» ÀØÁö ¸»ÀÚ. 2) Warning: mssql_connect(): WARNING! Some character(s) could not be converted into client's character set. Unconverted bytes were changed to question marks ('?'). (severity 16) in .. ¹®ÀÚ¼ÂÀÌ ¸ÂÁö ¾Ê¾Æ¼ ¹ß»ýÇÑ °ÍÀÌ´Ù. freetds.conf¿¡ client charset À» ¼³Á¤ÇÑ´Ù. 3) Warning: mssql_connect(): message: 'ID' »ç¿ëÀÚ°¡ ·Î±×ÀÎÇÏÁö ¸øÇß½À´Ï´Ù. (severity 14) in ... ¶Ç´Â Warning: mssql_connect(): message: Login failed for user 'ID'. (severity 14) in ... ID³ª ºñ¹Ð¹øÈ£°¡ Ʋ·ÈÀ½À» ÀǹÌÇÑ´Ù. 6. Âü°í(ÇÒ¸¸ÇÑ) »çÀÌÆ® * mssql_connect PHP Manual http://www.php.net/manual/kr/function.mssql-connect.php * FreeTDS ȨÆäÀÌÁö http://www.freetds.org/ * FreeTDS FAQ (ÇÑ±Û ¹ø¿ª, ¿¹Àü ³»¿ë) http://database.sarang.net/database/freetds/faq/faq.html * Code: FreeTDS Notes http://rasterweb.net/raster/code/freetdsnotes.html * The FreeTDS mailing Archives http://lists.ibiblio.org/pipermail/freetds/ |
Ä¿ÇǴнº, ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½°ÅÍ / URL : http://coffeenix.net/board_view.php?bd_code=1296 |