ติดตั้ง MySql บน Ubuntu 18.04

1.Installing MySQL

$ sudo apt update
$ sudo apt install mysql-server

2.Configuring MySQL

$ sudo mysql_secure_installation

3.Adjusting User Authentication and Privileges

$ mysql -u root -p
mysql> GRANT ALL ON *.* TO 'sammy'@'localhost' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;

4.Testing MySQL

$ systemctl status mysql.service
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-02-06 15:32:25 +07; 17min ago
 Main PID: 3831 (mysqld)
    Tasks: 28 (limit: 4915)
   CGroup: /system.slice/mysql.service
           └─3831 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid

ถ้า mysql ไม่ start ให้ start ด้วย

$ sudo systemctl start mysql 

ดูเวอร์ชันของ mysqladmin

$ sudo mysqladmin -p -u root version
Enter password: 
mysqladmin  Ver 8.42 Distrib 5.7.29, for Linux on x86_64
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version		5.7.29-0ubuntu0.18.04.1
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/run/mysqld/mysqld.sock
Uptime:			18 min 31 sec

Threads: 1  Questions: 21  Slow queries: 0  Opens: 113  Flush tables: 1  Open tables: 106  Queries per second avg: 0.018

ติดตั้ง Nginx บน Ubuntu 18.04

1.Installing Nginx

$ sudo apt update
$ sudo apt install nginx

2.Adjusting the Firewall

$ sudo ufw app list
Available applications:
  CUPS
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  • Nginx Full: This profile opens both port 80 (normal, unencrypted web traffic) and port 443 (TLS/SSL encrypted traffic)
  • Nginx HTTP: This profile opens only port 80 (normal, unencrypted web traffic)
  • Nginx HTTPS: This profile opens only port 443 (TLS/SSL encrypted traffic)
$ sudo ufw allow 'Nginx Full'
$ sudo ufw allow 'Nginx HTTP'
$ sudo ufw status
Status: inactive
$ sudo ufw enable
$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
Nginx Full                 ALLOW       Anywhere
Nginx HTTP                 ALLOW       Anywhere
Nginx Full (v6)            ALLOW       Anywhere (v6)
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

เปิดพอร์ทแบบกำหนดไปเลย

$ sudo ufw allow 22/tcp
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp

3.Checking your Web Server

$ systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-02-06 14:26:15 +07; 33min ago
     Docs: man:nginx(8)
 Main PID: 5720 (nginx)
    Tasks: 5 (limit: 4915)
   CGroup: /system.slice/nginx.service
           ├─5720 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           ├─5721 nginx: worker process
           ├─5722 nginx: worker process
           ├─5723 nginx: worker process
           └─5724 nginx: worker process

ติดตั้ง Docker Desktop WSL 2

Prerequisites

  • อัพเดท Windows 10 ให้เป็นเวอร์ชัน 1909 (build 18363)
  • เปิด Windows Insider Program Settings แล้วเลือก Fast (Windows 10 Insider Preview build 19018 or higher).
  • ติดตั้ง WSL 2

Download

Install

  • ติดตั้ง Docker Desktop Installer.exe ที่ download มา
  • ที่ System tray ด้านล่างขวาของหน้าจอ ให้คลิกขวาที่ Docker เลือก Settings > General.
  • เลือก Enable the experimental WSL 2 based engine
  • กด Apply & Restart
  • เมื่อ Docker Desktop รีสตาร์ทเสร็จ, เลือก Settings > Resources > WSL Integration แล้วเลือก WSL 2 distributions (เช่น Ubuntu-18.04)
  • กด Apply & Restart

ตรวจสอบการติดตั้ง

ดูเวอร์ชัน

> docker --version
Docker version 19.03.5, build 633a0ea

ดูเวอร์ชันแบบละเอียด

> docker version
Client: Docker Engine - Community
 Version:           19.03.5
 API version:       1.40
 Go version:        go1.12.12
 Git commit:        633a0ea
 Built:             Wed Nov 13 07:22:37 2019
 OS/Arch:           windows/amd64
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          19.03.5
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.12
  Git commit:       633a0ea
  Built:            Wed Nov 13 07:29:19 2019
  OS/Arch:          linux/amd64
  Experimental:     true
 containerd:
  Version:          v1.2.10
  GitCommit:        b34a5c8af56e510852c35414db4c1f4fa6172339
 runc:
  Version:          1.0.0-rc8+dev
  GitCommit:        3e425f80a8c931f88e6d94a8c831b9d5aa481657
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

