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: สงวนลิขสิทธิ์เอกสารนี้ โดย พฤษภ์ บุญมา <pruet@ds90.intanon.nectec.or.th> การเผยแพร่เอกสารนี้จะต้องอยู่ภายไต้ เงื่อนไขของ GNU General Public License เวอร์ชั่น 2.0 ที่ออกโดย Free Sofware Foundation กรุฒาอ่านรายละเอียดของ GPL ที่ <http://linux.thai.net/gpl.html>

Introduction:
mSQL เป็น Database Server ที่เป็นที่นิยมบน Linux เนื่องจากมีขนาดเล็ก แต่สามารถรองรับงานทั้งขนาดเล็ก และขนาดกลางได้ดี การติดตั้งก็สามารถทำได้ง่าย และที่สำคัญ สามารถพัฒนาระบบติดต่อผู้ใช้ผ่านทาง WWW ได้โดยง่าย

Prerequirement :
ชุดโปรแกรม mSQL สามารถหาได้จาก homepage ของ บริษัท Hughes <http://www.hughes.com.au>ซึ่งเป็นผู้ผลิต mSQL หรือ download จาก Intanon.NECTEC ftp server <ftp://proxy.intanon.nectec.or.th/pub/linux/database>

การติดตั้งโปรแกรม 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 โดยจะสามารถใช้ในการสร้าง/ลบ/ทำสำเนา/เปลี่ยนชื่อ หรือว่าใช้ในการตรวจสอบสถานะการทำงานต่าง ๆ โดยมีการทำงานที่สำคัญดังนี้

นอกจากนั้นยังมีคำสั่งอื่น ๆ อีกเช่น 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 <http://www.hughes.com.au/library/msql2/manual/spec.htm> เช่น เมื่อต้องการสร้าง 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 ต่อไป