Mini Howto Subject: การติดตั้งโปรแกรม mSQL Database Server บน Linux By: Pruet Boonma pruet@ds90.intanon.nectec.or.th> base on document writed by Thanawat Pataraworamet Date: June 28, 1998 Update from: - License: สงวนลิขสิทธิ์เอกสารนี้ โดย พฤษภ์ บุญมา การเผยแพร่เอกสารนี้จะต้องอยู่ภายไต้ เงื่อนไขของ GNU General Public License เวอร์ชั่น 2.0 ที่ออกโดย Free Sofware Foundation กรุฒาอ่านรายละเอียดของ GPL ที่ Introduction: mSQL เป็น Database Server ที่เป็นที่นิยมบน Linux เนื่องจากมีขนาดเล็ก แต่สามารถรองรับงานทั้งขนาดเล็ก และขนาดกลางได้ดี การติดตั้งก็สามารถทำได้ง่าย และที่สำคัญ สามารถพัฒนาระบบติดต่อผู้ใช้ผ่านทาง WWW ได้โดยง่าย Prerequirement : ชุดโปรแกรม mSQL สามารถหาได้จาก homepage ของ บริษัท Hughes ซึ่งเป็นผู้ผลิต mSQL หรือ download จาก Intanon.NECTEC ftp server การติดตั้งโปรแกรม mSQL login เป็น root หรือว่า login เป็นผู้ใช้ปกติ แล้วใช้คำสั่ง su เพื่อเป็น root เมื่อทำการ Download ชุดโปรแกรมได้แล้ว ให้นำไปไว้ที่ directory /usr/local แล้วทำการขยาย file ดังนี้ # mv msql-2.0.4.1.tar.gz /usr/local # cd /usr/local # gzip -d msql-2.0.4.1.tar.gz # tar -xvf msql-2.0.4.1.tar หมายเหตุ ถ้าเป็น mSQL Version อื่น ที่ไม่ใช่ 2.0.4.1 ก็ให้เปลี่ยนชื่อตาม เลข version นั้น เสร็จแล้ว ให้เข้าไปยัง directory msql-2.0.4.1 แล้วทำการ run โปรแกรม make ดังนี้ # cd msql-2.0.4.1 # make target เสร็จแล้วโปรแกรม make จะทำการสร้าง Target directory ขึ้นมาเป็น directory ย่อยใน directory targets อีกทีหนึ่ง ให้เข้าไปยัง directory นั้น # cd targets/Linux-2.0.34-i686 หมายเหตุ ชื่อ Target directory นี้ อาจจะแตกต่างกันไปในแต่ละเครื่อง เช่นเครื่องที่ใช้ Linux kernel version 2.0.33 และเป็นเครื่อง pentium ก็จะมี Target directory ชื่อว่า Linux-2.0.33-i586 เป็นต้น จึงอาจจะทำการ cd เข้าไปยัง directory targets ก่อน แล้วทำการ list directory ดูก่อนว่ามี Target Directory ชื่อว่าอะไรเป็นต้น แล้วให้ทำการ run โปรแกรม setup และโปรแกรม make อีกครั้งดังนี้ # ./setup ... # make all ... # make install เมื่อทำการ run โปรแกรม make พร้อมกับ option install แล้วโปรแกรม make จะทำการ ติดตั้งชุดโปรแกรม mSQL ไว้ที่ directory /usr/local/Hughes ซึ่งในขณะนี้ จะทำการลบ Directory /usr/local/msql-2.0.1.4 ออกไปเลยก็ได้ หรือจะเก็บไว้ก็ได้ การปรับแต่งโปรแกรม mSQL ทำการ add user ชื่อว่า msql ให้มี home directory อยู่ที่ /usr/local/Hughes แล้ว ทำการ logout เข้าไปที่ directory /usr/local/Hughes แล้วทำการ copy file msql.acl.sample เป็น file msql.acl ดังนี้ # cp msql.acl.sample msql.acl แล้วทำการแก้ไข file msql.conf โดยเปลี่ยนชื่อ Admin_User จาก root ให้เป็น msql เสียก่อน เสร็จแล้ว ลองทำการ run โปรแกรม mSQL เพื่อทำการทดสอบดังนี้ # cd bin # ./msql2d Mini SQL Version 2.0.4.1 Copyright (c) 1993-94 David J. Hughes Copyright (c) 1995-98 Hughes Technologies Pty Ltd. All rights reserved. Loading configuration from '/usr/local/Hughes/msql.conf'. Server process reconfigured to accept 200 connections. Server running as user 'msql'. Server mode is Read/Write. ถ้าขึ้นข้อความตามด้านบน แสดงว่าการทำงานเรียบร้อยดี ให้ทำการหยุดการทำงานโดยกดปุ่ม CTRL-C แล้วไปแก้ไข file /etc/rc.d/rc.local (กรณีนี้สำหรับ Slackware Distribution , สำหรับ Redhat Distribution ให้ไปแก้ไข file ใน directory /etc/rc.d/rc3.d/ ตามที่เหมาะสม) เพื่อให้เครื่องทำการ run โปรแกรม mSQL ทุกครั้งที่ทำการ boot เครื่อง โดยเพิ่มข้อความต่อไปนี้ ที่ท้าย file /etc/rc.d/rc.local MSQL=/usr/local/Hughes if [ -f $MSQL/bin/msql2d ] then echo "Start mSQL Database Server" $MSQL/bin/msql2d 1>/dev/null 2>/dev/null & fi เสร็จแล้้้ว ให้ start โปรแกรม mSQL ขึ้นใหม่อีกครั้ง เพื่อใช้ในการสร้าง Database ต่อไป ดังนี้ # cd /usr/local/Hughes/bin # msql2d & การใช้คำสั่ง msqladmin เพื่อจัดการ Database คำสั่ง msqladmin จะใช้ในการควบคุมการทำงานของโปรแกรม mSQL โดยจะสามารถใช้ในการสร้าง/ลบ/ทำสำเนา/เปลี่ยนชื่อ หรือว่าใช้ในการตรวจสอบสถานะการทำงานต่าง ๆ โดยมีการทำงานที่สำคัญดังนี้ * การสร้าง Database ใหม่ ทำได้โดยใช้คำสั่ง $ msqladmin create DatabaseName> เมื่อ DatabaseName> คือชื่อ Database ที่ต้องการสร้าง * การลบ Database ทำได้โดยใช้คำสั่ง $ msqladmin drop DatabaseName> เมื่อ DatabaseName> คือชื่อ Database ที่ต้องการลบ * การทำสำเนา Database ทำได้โดยใช้คำสั่ง $ msqladmin copy FromDB> ToDB> เมื่อ FromDB> คือ ชื่อ Database ต้นฉบับ และ ToDB> คือชื่อ Database ที่ต้องการสร้างใหม่ * การเปลี่ยนชื่อ Database ทำได้โดยใช้คำสั่ง $ msqladmin move FromDB> ToDB> เมื่อ FromDB> คือชื่อ Database เดิม และ ToDB> คือชื่อใหม่ที่ต้องการเปลี่ยน * การตรวจสอบสถานะการทำงาน ทำได้โดยใช้คำสั่ง $ msqladmin stats นอกจากนั้นยังมีคำสั่งอื่น ๆ อีกเช่น reload ใช้เมื่อต้องการ reload system ใหม่ shutdown ใช้เมื่อต้องการหยุดการทำงาน เป็นต้น การใช้คำสั่ง msql เพื่อติดต่อกับโปรแกรม mSQL คำสั่ง msql เป็นคำสั่งเพื่อใช้ในการติดต่อกับโปรแกรม mSQL คำสั่งนี้จะอยู่ใน directory /usr/local/Hughes/bin โดยจะต้องระบุว่าต้องการติดต่อเพื่อจัดการกับ Database ตัวไหน เช่น $ msqladmin create TestDB Database "TestDB" created. $ msql TestDB Welcome to the miniSQL monitor. Type \h for help. mSQL > จะเห็นว่า prompt รับคำสั่งจะเปลี่ยนเป็น mSQL> เพื่อบอกว่า โปรแกรม mSQL กำลังรอรับคำสั่งอยู่ สำหรับคำสั่งที่จะใช้ ในการสั่งโปรแกรม mSQL นั้น จะอยู่ในรูปของ SQL (Structural Query Language) ซึ่งสามารถศึกษาโครงสร้างของคำสั่งได้ที่ homepage ของบริษัท Hughe ที่หน้า Language Specification เช่น เมื่อต้องการสร้าง Table เพื่อเก็บข้อมูลหมายเลขโทรศัพท์ ที่ประกอบไปด้วย field 4 field ดังนี้คือ ชื่อ ชนิด ขนาด idx int - name character 40 email character 40 phone character 40 ก็สั่งดังนี้ mSQL > CREATE TABLE phone ( -> idx int not null, -> name char(40) not null, -> email char(40) not null, -> phone char(40))\g Query OK. 1 row(s) modified or retrieved. mSQL > จากตัวอย่างจะเห็นว่า เมื่อเราพิมพ์บรรทัดแรกเสร็จ แล้วกด Enter mSQL ยังไม่คืน prompt แต่จะขึ้น prompt ใหม่ เป็น -> เพื่อบอกให้รู้ว่า คำสั่งยังไม่จบ และเมื่อเราพิมพ์คำสั่งจบแล้ว ก็ให้พิมพ์ \g ต่อ เพื่อบอกว่า พิมพ์ เสร็จแล้ว ถ้าไม่มี Error โปรแกรม mSQL ก็จะแจ้งว่า Query OK แล้ว เมื่อต้องการป้อน ข้อมูลเข้าไป ก็สามารถทำได้ดังนี้ mSQL > INSERT INTO phone ( -> idx, name, email, phone -> ) VALUES ( -> 1, 'Pruet Boonma', 'pruet@ds90.intanon.nectec.or.th', '+66-53-944140 ext 206')\g Query OK. 1 row(s) modified or retrieved. mSQL > และเมื่อต้องการแสดงข้อมูลใน Table นั้น ก็ทำได้โดย mSQL > SELECT * FROM phone\g Query OK. 1 row(s) modified orretrieved. +-----+--------------+---------------------------------+----------------------+ | idx | name | email | phonee | +-----+--------------+---------------------------------+----------------------+ | 1 | Pruet Boonma | pruet@ds90.intanon.nectec.or.th | +66-53-944140 ext 206| +-----+--------------+---------------------------------+----------------------+ mSQL > และเมื่อต้องการจบการทำงานของ msql ก็ใช้คำสั่ง \q ดังตัวอย่าง mSQL > \q Bye! $ เป็นต้น สำหรับรายละเอียดของการใช้ SQL สั่งงานโปรแกรม mSQL ก็สามารถศึกษาได้จาก เอกสารที่ให้ไว้ด้านบน สำหรับการสร้างระบบติดต่อผู้ใช้ผ่านทาง WWW ขอให้อ่านจาก Mini howto ของ PHP ต่อไป