5/26/2559

แนะนำ Vesta Control Panel ของฟรีที่ใช้งานสะดวก

vestacp

วันนี้เรามาทดสอบ Vesta Control Panel ซึ่งเป็น control panel ที่ช่วยให้การดูแล cloud server หรือ dedicated server ของเราง่ายขึ้นมาก โดยไม่ต้องทำด้วยมืออีกต่อไป ที่สำคัญยังเป็นฟรีซอฟท์แวร์คุณภาพ ยิ่งน่าสนใจขึ้นไปอีก
คุณสมบัติเด่นๆ
  • ติดตั้งลง cloud server หรือ server ที่เพิ่งสร้างเสร็จได้โดยใช้เพียง 2-3 คำสั่ง
  • ลงซอฟท์แวร์ระบบ (LEMP stack) ให้โดยอัตโนมัติ ประกอบด้วย Web Server (nginx + apache), DNS server, Database Server (MySQL), Mail Server (exim), FTP Server เป็นต้น
  • มี PhpMyAdmin มาพร้อมสำหรับจัดการ Database
  • มีระบบ Webmail มาในตัว
  • สามารถกำหนดและสร้าง Package สำหรับการใช้งานในแต่ละ User account ได้
  • ในขั้นตอนของการสร้าง Package สามารถเลือกใช้ DNS Template ของ Gmail ได้ โดยไม่ต้องตั้งค่าเอง
  • สามารถ Suspend และ Unsuspend ได้ในทุกส่วนการใช้งาน เช่น User account, Web server, DNS Domain, Email Account, Database เป็นต้น
  • เพิ่ม IP, จัดการ cron job  ผ่าน Vesta ได้
  • สามารถสร้าง Backup file ของแต่ละ User account ได้
อย่างไรก็ตาม Vesta เป็นระบบ control panel ที่พัฒนายังไม่ถึงที่สุด และมีข้อจำกัดอยู่บ้าง เช่น
ข้อจำกัดของ Vesta
  • สามารถเชื่อมกับระบบ Billing ได้เพียง WHMCS เท่านั้น
  • Account ที่ถูกสร้างขึ้นจะเป็นการสร้าง เพื่อใช้งานภายใต้ user: Admin เท่านั้น ไม่สามารถสร้างในลักษณะ Reseller ได้
  • การอัพโหลดข้อมูลสามารถดำเนินการผ่าน FTP Client เท่านั้น ไม่สามารถ FTP ผ่าน Panel ได้
  • ไม่สามารถจำกัดจำนวนการส่งอีเมล์ออกได้ (Maximum Hourly Email)
  • ผู้ใช้งานควรมีความความเข้าใจพื้นฐาน ในการจัดการของ Web Server, DNS server, Database Server, Mail Server รวมทั้ง Linux command ด้วย
ระบบปฏิบัติการที่รองรับ
  • RHEL 5, RHEL 6
  • CentOS 5, CentOS 6
  • Debian 7
  • Ubuntu 12.04, Ubuntu 12.10, Ubuntu 13.04, Ubuntu 13.10, Ubuntu 14.04
ขั้นตอนการติดตั้ง
เมื่อพร้อมแล้ว เรามาทดลองติดตั้ง Vesta ลงบน cloud server หรือ dedicated server กัน โดยการ ssh เข้าไปยังระบบ เป็น root จากนั้นโหลด installer มา พร้อมเรียกให้ installer ทำงาน ตัวอย่าง

Vesta เหมาะกับการลงในระบบ OS ที่เป็น minimal install คือยังไม่มี packages อะไรเกะกะอยู่ข้างใน
เมื่อรันคำสั่งแล้ว รอให้ระบบดำเนินการติดตั้งจนสำเร็จ จะได้ข้อมูลรายละเอียดในการเข้าใช้งาน พร้อมขึ้นข้อความว่า Congratulations, you have successfully installed Vesta Control Panel. ถือเป็นอันเสร็จสิ้นขั้นตอนการติดตั้ง Vesta
จากนั้นสามารถเข้าใช้งาน Vesta ผ่านทาง https://ip_address:8083





04_service_screen

มีกราฟให้ดูการทำงานต่างๆ ด้วย


Vesta เป็น control panel ที่มีการพัฒนาเร็วมาก มีข้อมูลที่น่าสนใจในการใช้งานและปรับแต่งระบบ เช่นการเปลี่ยนตัว DB server การติดตั้งระบบกันไวรัสและสแปม ฯลฯ ซึ่งหาอ่านได้จาก http://vestacp.com/docs/

การติดตั้ง Java Web Server บน Ubuntu Server

ใน Ubuntu Linux Server นอกจากจะสามารถใช้ภาษา PHP ในการพัฒนา Web Server ก็ยังสามารถทำ Web Server ที่พัฒนาด้วยภาษา Java ได้ด้วยครับ เรามักจะเรียกว่า Apache Tomcat
โดยเราสามารถใช้คำสั่งดังนี้
sudo apt-get install tomcat7
จากนั้นก็ติดตั้งชุดคำสั่งสำหรับ Java โดยสั่ง
sudo apt-get install default-jdk
จากนั้นก็ Restart เครื่องโดยใช้คำสั่ง
sudo shutdown now -r
จากนั้นก็ให้เราพิมพ์หมายเลข IP ของเครื่อง Server ของเราตามด้วย port 8080 ก็จะปรากฎว่ามีข้อความปรากฎดังรูป ก็แสดงว่าเราสามารถสร้าง Apache Tomcat สำเร็จแล้ว
ซึ่ง IP เครื่อง Server นั้นอาจจะแตกต่างกันไปในแต่ละเครื่อง ก็ขอให้เราตรวจว่า IP ของเราหมายเลขอะไร ยกตัวอย่างเช่นเครื่องผมใช้ IP 192.168.1.65 ก็จะต้องพิมพ์
http://192.168.1.65:8080/