Link

ติดตั้ง WSL 2

ดู doc ที่ aka.ms/wsl2

ขั้นตอนการติดตั้ง WSL 2

1.update Windows ให้เป็นเวอร์ชันล่าสุด (1909) , ตรวจสอบเวอร์ชันด้วยคำสั่ง winver

2.เปิด Windows Insider Program Settings แล้วเลือก Fast

3.เปิด Turn Windows features on or off เลือก Windows Subsystem for Linux และ Virtual Machine Platform

4.เปิด Microsoft Store เลือกติดตั้ง Ubuntu 18.04

หลังจากติดตั้งเสร็จ จะให้เราตั้ง username และ password

5.เปิด Power Shell

list ดู Distro ที่ติดตั้ง

> wsl -l
Windows Subsystem for Linux Distributions:
Ubuntu-18.04 (Default)

กำหนดให้ Ubuntu-18.04 ที่พึ่งติดตั้ง ใช้ WSL 2

> wsl --set-version Ubuntu-18.04 2

กำหนดให้ default เป็นเวอร์ชัน 2 เลย

> wsl --set-default-version 2

ตรวจสอบดูว่าเป็น version 2 แล้วหรือยัง

> wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-18.04    Stopped         2

ถ้ารันแล้วไม่เจอคำสั่ง -v แสดงว่ายังเป็น WSL 1

6.กลับมาที่ app Ubuntu18.04 แล้วลองเรียก VS Code

> wsl -d Ubuntu-18.04

หรือ

$ code .

ตรวจสอบเวอร์ชันของ Windows 10

เปิด cmd แล้วพิมพ์

> ver
Microsoft Windows [Version 10.0.19551.1005]

นำเลข build ที่ได้ไปเทียบดูเวอร์ชันที่ Windows 10 release information

VersionAvailability dateOS buildLatest revision date
190912-11-1918363.59214-01-20
190321-05-1918362.59214-01-20
180928-03-1917763.10123-01-20
180913-11-1817763.10123-01-20
180310-07-1817134.12823-01-20
180330-04-1817134.12823-01-20
170918-01-1816299.16523-01-20
170917-10-1716299.16523-01-20

หรือดู Version จากค่า register

> Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ReleaseId
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
    ReleaseId    REG_SZ    2004

ดูด้วย GUI ง่ายสุด เปิด cmd หรือกด Win+R แล้วพิมพ์

> winver

Python3

Set Python’s default version to 3.x on OS X

Open ~/.bash_profile file.

$ nano ~/.bash_profile

Then put the alias as follows:

alias python='python3'

Now save the file and then run the ~/.bash_profile file.

$ source ~/.bash_profile

Congratulation !!! Now, you can use python3 by typing python.

$ python --version
Python 3.8.1

Upgrade pip command

$ pip3 install --upgrade pip

Install virtualenv

$ pip3 install virtualenv

ใช้ brew ติดตั้ง python

$ brew install python

ใช้ C# อ่านไฟล์ CSV

using System;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string filename = "test.csv";
            string text = System.IO.File.ReadAllText(filename, Encoding.GetEncoding(874)).Trim();
            string[] rows = text.Split('\n');
            Console.WriteLine(string.Format("There are {0} rows in '{1}'.", rows.Count(), filename));

            Regex CSVParser = new Regex(",(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))");
            for (int r = 0; r < rows.Count(); r++)
            {
                //string[] cols = rows[r].Split(',');
                string[] cols = CSVParser.Split(rows[r]);

                for (int c = 0; c < cols.Count(); c++)
                {
                    // clean up the fields (remove " and leading spaces)
                    cols[c] = cols[c].TrimStart(' ', '"');
                    cols[c] = cols[c].TrimEnd('"');
                    Console.Write(cols[c]);
                }
                Console.WriteLine();
            }
        }
    }
}

Link

Posted in C#