04 กันยายน 2563

SQL Server : Install SQL Server and MariaDB via Docker Container on Windows 10

 ทความนี้นำเสนอ การติดตั้ง Docker บน Windows 10 พร้อมติดตั้ง SQL Server บน Docker 

ติดตั้ง Docker 

 ให้ทำการดาวน์โหลดตัวติดตั้ง Docker สำหรับ Windows 10 โดยเข้าไปที่เว็บ

https://www.docker.com/get-started

จากนั้นทำการดาวน์โหลด Docker Desktop for Windows 

จะได้ไฟล์ Docker Desktop Installer เมื่อได้ไฟล์เรียบร้อยให้ทำการติดตั้งโปรแกรมได้เลย 

ขณะติดตั้งจะขึ้นหน้าต่าง 







ให้คลิก OK

โปรแกรมก็จะทำการติดตั้งจนเสร็จ 

จะปรากฎไอคอน Docker Desktop ที่หน้า Desktop ให้ดับเบิ้ลคลิกเพื่อเรียกใช้งาน Docker 

รอสักครู่ให้ Docker Start จนเร็จ จากนั้นไปคลิกที่ ปุ่ม Hidden Icon ที่ Task bar 







ให้คลิกที่ไอคอน Docker แล้วเลือก Dashboard จะปรากฎหน้าต่าง Docker Dashboard