หลังจากนั้น ถ้าหากเราจะต้องการทดสอบว่า Web Application ของเราใช้ได้จริงให้เราทดลองโหลดโปรแกรมตัวอย่างมาติดตั้งโดยสั่ง ดังนี้
cd /var/lib/tomcat7/webapps
wget https://tomcat.apache.org/tomcat-7.0-doc/appdev/sample/sample.war
จากนั้นถ้าหากเราเรียกหน้าเว็บของตัว sample ซึ่งเครื่องผมจะต้องสั่ง http://192.168.1.65:8080/sample ก็จะปรากฎดังรูปด้านล่าง หรือถ้ายังไม่ขึ้นก็ให้พยายามกด Refresh ก็จะปรากฎมาเช่นกัน

ซึ่งถ้าหากเราสามารถหาไฟล์ที่เป็นนามสกุล .war ที่ compile ด้วย Java ตัวอื่นๆ มาติดตั้งลงบน Apache Tomcat ที่เป็น Java Web Server ของเรา มันก็สามารถทำงานได้เช่นกันครับ
อ้างอิงจาก
http://www.jguru.com/faq/view.jsp?EID=123229
https://www.digitalocean.com/community/tutorials/how-to-install-apache-t...

3/07/2559

การติดตั้ง Bigbluebutton บน CentOS 5.5 64bit

การติดตั้ง Bigbluebutton บน CentOS 5.5 64bit

 

Bigbluebutton เป็นโปรเจค opensource สำหรับ ใช้งาน web conference ที่มีประสิทธิภาพ เหมาะกับ ประยุกต์สำหรับด้านการเรียนการสอน

cd /usr/src

ติดตั้ง ฐานข้อมูล Mysql

yum install -y mysql-server
service mysqld start
chkconfig mysqld on

ติดตั้ง tomcat จาก jpackage repo ดังนั้นทำการเพิ่ม repo