จากนั้นคลิก Sign In
(หากยังไม่เคยสมัครให้ทำการสมัครก่อนโดยเข้าไปสมัครที่ http://hub.docker.com)








หน้าต่าง Dashboard จะเป็นตัวบริหารจัดการ Container ที่เราสร้างขึ้น 

ต่อไปเราไปทำการติดตั้ง SQL Server 


ติดตั้ง SQL Server

ไปที่ Windows Search ที่ Taskbar แล้วค้นหา PowerShell 

เมื่อเจอแล้วให้ เปิดหน้าต่าง Windows PowerShell ในโหมด Run as Administrator










เมื่อเปิดหน้าต่าง PowerShell ขึ้นมาแล้วให้พิมพ์

docker login

เริ่มต้นติดตั้ง SQL Server 

สำหรับตัวอย่างคำสั่ง 2019-CU6-ubuntu-16.04 จะเป็นการติดตั้ง SQL Server 2019 

หากต้องการติดตั้งในรุ่นอื่นสามารถกำหนดรุ่นได้ตามต้องการ โดยดูรุ่นต่าง ๆ ตามลิงค์
https://hub.docker.com/_/microsoft-mssql-server

1. ดาวน์โหลดไฟล์ติดตั้งสำหรับ SQL Server โดยพิม์คำสั่ง 

docker pull mcr.microsoft.com/mssql/server:2019-CU6-ubuntu-16.04

โปรแกรมจะทำการดาวน์โหลด SQL Server ดังภาพ







2. สร้าง Container และติดตั้ง SQL Server ให้กับ Docker โดยพิมพ์คำสั่ง

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=รหัสผ่าน" -p1433:1433 --name sql2019 -d mcr.microsoft.com/mssql/server:2019-CU6-ubuntu-16.04

*** กำหนดรหัสผ่านสำหรับ SA ตรง รหัสผ่าน ตามต้องการ






เมื่อกำหนดเสร็จ ไปที่หน้าต่าง Docker Dashboard จะปรากฎ SQL Server ดังภาพ







ยินดีด้วย ติดตั้ง SQL Server ภายใต้ Docker เสร็จเรียบร้อย ในหน้าต่างนี้เราสามารถบริหารจัดการ Container sql2019 ได้ผ่านไอคอนด้านหลัง 

ต่อไปเราจะทำการทดสอบ ให้ไปทำการปิด firewall ก่อน

แล้วทำการติดตั้ง SQL Management Studio ดาวน์โหลดได้ตามเว็บไซต์ด้านล่าง

https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15

ติดตั้งเสร็จทำการเปิดใช้งาน

แล้ว login เข้า SQL Server  ตามภาพด้านล่าง


ทดสอบดูว่าเราติดตั้ง SQL Server รุ่นใด












ยินดีด้วย ทำสำเร็จแล้ว เย้ ๆ ๆ ๆ 

สำหรับระบบปฎิบัติการ MacOS ก็ทำลักษณะเดียวกัน แต่ต้องระวังเรื่องการกำหนดรหัสผ่าน ซึ่งต้องเป็นรหัสผ่านที่เป็นไปตามข้อกำหนด คือ อย่างน้อย 8 ตัวอักษรและมีตัวอักษรใหญ่เล็ก เป็นต้น ไม่เช่นนั้นจะไม่สามารถ start ตัว sql container ได้

สำหรับระบบปฏิบัติการ MacOS Linux ยังไม่มี SSMS เราสามารถดาวน์โหลด Azure Data Studio มาใช้แทนได้ โดยไปทำการดาวน์โหลดได้ที่เว็บ 

https://github.com/Microsoft/azuredatastudio

ติดตั้ง MariaDB

1. เปิด Terminal หรือ Powershell แล้วป้อนคำสั่ง

docker login

2. ดาวน์โหลดไฟล์ติดตั้งสำหรับ MariaDB  โดยพิม์คำสั่ง 

docker pull mariadb:latest

รอจนกระทั่งทำการดาวน์โหลดโปรแกรมเสร็จ

3. สร้าง Container และติดตั้ง MariaDB ให้กับ Docker โดยพิมพ์คำสั่ง

docker run --name mariadb -e MYSQL_ROOT_PASSWORD=รหัสผ่าน -d mariadb 


*** กำหนดรหัสผ่านสำหรับ root ตรง รหัสผ่าน ตามต้องการ


หากไม่มีข้อผิดพลาดใด ๆ การติดตั้งสำเร็จเรียบร้อย ให้ไปเปิด Docker -> Dashboard จะปรากฎ Container ของ mariadb 



ติดตั้ง Web Server

1. เปิด Terminal หรือ Powershell แล้วป้อนคำสั่ง

docker login

2. ดาวน์โหลดไฟล์ติดตั้งสำหรับ PHP 7.4 โดยพิม์คำสั่ง (รุ่นล่าสุดปี 2563)

docker pull php:7.4-apache


3. สร้าง Container และติดตั้ง PHP ให้กับ Docker โดยพิมพ์คำสั่ง


docker run -p 80:80 --name webm php:7.4-apache  


กรณีที่มีการใช้งาน port 80 อยู่ก่อนแล้ว ให้ทำการเปลี่ยน port ใหม่ เช่น 8080


docker run -p 8080:80 --name webm php:7.4-apache 



4. เมื่อติดตั้งเสร็จเรียบร้อย ให้เปิด browser แล้วป้อน url ดังนี้


http://localhost


หากขึ้นข้อความ ว่า....

Forbidden

You don't have permission to access this resource.


Apache/2.4.38 (Debian) Server at localhost Port 80



ยินดีด้วย คุณติดตั้ง web server ได้แล้ว



กลับมานับ 1 กันใหม่


เราจะมาทำการเขียน php กัน ดังนั้น เริ่มต้นกันใหม่อีกครั้ง 


1. ให้ไปทำการสร้าง โฟลเดอร์ใหม่ ชื่ออะไรก็ได้ เช่น php_www

แล้วไปสร้างเท็กซ์ไฟล์ ธรรมด้า ธรรมดา ชื่อ Dockerfile  (ไม่ต้องมีนามสกุลไฟล์) 

ป้อนคำสั่งในไฟล์ ดังนี้


FROM php:7.4-apache



2. สร้างไฟล์ชื่อ docker-compose.yml แล้วเขียนคำสั่ง ดังนี้


version: "3"
services:
www01:
build: .
ports:
- "8080:80"
volumes:
- ./src:/var/www/html/
networks:
- default



3. สร้างโฟลเดอร์ ชื่อ src ภายใต้ php_www แล้วเขียนคำสั่ง php เพื่อทดสอบ 

โดยสร้างไฟล์ชื่อ phpinfo.php แล้วป้อนคำสั่ง


<?php 

    phpinfo();

?>


เมื่อสร้างไฟล์เสร็จจะได้ไฟล์ตามภาพด้านล่าง
















4. เปิดโปรแกรม Powershell หรือ Terminal

พิมพ์


docker login


แล้วย้ายตำแหน่งโฟล์เดอร์ไปที่ โฟลเดอร์ที่เก็บไฟล์ ( php_www ที่สร้างไว้ในข้อ 1 )


แล้วป้อนคำสั่งต่อ ดังนี้


docker-compose up

กลับไปดูที่ Docker dashboard จะปรากฎ container รันขึ้นมาอีกตัว



 














5. เปิดโปรแกรม browser ขึ้นมาแล้วป้อน url ดังนี้


http://localhost:8080/phpinfo.php


จะปรากฎหน้าจอ phpinfo ดังภาพ





















ที่เหลือก็นำไฟล์ .php มาใส่ไว้ใน โฟลเดอร์ src (โฟลเดอร์ที่สร้างไว้ในข้อ 3) ก็สามารถเรียกใช้งานได้แล้ว


สรุปง่าย ๆ แบบส่วนตัว


container ที่สร้างเหมือนเราสร้างโปรเจกต์ ในนั้นก็จะประกอบไปด้วยไฟล์ที่จำเป็น 

ไม่ใช้ก็ลบ container ออก หรือ หยุดก็ได้ 

ใช้เมื่อไหร่ก็เข้าไปที่โฟลเดอร์ แล้วก็เรียกคำสั่ง  docker-compose up 

ระวังเรื่อง port ชนกันให้ดี 


 ขอแสดงความยินดีด้วย



;-)


01 สิงหาคม 2563

UNITY : Assets\Standard Assets\Utility\SimpleActivatorMenu.cs(14,16): error CS0619: 'GUIText' is obsolete: 'GUIText has been removed. Use UI.Text instead.'

Standard Assets สามารถดาวน์โหลดได้ที่