yum install -y jpackage-utils
wget http://www.jpackage.org/jpackage17.repo
cat jpackage17.repo | sed ‘s/1\.7/5.0/’ | sed ‘s/\[jpack/\[5jpack/' > /etc/yum.repos.d/jpackage5.repo
mv jpackage17.repo /etc/yum.repos.d/
yum makecache

ติดตั้ง

yum install -y tomcat6
service tomcat6 start
chkconfig tomcat6 on

ติดตั้ง OpenOffice

wget -bqc http://download.services.openoffice.org/files/stable/3.3.0/OOo_3.3.0_Linux_x86_install-rpm-wJRE_en-US.tar.gz
tar xzvf OOo_3.3.0_Linux_x86_install-rpm-wJRE_en-US.tar.gz
cd OOO330_m20_native_packed-1_en-US.9567
cd RPM
rpm -ivh *.rpm

ป้องกัน ure error

##edit file
vim /etc/yum.conf
## Add exclude
[main]
exclude=openoffice.org-ure*

ดาวโหลด openoffice initializing

wget http://bigbluebutton.org/downloads/0.64/centos-install/bbb-openoffice-headless
mv bbb-openoffice-headless /etc/init.d/

เริ่มต้น OpenOffice

chmod +x /etc/init.d/bbb-openoffice-headless
chkconfig –add bbb-openoffice-headless
chkconfig bbb-openoffice-headless on
service bbb-openoffice-headless start

ติดตั้ง development package

yum -y install gcc gcc-c++ compat-gcc-34 compat-gcc-34-c++
yum -y install -y zlib zlib-devel freetype freetype-devel libjpeg libjpeg-devel

ติดตั้ง swftools

wget http://www.swftools.org/swftools-0.9.0.tar.gz
tar xzf swftools-0.9.0.tar.gz
cd swftools-0.9.0
./configure
make
make install
cd ..

ติดตั้ง ghostscript 8.64

wget http://mirror.centos.org/centos/5/os/x86_64/CentOS/ghostscript-8.70-6.el5.x86_64.rpm
rpm -ivh ghostscript-8.70-6.el5.x86_64.rpm

ติดตั้ง ImageMagick

yum install -y ImageMagick

ติดตั้ง nginx จาก EPEL repo

rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
yum makecache
yum install -y nginx

ติดตั้ง ActiveMQ

useradd activemq
wget http://apache.mirror.rafal.ca/activemq/apache-activemq/5.2.0/apache-activemq-5.2.0-bin.tar.gz
tar xzf apache-activemq-5.2.0-bin.tar.gz
mv apache-activemq-5.2.0 /usr/share/
ln -s /usr/share/apache-activemq-5.2.0 /usr/share/activemq
chown -R activemq.activemq /usr/share/apache-activemq-5.2.0
chown -R activemq.activemq /usr/share/activemq
wget http://bigbluebutton.org/downloads/0.64/centos-install/activemq
mv activemq /etc/init.d/
chmod a+x /etc/init.d/activemq
service activemq start
chkconfig activemq on

ติดตั้ง Red5

useradd red5
wget http://bigbluebutton.org/downloads/0.64/red5-0.9.1.tar.gz
tar xvf red5-0.9.1.tar.gz
mv red5-0.9.1 /usr/share/red5
chown -R red5.red5 /usr/share/red5

##script ติดตั้ง Red5

wget http://bigbluebutton.org/downloads/0.64/centos-install/red5
mv red5 /etc/init.d/
# now chmod the file, start and config auto-start:
chmod a+x /etc/init.d/red5
service red5 start
chkconfig red5 on

ติดตั้ง kernel-devel และอื่นๆ

yum install -y kernel-devel
yum install -y ncurses-devel openssl-devel newt-devel zlib-devel bison

——————–
##freeswitch
———————

# configure nginx
mkdir -p /etc/nginx/sites-available
mkdir -p /etc/nginx/sites-enabled

wget http://bigbluebutton.googlecode.com/svn/trunk/bbb-images/centos-install-files/nginx-bigbluebutton.conf
wget http://bigbluebutton.googlecode.com/svn/trunk/bbb-images/centos-install-files/nginx.conf
mv -f nginx.conf /etc/nginx/
cat nginx-bigbluebutton.conf | sed “s/192.168.0.136/`hostname`/” > /etc/nginx/sites-available/bigbluebutton
rm -f nginx-bigbluebutton.conf
ln -s /etc/nginx/sites-available/bigbluebutton /etc/nginx/sites-enabled/bigbluebutton
service nginx start
chkconfig nginx on

# configure MySQL database

echo “create database bigbluebutton_dev;” | mysql -u root
echo “grant all on bigbluebutton_dev.* to ‘bbb’@'localhost’ identified by ‘secret’;” | mysql -u root
echo “commit;” | mysql -u root

# now install the webapp

cp /tmp/bbb-install/bigbluebutton.war /var/lib/tomcat6/webapps/bigbluebutton.war

# download blank slide and thumbnail dummies

mkdir -p /var/bigbluebutton/blank
cd /var/bigbluebutton/blank
wget http://bigbluebutton.org/downloads/0.64/blank/blank-slide.swf
wget http://bigbluebutton.org/downloads/0.64/blank/blank-thumb.png

สร้าง noPdfMarkWorkaround.ps

สร้าง file ชื่อ /etc/bigbluebutton/nopdfmark.ps มีเนื้อหาดังต่อไปนี้:

%!
/pdfmark {cleartomark} bind def

Restart Tomcat6

service tomcat6 restart

สร้าง folder สำหรับ Upload

mkdir /var/bigbluebutton
chown -R tomcat6:adm /var/bigbluebutton
chmod -R 777 /var/bigbluebutton

สร้างฐานข้อมูล

echo “create database bigbluebutton_dev;” | mysql -u root
echo “grant all on bigbluebutton_dev.* to ‘bbb’@'localhost’ identified by ‘secret’;” | mysql -u root
echo “commit;” | mysql -u root

หรือ ทำใน mysql> prompt

create database bigbluebutton_dev;
grant all on bigbluebutton_dev.* to ‘bbb’@'localhost’ identified by ‘secret’;
flush privileges;
quit

# เตรียม download BBB apps

cd /usr/src/bbb
wget http://bigbluebutton.org/downloads/0.71a/red5-bigbluebutton.tar.gz
wget http://bigbluebutton.org/downloads/0.71a/red5-deskshare.tar.gz
wget http://bigbluebutton.org/downloads/0.71a/red5-video.tar.gz
wget http://bigbluebutton.org/downloads/0.71a/red5-sip.tar.gz
wget http://bigbluebutton.org/downloads/0.71a/freeswitch-config.tar.gz

wget http://bigbluebutton.org/downloads/0.71a/www-bigbluebutton-default.tar.gz
wget http://bigbluebutton.org/downloads/0.71a/www-bigbluebutton.tar.gz

wget http://bigbluebutton.org/downloads/0.71a/bigbluebutton.war
wget http://bigbluebutton.org/downloads/0.71a/bbb-conf

ติดตั้ง bbb-apps red5

cd /usr/share/red5/webapps
tar xzvf /usr/src/bbb/red5-bigbluebutton.tar.gz

ติดตั้ง bbb-desktops

tar xzvf /usr/src/bbb/red5-deskshare.tar.gz

ติดตั้ง bbb-video-app

tar xzvf /usr/src/bbb/red5-video.tar.gz

ติดตั้ง bbb-voice-app

tar xzvf /usr/src/bbb/red5-sip.tar.gz
vi /usr/share/red5/webapps/sip/WEB-INF/bigbluebutton-sip.properties

###Edit the line that says sip.server.host=192.168.0.35 and replace the IP with .

ติดตั้ง freeswitch

cd /usr/local/freeswitch/
tar xvf /usr/src/bbb/freeswitch-config.tar.gz

**vim /usr/share/red5/webapps/bigbluebutton/WEB-INF/red5-web.xml
ติดตั้ง default web app

cd /var/www
tar xzvf /usr/src/bbb/www-bigbluebutton-default.tar.gz

ติดตั้ง bbb-client
cd /var/www
tar xzvf /usr/src/bbb/www-bigbluebutton.tar.gz

ติดตั้ง bbb-app ใน tomcat6

cp /usr/src/bbb/bigbluebutton.war /var/lib/tomcat6/webapps/bigbluebutton.war

## ต่อมาให้แก้ไข ค่าใน /bigbluebutton.properties

service tomcat6 restart
vim /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties
##
bbb-web host:: your-IP

vim /var/lib/tomcat6/webapps/bigbluebutton/demo/bbb_api_conf.jsp
bbb-web-api host: your-ip

กำหนดค่า PDF2SWF, CONVERT and GS applications

Make a note of where pdf2swf is installed

which pdf2swf

You should see something like

/usr/bin/pdf2swf

Make a note of where the convert application is installed

which convert

You shoud see something like.

/usr/bin/convert

Note where GhostScript is installed

which gs

You shoud see something like.

/usr/bin/gs

ติดตั้ง bbb-conf

wget http://github.com/bigbluebutton/bigbluebutton/raw/master/bigbluebutton-config/bin/bbb-conf –no-check-certificate
sudo mv bbb-conf /usr/local/bin
sudo chmod ugo+x /usr/local/bin/bbb-conf

สร้าง log

# create directory for log files
mkdir /var/log/bigbluebutton

# create an empty log file
touch /var/log/bigbluebutton/bbb-web.log
chmod 777 /var/log/bigbluebutton/bbb-web.log

# restart things:

service activemq restart
service freeswitch restart
service red5 restart
service tomcat6 restart

bbb-conf –clear
bbb-conf –check
bbb-conf -c

File Text

http://bigbluebutton.googlecode.com/files/bbbResources.properties
Credit by http://lookmee.wordpress.com

2/02/2559

การติดตั้ง MySQL 5.5

MySQL เป็นซอฟต์แวร์ประเภทฐานข้อมูลชนิด RDBMS - Relational Database  Management Systemจัดเก็บข้อมูลในลักษณะของตาราง (table) ประกอบด้วย แถว (row )เป็น  records  และคอลัมน์ (column) เป็น fields ตารางทั้งหมดในฐานข้อมูลมีความสัมพันธ์เชื่อมโยงกัน เพื่อลดความซ้ำซ้อนของข้อมูล การจัดการฐานข้อมูลสามารถทำได้โดยใช้ภาษาคอมพิวเตอร์ชั้นสูงที่เรียกว่า Structure Query Language  เรียกสั้น ๆ ว่า SQL  สามารถสร้าง  ปรับปรุงแก้ไข อ่าน หรือ ลบข้อมูล  (Create, Update, Read and Delete)
             MySQL เป็นซอฟต์แวร์แบบ Open-source จัดทำขึ้นเมื่อปี ค.ศ. 1995 โดย Michael Widenius และ Devid Axmark  แห่งบริษัท MySQL AB  ต่อมาถูกบริษัท Sun Microsystems ผู้สร้างโปรแกรมจาวา ซึ้อเข้าไปรวมกิจการเมื่อ ค.ศ. 2008 และบริษัท Oracle ได้รวมบริษัท Sun Microsystems  มาไว้ในบริษัทของตนอีกทอดหนึ่งเมื่อ ค.ศ. 2010              MySQL เป็นซอฟต์แวร์ทีใช้และเป็นที่ยอมรับกันแพร่หลาย นอกจากความเสถียร จนสามารถไว้วางใจได้ (reliable) แล้วยังประมวลผลได้รวดเร็ว (speed performance) และมีคุณลักษณะ(feature) อื่น ๆ ที่จำเป็นต้องมีในการใช้ฐานข้อมูลไว้อย่างครบถ้วน

Download MySQL

เวปไซต์หลักของ MySQL คือ www.mysql.com   ปัจจุบัน MySQL ได้ออกมาถึงรุ่น 5.5 ( เดือน มกราคม  ค.ศ. 2012) สามารถดาวน์โหลดได้ที่ http://dev.mysql.com/downloads/mysql/5.5.html

ในที่นี้จะเลือกดาวน์โหลด MySQL Community Server 5.5.xx  ที่เป็นแบบ 64 bit และจัดเก็บในรูปแบบ zip archive  (ต้องเลือก platform  และ 32 หรือ 64 bit ให้เหมาะสมกับวินโดว์ที่ใช้งานอยู่ด้วย)  จะมีหน้าเว็บเพจให้สมัครเป็นสมาชิก MySQL account

ให้เลื่อนเมาส์ไปคลิกที่ “No thanks, just take me to the downloads!”  และเลือก HTTP mirror site ที่ใกล้ประเทศไทยมากที่สุด เพื่อดาวน์โหลด
เมื่อดาวน์โหลดเสร็จแล้ว ให้กลับไปหน้าแรกของการ download   ที่เมนูด้านซ้ายมือ คลิกที่หัวข้อ MySQL Connectors  เลือก หัวข้อย่อย Connector /J   ซึ่งเป็นไดรเวอร์สำหรับเชื่อมต่อระหว่างจาวากับ MySQL ให้ดาวน์โหลดมาเก็บไว้เช่นกัน 

MySQL มีเครื่องมืออยู่ชิ้นหนึ่ง  ชื่อ MySQL Workbench เป็น Graphic User Interface  เป็นโปรแกรมที่ใช้แทนที่  mysql ที่เป็น  client-site application ( ซึงใช้งานในลักษณะ command line)  นอกจากยังใช้ในการทดสอบคำสั่ง SQL และใช้แทนโปรแกมรม MySQL Administrator ในรุ่นเก่า ๆ ด้วย
เมื่อดาวน์โหลดเสร็จสิ้นจะได้ไฟล์ 3 ไฟล์ ดังนี้

ติดตั้งและ กำหนดค่าเบื้องต้น (Install & Configuration)

  1. แตกไฟล์ mysql-5.5.xx-win64.zip ไว้ที่ “C:\WebProject\”  เมื่อ unzip ไฟล์ในโฟลเดอร์นี้ จะได้โฟลเดอร์ใหม่ที่มีชื่อยาวมาก  “C:\WebProject\mysql-5.5.xx-winx64”  ให้ทำการเปลี่ยนชื่อโฟลเดอร์ให้เหลือสั้น ๆ เพียง mysql   ในท้ายสุดจะได้โฟลเดอร์ที่ติดตั้ง MySQL เป็น “C:\WebProject\mysql”
  2. เข้าไปที่ โฟลเดอร์ “C:\WebProject\mysql”  มองหาไฟล์ ที่ขึ้นต้นด้วยคำว่า “my….” นามสกุล .ini  พบว่าจะมีอยู่หลายไฟล์ด้วยกัน

  3. กรณีที่มองไม่เห็นนามสกุลของไฟล์ .ini ต้องเข้าไปแก้ไขใน Control Panel >> Folder Options >> เลือกแท็บ View >> ให้ uncheck เครื่องหมายถูกหน้าข้อความ “Hide extensions for known file types.”  คลิก apply และ ปุ่ม OK


  4. เปิด ไฟล์ “my-large.ini” ด้วย text editor (ในที่นี้ใช้ NotePad++)  save ไฟล์นี้ในชื่อใหม่ว่า “my.ini” แก้ไขและเพิ่มเติมข้อความดังต่อไปนี้
[client]
default-character-set=utf8
[mysqld]
:
:
skip-character-set-client-handshake=1
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server=utf8

basedir=c:\WebProject\mysql
datadir=c:\WebProject\mysql\data
[mysqldump]
:
:
default-character-set=utf8
[mysql]
:
:
default-character-set=utf8
เมื่อแก้ไขเสร็จแล้ว ให้ save ไฟล์ที่แก้ไขนี้ด้วย   จะเห็นว่าพอร์ตที่ใช้เชื่อมต่อระหว่าง server – client  คือ 3306 ซึ่งเป็นค่า default   
บรรทัด basedir= … และ datdir=…. บอกถึงโฟลเดอร์ที่ติดตั้งโปรแกรม MySQL และโฟลเดอร์ที่ใช้เก็บฐานข้อมูล 
คำสั่งอื่น ๆ เป็นการกำหนดให้ฐานข้อมูลของเราใช้รหัสตัวอักษร แบบ utf8  ทั้งฝั่ง server และ client การจัดลำดับการเรียงตัวอักษรจะเป็นแบบ utf8_general_ci

Start the server

                ลักษณะการทำงานของโปรแกรม MySQL  เป็นแบบ client-server  ฐานข้อมูลจะถูกเก็บไว้ที่ฝั่งของ server  ผู้ใช้สามารถเข้าถึงข้อมูลได้ทั้งในลักษณะ local (ฐานข้อมูล และ client program อยู่ในเครื่องเดียวกัน ) หรือในลักษณะ remote (ฐานข้อมูลและ client program อยู่ต่างเครื่องกัน) โดยผ่านทาง TCP/IP network
โปรแกรมที่ให้บริการฐานข้อมูลฝั่ง server คือ mysqld.exe  ตัว “d” ต่อท้ายคำว่า mysql มาจากคำว่า daemon เป็นคำที่มาจากระบบปฏิบัติการ Unix หมายถึงโปรแกรมหรือโปรเซสที่ทำงานอยู่ฉากหลังโปรแกรมอืน ๆ  ส่วนโปรแกรมที่ใช้ติดต่อกับ server เพื่อเข้าถึงข้อมูลคือ mysql.exe (ไม่มี d ต่อท้าย) ทั้งสองโปรแกรมนี้ถูกเก็บไว้ในโฟลเดอร์ย่อย “C:\WebProject\mysql\bin”
การเริ่มให้ mysqld.exe ทำงานนั้น ให้ไปที่ Command shell แล้วใช้คำสั่ง mysqld –console ดังรูป

เมื่อเคาะปุ่ม Enter จะมีข้อความแสดงถึงการทำงานของโปรแกรม mysqld.exe ดังรูป  คำสั่ง –console จะให้นำมาแสดงผลให้เห็นบนหน้าจอ ถ้าไม่มี option จะเห็นแต่หน้าจอว่าง ๆ ไม่ข้อความใด ๆ นอกจากเคอเซอร์กระพริบเท่านั้น  ให้สังเกตข้อความ
mysqld: ready for connection และข้อความที่แจ้งถึงพอร์ตที่ใช้ในการติดต่อ ในที่นี้คือ 3306
ให้ปล่อยหน้าจอ Command shell ทิ้งไว้อย่างนี้ตราบใดที่เราต้องการให้  MySQL server ทำงานให้บริการฐานข้อมูลอยู่  ในการเข้าถึง server ซึ่งในที่นี้จะเป็นแบบ local  ให้เปิดหน้าต่าง Command shell ขึ้นอีกหน้าต่างหนึ่ง เข้าไปที่โฟลเดอร์ย่อย bin พิมพ์คำสั่ง   mysql –uroot ดังนี้

Option –u หมายถึง user หรือผู้ใช้งาน ในที่นี้ตือ root หรือ administrator เมื่อกด Enter จะมีข้อความปรากฏดังนี้ พร้อมกับมี prompt  ที่มีข้อความ mysql> พร้อมที่จะรอรับคำสั่งในการติดต่อกับฐานข้อมูล
       ทดลองพิมพ์คำสั่งต่อไปนี้  show databases; ให้แสดงฐานข้อมูลที่มีอยู่ทั้งหมด

ในที่นี้เราจะเข้าไปดูฐานข้อมูลที่ชื่อ mysql ว่าเก็บข้อมูลใดไว้บ้าง การเลือกใช้ฐานข้อมูลให้ใช้คำสั่ง “use” 

จะดูลึกลงไปอีกว่าในฐานข้อมูลชื่อ mysql มีตาราง(table) ใดเก็บไว้บ้าง  โดยใช้คำสั่ง show tables;

พบว่ามีตารางทั้งหมด 24 ตาราง  ตารางที่เราสนใจคือ ตารางที่ชื่อว่า user

                ต้องการดูว่าตาราง user มีฟิลด์ใดเก็บไว้บ้าง  ใช้คำสั่ง describe  ดังนี้

มีจำนวนฟิลด์ถูกเก็บไว้ถึง  42 ฟิลด์  ฟิลด์ที่เราสนใจคือ Host, User และ Password   ข้อมูลเหล่านี้คือข้อมูลของผู้ใช้งานและpassword ของผู้ใช้งานแต่ละคน
ใช้คำสั่ง select host, user, password from mysql.user; เพื่อดูผลลัพธ์

จะเห็นว่า Host ที่เป็น localhost ทั้งหมด ซึ่งมีหมายเลข IP แบบ 4 หลัก เป็น 127.0.0.1 หรือ แบบ IPV6 เป็น : :1 ผู้ใช้คือ root นั้น ยังไม่มีการกำหนด password เลย และบรรทัดสุดท้าย นั้นบอกว่า ผู้ใช้ที่เป็นนิรนาม anonymous คือจะเป็นใครก็ได้ สามารถเข้าถึงฐานข้อมูลนี้ได้โดยไม่ต้องมี password เช่นกัน ซึ่งนับว่าไม่ปลอดภัยเลย

กำหนด password ให้แก่ root

สมมติว่าเราจะกำหนด password ของ root ให้มีค่าเป็น  “xxxxx”   ให้พิมพ์คำสั่งต่อไปนี้

  Update user set  password=PASSWORD(“xxxxx”) where User=’root’;

เข้าไปดูข้อมูลในตารางชื่อ user อีกครั้ง จะเห็นว่ามีการกำหนด password และเข้ารหัส password ไว้เพื่อมิให้ผู้อืนได้ทราบ


 หมายเหตุ

    เราสามารถกำหนด  password ที่ละรายโดยใช้คำสั่งต่อไปนี้

    mysql>set password for  ‘root’@’localhost’=password(‘xxxxx’);

    mysql>set password for ‘root’@’: :1’=password(‘xxxxx’);

    mysql>set password for  ‘root’@’127.0.0.1’=password(‘xxxxx’);
    
บรรทัดสุดท้าย ที่เป็น localhost แต่ไม่มีชื่อผู้ใช้ และไม่มี password นั่นหมายถึง ผู้ที่ไม่มีรายชื่อในตาราง user สามารถเข้าถึงข้อมูลนี้ได้โดยไม่ต้องมี password  ให้ทำการลบบรรทัด(record) นี้ทิ้ง โดยใช้คำสั่ง

  Mysql> drop user ‘’@’localhost’;

ดูรายชื่อผู้ใช้และ password ในตาราง user อีกครั้ง จะเห็นว่าผู้ใช้ซึ่งเป็นนิรนาม ไม่สามารถเข้ามาใช้ฐานข้อมูลนี้ได้อีกแล้ว


การยกเลิกการติดต่อกับฐานข้อมูล ให้ใช้คำสั่ง quit

โปรแกรม mysql  จะยกเลิกการติดต่อกับฐานข้อมูล แต่โปรแกรม mysqld.exe ที่อยู่ฝั่ง server ยังคงทำงานอยู่ เพื่อให้ server รับรู้การเปลี่ยนแปลง ให้ปิด server โดยใช้คำสั่ง Control+ c หรือ Control + break

ไม่ควรใช้คำสั่ง close หรือคลิกที่กากบาทที่มุมขวาของหน้าต่าง Command shell เพราะการทำเช่นนี้คือ การ  kill process  เป็นการปิด server กลางคัน
จากนั้นให้ start server อีกครั้งด้วยคำสั่ง mysqld –console
ถ้าต้องการเข้าไปใช้ข้อมูล ให้พิมพ์คำสั่ง  mysql –uroot เหมือนครั้งก่อน พบว่าครั้งนี้ไม่สามารถเข้าไปใช้งานได้ จะมีข้อความแสดงการปฏิเสธการเข้ามาใช้งาน

พิมพ์คำสั่งอีกครั้ง คราวนี้ใส่ option –p เพิ่มเข้าไปด้วย หมายถึง การใส่ password

mysql –uroot  -p  (กด Enter)      
จะมีข้อความให้ใส่ password  เมื่อเราใส่ password ได้ถูกต้อง ก็จะสามารถเข้าไปใช้งานได้


       หมายเหตุ

       การปิด server  สามารถใช้โปรแกรม  utility ชื่อ mysqladmin.exe  อยู่ในโฟลเดอร์ bin เช่นกัน  การใช้งานมีดังนี้

       C:\WebProject\mysql\bin>mysqladmin  –u root   -p xxxxx  shutdown

     
ในการ start mysql server  อาจเขียนเป็น  batch file ได้ดังนี้  save เก็บไว้ในชื่อ startMysql.bat
startMysql.bat
cd \
cd c:/WebProject/mysql/bin
mysqld –console

ทดลองสร้างฐานข้อมูล

ใน MySQL server จะประกอบด้วยฐานข้อมูล(Database)หลาย ๆ ฐานข้อมูล แต่ละฐานข้อมูล ประกอบด้วยตาราง (table) เป็นจำนวนมาก  แต่ละตารางประกอบด้วยแถวหรือจำนวนข้อมูล (record) หลาย ๆ แถว ในแต่ละแถวจะประกอบด้วยคอลัมน์ (column or field) หลาย ๆ คอลัมน์
ในขั้นตอนนี้จะทดลองสร้างฐานข้อมูล เก็บรายชื่อนักศึกษาที่ลงทะเบียนเรียนวิชาต่าง ๆ ในภาควิชาฟิสิกส์ ให้ชื่อฐานข้อมูลนี้ว่า student   ดังขั้นตอนต่อไปนี้
  1. Start MySQL server (ถ้ายังไม่ได้ start)
  2. ใช้โปรแกรม mysql เชื่อมต่อกับ server  โดยใช้คำสั่ง  “mysql –uroot –p “ ดังรูป
  3. สร้างฐานข้อมูล ชื่อ student โดยใช้คำสั่งต่อไปนี้
  4. mysql>create  database if not exists student;
  5. เลือกใช้ฐานข้อมูล student ที่เพิ่งสร้างไปสักครู่นี้
     use student;
  6. สร้างตารางที่ชื่อ group01 เพื่อเก็บ รหัสนักศึกษา (id) ขื่อ (name) วิชาที่ลงทะเบียนเรียน (subject) และระดับคะแนนของนักศึกษา (gpa) โดยใช้คำสั่งดังนี้
  7. Mysql>create  table group01 (id int, name varchar(40), subject varchar(50), gpa float);

    ใช้คำสั่ง describe ดูฟิลด์ต่าง ๆ ที่เรากำหนดเข้าไปในตาราง


  8. ใส่ข้อมูลลงไปในตารางโดยใช้คำสั่ง insert  ข้อมูลชนิด string จะต้องมีเครื่องหมาย ‘ ครอบหัวท้าย  ถ้าเป็นข้อมูลชนิด float หรือ int  ไม่ต้องมีเครื่องหมาย’ ปิดหัวท้าย

ได้ใส่ข้อมูลเข้าไปในตาราง class01 จำนวน 4 รายการ   ต้องการแสดงข้อมูล ใช้คำสั่ง SQL แสดงผลดังนี้

 mysql>select  * from  group01;

กรณีที่ข้อมูลเป็นภาษาไทย จะต้องทำให้ Command shell สามารถรองรับภาษาไทยได้เสียก่อน  ให้อ่านบทความ “การติดตั้งภาษาไทยใน Dos prompt  หรือ Command shell ในวินโดว์ 7”   เมื่อติดตั้งภาษาไทยให้ Command shell เรียบร้อยแล้ว ให้ดูหัวข้อ ” mysql client กับภาษาไทยรหัส utf8”

MySQL server ทำงานแบบ windows service

                ในทางปฏิบัติจริง ๆ เรานิยมให้ MySQL server ทำงานเป็นฉากหลัง อย่างอัตโนมัติ เมื่อเริ่ม start วินโดว์ ไม่ต้องให้ผู้ดูแลระบบมาทำการ start ด้วยมือทุกครั้งเมื่อเข้าระบบปฏิบัติการวินโดว์  หรือกล่าวว่าให้ MySQL server ทำงานในลักษณะ  windows service   หรือเรียกว่า “DAEMON” ในระบบ Unix
                การกำหนดให้ MySQL ทำงานหรือให้บริการทุกครั้งเมื่อเข้าสู่ระบบปฏิบัติการวินโดว์ ทำได้ดังนี้
  1. รัน Command shell โดยวิธี run as administrator กดปุ่มวินโดว์ + r แล้วพิมพ์คำสั่ง cmd กดปุ่ม Ctl + Shift +Enter พร้อมกัน จะได้หน้าต่าง command shell ที่แสดงว่าขณะนี้ใช้งานในลักษณะของ administrator อยู่ วิธีการเปิด Window command shell ในฐานะ administrator ให้อ่านจากบทความนี้


  2. ใน Command shell  พิมพ์คำสั่ง  “C:\WebProject\mysql\bin> mysql – install
  3. คำสั่งนี้เป็นการนำ MySQL ไปใส่ไว้ใน services ของวินโดว์   เมื่อใช้ task manager เปิดดู (โดยกด CTRL + ALT + DEL พร้อม ๆ กัน และเลือกเมนู อันล่างสุด ที่เขียนไว้ว่า Task bar manager)  เปิดดูที่ แท็บชื่อ services

    กลับไปที่ Window Command shell พิมพ์คำสั่ง “net start mysql”  เพื่อให้ MySQL service ทำงาน

    เมื่อเข้าไปเปิดดูใน task manager จะเห็น การทำงานของ  mysql service

    ต้องการหยุดการทำงานของ mysql service ให้ใช้คำสั่ง “net stop mysql”

    ต้องการจะถอดถอน service ออกจากระบบปฏิบิตการวินโดว์ พิมพ์คำสั่ง “mysqld –remove”

    ถ้าเรารัน Command shell แบบปกติ  จะไม่สามารถติดตั้ง service ของ MySQL  ได้ จะมีข้อความปฏิเสธการติดตั้ง   “Install / Remove of the Service  Denied! “  ดังภาพ

การแก้ไขอีกวิธีหนึ่งก็คือ ให้เข้าไปปิด User Account Control หรือ UAC เสียก่อน ดังนี้  ไปที่  Control Panel  >> User Account s >> Change User Account Control Settings

จะมีหน้าต่าง User Control Setting ให้เลื่อนสไลด์บาร์ มาที่ตำแหน่งต่ำสุด  และคลิก OK  วินโดว์จะให้เราทำการ restart วินโดว์ใหม่อีกครั้ง เพื่อให้การระงับการใช้งาน UAC มีผล


จากนั้นกลับไปใช้คำสั่ง  “mysqld –install” ใหม่อีกครั้ง

รวมคำสั่งที่ใช้บ่อย ๆ

                ถ้า  MySQL  server  ถูกติดตั้งไว้ในคอมพิวเตอร์เครื่องอื่น ๆ  (ไม่เป็น localhost)  สามารถใช้ mysql client ติดต่อแบบ remote ไปยัง server ได้โดยใช้คำสั่งดังนี้              
  mysql  –h Hostname –u user –p
                -h ใช้ในการระบุชื่อ server ที่ติดตั้ง MySQL อาจระบุเป็น IP address ก็ได้

คำสั่งทั่วไป

                status หรือ  \s   แสดงสถานะต่าง ๆ ของ server เช่น ขณะนี้ใครเป็นผู้ใช้งานบ้าง  พอร์ตที่ใช้ติดต่อ การเข้ารหัสตัวอักษร

      ;  เครื่องหมาย semi colon  เป็นการส่ง คำสั่งไปให้ server ประมวลผล ซึ่งจะเห็นอยู่ท้ายคำสั่งเสมอ
      \c  ย่อมาจากคำว่า cancel  เป็นการยกเลิกคำสั่ง ที่กำลังพิมพ์อยู่ 

คำสั่งระดับ ฐานข้อมูลหรือ database 

สมมติให้ dbName  คือชื่อฐานข้อมูล

การสร้างฐานข้อมูล
CREATE DATABASE  dbName
CREATE DATABASE IF NOT EXISTS dbName
การลบฐานข้อมูล DROP DATABASE dbName
DROP DATABASE IF EXISTS dbName
การเรียกใช้ฐานข้อมูล Use dbName

คำสั่งระดับ ตาราง

 ให้ tableName คือชื่อตารางในฐานข้อมูล

การสร้างตาราง
CREATE TABLE  tableName
CREATE TABLE IF NOT EXISTS tableName
การลบตาราง DROP TABLE tableName
DROP TABLE  IF EXISTS tableName
แสดงตารางที่มีอยู่ในฐานข้อมูล SHOW TABLES
แสดงฟิลด์ที่มีอยู่ในตาราง DESCRIBE tableName  หรือ  DESC tableName
เปลี่ยนชื่อตาราง RENAME TABLE tableName to newTableName [, tableName2 to newTableName2]…
แก้ไขโครงสร้างตาราง ALTER TABLE tableName MODIFY   fieldName1 varchar[50]
เปลี่ยนขนาดฟิลด์ fieldName1 เป็น varchar[50]
ALTER TABLE tableName MODIFY   id INT[4] NOT NULL DEFAULT ‘1’   AUTO_INCREMENT
เปลี่ยนฟิลด์ id ให้เป็นแบบ AUTO_INCREMENT  มีค่าโดยปริยายเป็น 1
ALTER TABLE tableName MODIFY   fieldName  TITNYTEXT
เปลี่ยนขนาดฟิลด์ fieldName  ให้เป็น TINYTEXT
ALTER TABLE tableName DROP fieldName2
ลบฟิลด์ fieldName2
ALTER TABLE tableName ADD birthdate DATE
เพิ่มฟิลด์ birthdate เป็นข้อมูลชนิด date

คำสั่งระดับ record


เพิ่ม record เข้าไปในตาราง
INSERT INTO tableName VALUES (field1Value, field2Value, … )
INSERT INTO tableName (field1Name, field2Name,…, fieldname) VALUES (field1Value, field2Value, …,fieldnValue )
ลบ record ในตาราง DELETE FROM tableName WHERE criteria
ปรับปรุง record ในตาราง UPDATE tableName SET columnName = expression WHER criteria
แสดง record ในตาราง SELECT field1Name, field2Name, … FROM tableName 
WHERE cireria
ORDER BY fieldAName  ASC|DESC, fieldBName ASC|DESC, …

นำข้อมุลจาก text file ไปใส่ใสตาราง

พิมพืข้อมูลด้วย Notepad หรือ text editor ที่ถนัด คั่นระหว่างฟิลด์ด้วย tab  ใช้คำสั่ง LOAD DATA INFILR มีรูปแบบการใช้งานดังนี้

mysql>  LOAD DATA INFILE “data.txt” INTO TABLE tableName;

  mysql>LOAD  DATA INFILE “c:/mysql/data/data.txt”   INTO TABLE tableName;