สำหรับผู้ใช้รายใหม่ที่ไม่เคยดาวน์โหลด Standard Assets มาก่อน จะไม่สามารถดาวน์โหลได้ ให้ดาวน์โหลดผ่าน เว็บด้านล่าง
https://ryiah.com/unity/assets/StandardAssets20184.unitypackage

** Standard Assets ไม่ไปต่อ ไม่มีให้ดาวน์โหลดแล้ว
สำหรับตัวที่พอจะใช้แทน Standard Assets ได้ก็ให้ไปดาวน์โหลดผ่านเว็บด้านล่าง


เมื่อทำการ Import ตัว Standard Assets เข้ามาใช้งาน หากเกิดอาการนี้ ให้แก้ไขตามด้านล่าง

ผู้ที่นำเอา Standard Assets มาใช้ใน Unity 2018 ขึ้นไป จะพบ Error ดังนี้

Assets\Standard Assets\Utility\SimpleActivatorMenu.cs(14,16): error CS0619: 'GUIText' is obsolete: 'GUIText has been removed. Use UI.Text instead.'

เอาง่าย ๆ GUIText มันใช้ไม่ได้แล้วบน (obsolate -> ล้าสมัย) ดังนั้นจะใช้ Standard Assets ก็ต้องใช้กับ Unity 2017 หรือ ต่ำกว่า

แต่..... ยังมีทางแก้ไข เมื่อพบ Error ให้ ดับเบิ้ลคลิกที่ Error ก็จะเข้าไปสู่คำสั่งที่ Error แล้วแก้ไขดังภาพ

ที่ไฟล์  SimpleActivatorMenu.cs แก้ไขตามภาพ

















เพิ่ม
using UintyEngine.UI;                       

เปลี่ยน
GUIText ไปเป็น Text


---------------------------------------------------------
ในไฟล์ ForcedReset.cs ให้แก้ไขในส่วนของ

เพิ่มคำสั่ง 
Using UnityEngine.UI;

และทำการแก้ไขบรรทัด

[RequireComponent(typeof (GUITexture))]
เป็น
[RequireComponent(typeof (Image))]


โชคดี รวย ๆ โควิดหายไป

06 มีนาคม 2563

SQL Server : How to Connect SQL Server via Python

ท่านที่ต้องการเชื่อมต่อฐานข้อมูล SQL Server ผ่านทาง Python ขอบอกไว้ตรงนี้เลยว่าไม่ได้ยาก ลองมาทำกัน ดังนี้
1. ทำการติดตั้ง Python กันก่อน (กรณีที่เครื่องเรายังไม่ได้ติดตั้ง)
    ให้ไปดาวน์โหลด Python แล้วทำการติดตั้งที่เว็บ
           
             https://www.python.org/downloads/

 2. ทำการติดตั้ง Pyodbc โดยให้เปิดหน้าต่าง cmd.exe ของ Windows ขึ้นมา
     จากนั้นเข้าไปยังโฟลดเดอร์ที่เราติดตั้ง Python เอาไว้
     สำหรับของผู้เขียนติดตั้งไว้ใน Folder                         
           
             C:\Users\Kasemiyake\Appdata\Local\Programs\Python\Python38

    ให้ทำการเปลี่ยนไดเรกทรอรี่ไปยังโฟลเดอร์ Scripts ที่อยู่ภายใต้โฟลดเดอร์ของ Python
    โดยพิมพ์คำสั่ง

              C:
              CD \Users\Kasemiyake\Appdata\Local\Programs\Python\Python38\Scripts 
   
    จากนั้นทำการติดตั้ง Pyodbc โดยพิมพ์คำสั่ง

              pip install pyodbc



เมื่อติดตั้งทุกอย่างเสร็จเรียบร้อย
ให้ทำการเปิดโปรแกรม Python Shell ขึ้นมาโดยพิมพ์  IDLE  ที่ช่อง Search ของ Windows ดังภาพ




















เมื่อเปิด Python Shell ขึ้นมาแล้ว ให้ไปคลิกเลือกเมนู File -> New File จากนั้นป้อนคำสั่งทดสอบการติดต่อฐานข้อมูล

import pyodbc
conn = pyodbc.connect('Driver={SQL Server};'
                      'Server=ชื่อ Server ของ SQL Server;'
                      'Database=ชื่อฐานข้อมูล;'
                      'Trusted_Connection=yes;')

cursor = conn.cursor()
cursor.execute('SELECT * FROM [ชื่อตาราง]')

for row in cursor:
    print(row)

หมายเหตุ ให้ทำการแก้ไขชื่อ Server และชื่อของตารางตามต้องการ

จากนั้นไปที่เมนู Run -> Run Module

ถ้าทำสำเร็จจะได้ข้อมูลดังภาพประกอบ























สำหรับการติดต่อกับฐานข้อมูล SQL Server ด้วยภาษา Python ผ่าน Pyodbc ก็ขอจบไว้เพียงเท่านี้

ปีนี้หนักหนา Covid-19 ขอให้ผ่านไป ประเทศไทยรอดพ้นวิกฤติ
"I Believe in You"

Copyright(c) 2007 - 2022 by Kasem Kamolchaipisit.