안녕하세요.

오늘 포스팅할 내용은 나노 서버(Nano Server)에 MySQL을 호스팅하는 방법입니다.


앞서 언급한 내용과 같이 개인적인 판단으로는 경량 OS 역할을 하는 나노 서버가 차후에는 많이 사용되지 않을까 하는 기대감이 있습니다. 나노 서버가 Windows Server의 고유(?) 기능인 IIS, DNS 뿐만 아니라 Node.js와 파이썬, ASP.NET 5를 지원하고 Mysql까지 설치하여 이용이 가능하기 때문에 경량 OS임에도 다양한 역할을 수행할 수 있어 많은 역할들로 사용되지 않을까 싶습니다.

(그래서 미리 미리 많이 공부해두려고 합니다. ^-^)


이번 포스팅에서는 다음 절차를 따라 나노 서버에서 MySQL을 호스팅하는 방법을 설명하고 있습니다.


1. MySQL을 호스팅 할 나노서버 이미지 생성(가상머신 또는 호스트)

2. MySQL 다운로드 및 배포

3. MySQL 구성 및 서비스 시작

4. MySQL 데몬 설치 및 구성

5. 나노서버에서 새 MySQL 데이터베이스 시작하기

6. 원격 서버에 MySQL Workbench 6.3 CE 다운로드 및 설치





1. MySQL을 호스팅 할 나노 서버 이미지 생성

나노 서버에 MySQL을 호스팅하기 위해서는 먼저 나노 서버 이미지를 생성해야 합니다. 이 포스팅에서는 MySQL을 호스팅 할 나노 서버를 가상머신으로 생성하기 때문에 아래와 같은 Powershell 스크립트를 사용하였습니다.


나노서버 모듈 가져오기: Import-Module .\NanoServerImageGenerator.psm1


새로운 나노서버 이미지 생성하기: New-NanoServerImage -DeploymentType Guest -Edition Standard -MediaPath H:\ -BasePath .\Base -TargetPath "G:\VM\Nano\NanoMySQL.Vhdx" -ComputerName "NanoMySQL" -InterfaceNameOrIndex Ethernet -Ipv4Address 10.0.0.55 -Ipv4SubnetMask 255.0.0.0 -Ipv4Gateway 10.10.10.254 -Ipv4Dns 10.10.10.21 -DomainName "DONKEY.LAB" 

-DeploymentType: 가상 머신인 경우 Guest 물리 머신인 경우 Host

-Edition: Windows Server Edition으로 Standard 또는 Datacenter

-MediaPath: ISO 이미지 마운트 경로

-TargetPath: 나노 서버 이미지가 생성될 경로 및 파일명 (2세대인 경우 vhdx, 1세대인 경우 vhd)

-ComputerName: Hostname 

-InterfaceNameOrIndex: IP를 세팅할 네트워크 카드 이름 

-Ipv4Address, -Ipv4SubnetMask, -Ipv4Gateway, -Ipv4Dns; IP주소, 서브넷마스크, 게이트웨이 주소, DNS 주소

-DomainName: 도메인 이름


위와 같이 나노 서버 이미지 생성이 완료되면 해당 이미지로 가상 머신을 생성하고 가상 머신을 시작합니다.



2. MySQL 다운로드 및 배포

MySQL을 호스팅할 나노 서버를 생성하였다면 MySQL을 다운로드 받아 준비할 차례입니다. 아래 사이트를 통해 MySQL을 다운로드 받습니다.


URL: http://dev.mysql.com/downloads/mysql/


다운로드 받은 파일을 원격 공유나 Powershell을 통해 MySQL을 호스팅 할 나노 서버에 복사합니다.


이제부터는 나노 서버에 원격으로 접속하여 작업이 필요하기 때문에 Powershell을 통해 원격 세션을 설정합니다.


먼저 Powershell을 통해 나노 서버가 신뢰할 수 있는 호스트인지 확인합니다.

Get-Item -Path WSMan:\localhost\Client\TrustedHosts;



신뢰할 수 있는 호스트에 나노 서버가 없는 경우 다음 명령어를 통해 신뢰할 수 있는 호스트로 나노 서버 IP주소를 설정합니다.

Set-Item -Path WSMan:\localhost\Client\TrustedHosts -Value 10.0.0.55 -Force;

(-Value는 나노 서버 IP 주소입니다)



위와 같이 신뢰할 수 있는 호스트 등록이 완료되었다면 나노 서버에 Powersehll로 원격 세션을 연결할 수 있습니다.

Enter-PSSession -ComputerName 10.0.0.55 -Credential Donkey\administrator





3. MySQL 구성 및 서비스 시작

원격 세션을 통해 나노 서버에 연결되었다면 MySQL의 폴더 경로를 나노 서버의 환경 경로 변수로 등록하여 구성할 차례입니다.


먼저, 다음 명령어를 통해 현재 환경 경로 변수를 확인합니다.

$Env:Path ;


다음 명령어로 위에서 나노 서버에 복사해둔 MySQL 경로를 환경 경로 변수에 추가합니다.

$Env:Path += ";C:\MySQL\mysql-5.7.15-winx64\bin\" ;


다음 명령어로 영구적으로 MySQL 경로를 환경 경로 변수에 저장합니다.

SETX PATH $Env:Path /M


다시 조회해보면 다음과 같이 MySQL 경로가 환경 경로 변수에 추가된 것을 확인할 수 있습니다.

$Env:Path ;


다음은 나노 서버에서 MySQL이 동작할 수 있도록 MySQL 폴더에 기본 데이터 폴더를 만들고 MySQL 데몬을 초기화 할 차례로 다음과 같이 Powershell로 MySQL 기본 데이터 폴더를 생성합니다.

New-Item -Path C:\MySQL\mysql-5.7.15-winx64\Data -ItemType Directory


이제 MySQL 버전 확인 후 MySQL 데몬을 초기화 할 차례입니다.

버전 확인: MySQL --version


MySQL 데몬 초기화: MySqld --initialize --console


MySQL 데몬이 모든 주요 문제 없이 초기화가 가능하다면 root 패스워드를 재거설정하고 MySQL 데몬을 다시 초기화 할 수 있는 초기화 파일을 생성합니다.


root 암호를 변경하는 MySQL-init.txt 파일 생성하기: Set-Content -Value “ALTER USER 'root'@'localhost' IDENTIFIED BY 'Password123';” -Path "C:\MySQL\mysql-5.7.15-winx64\mysql-init.txt" -Encoding Ascii ; 


MySQL 데몬에 root 패스워드를 변경하는 MySQL-init.txt 파일을 전달하여 초기화 파일로 시작하기: MySQLd --init-file="C:\MySQL\mysql-5.7.15-winx64\mysql-init.txt" --console

(Ctrl + C 키를 눌러 종료합니다)






4. MySQL 데몬 설치 및 구성

이제 나노 서버에 서비스로 MySQL 데몬을 설치할 차례입니다.


먼저, 다음과 같이 MySQL 데몬 서비스를 설치합니다.

MySQLd --install 


이제 MySQL 서비스가 생성되었는지와 시작 여부를 확인합니다.

Get-Service -Name MySQL


위와 같이 MySQL 서비스가 생성은 되었으나 시작되지 않은 경우 서비스를 시작한 후 다시 확인합니다.

Start-Service -Name MySQL

Get-Service -Name MySQL


서비스를 시작한 후에는 변경한 패스워드를 통해 root 계정으로 MySQL 데이터베이스에 로그인하여 데이터베이스를 확인합니다.

MySQL --user=root --password=Password123 -Bse "SHOW DATABASES;" 


마지막으로 나노 서버에서 호스팅하는 MySQL을 로컬이 아닌 다른 인프라에서 사용할 필요가 있는 경우 이를 허용하기 위해서는 TCP 포트 3306(MySQL 기본 포트)에 대한 방화벽 허용 규칙을 만들 필요가 있습니다. 


다음과 같은 명령어를 통해 방화벽 규칙을 생성합니다.

New-NetFirewallRule -Name "MySQL Connections" -DisplayName "MySQL Port 3306 connections In" -Description "Allow MySQL to listen on Port 3306 connections from MySQL Workbench" -Group "MySQL" -Direction Inbound -Protocol TCP -LocalPort 3306 -Action Allow -Profile Public





5. 나노 서버에서 새 MySQL 데이터베이스 시작하기

위의 작업들을 통해 나노 서버에서 MySQL을 호스팅할 수 있었습니다. 마지막으로 Powershell을 통해 나노 서버에서 호스팅하는 MySQL에 새로운 데이터베이스를 생성하고, 새로운 사용자를 만들어 권한을 부여하는 방법입니다.


새로운 데이터베이스 생성하기

MySQL --user=root --password=Password123 -Bse "CREATE DATABASE NanoMySQLDB CHARACTER SET utf8 COLLATE utf8_bin;" 


새로운 사용자 만들기

MySQL --user=root --password=Password123 -Bse "CREATE USER '계정명'@'%' IDENTIFIED BY 'password';"


사용자에게 모든 데이터베이스에 대한 모든 권한 부여하기

MySQL --user=root --password=Password123 -Bse "GRANT ALL PRIVILEGES ON *.* TO '계정명'@'%' WITH GRANT OPTION;"







6. 원격 서버에 MySQL Workbench 6.3 CE 다운로드 및 설치

이제 나노 서버에 호스팅하는 MySQL을 GUI 환경에서 관리하기 위해 MySQL WorkBench를 다른 클라이언트에 설치한 후 TCP 3306을 사용하여 나노 서버에 호스팅하는 MySQL에 연결하는 방법입니다.


MySQL WorkBench를 다운로드 받아 설치하기 위해서는 먼저 Visual C++ 2013 재배포 패키지를 다운로드 받아 설치해야 합니다.

(Visual C++ 2013 재배포 패키지를 설치하지 않고 MySQL WorkBench를 설치하는 경우 다음과 같은 경고 창이 나타납니다)


Visual C++ 2013 재배포 패키지 다운로드 경로: https://www.microsoft.com/en-my/download/details.aspx?id=40784



이제 MySQL WorkBench를 다운로드 받아 설치할 차례입니다.

다운로드 경로: http://dev.mysql.com/downloads/workbench/



다운로드가 완료되면 설치를 진행할 차례입니다. (설치는 무척 간단합니다..)


MySQL WorkBench 6.3 CE Setup Wizard 화면에서 Next 버튼을 클릭합니다.


설치 폴더 선택 창에서 설치할 폴더를 선택한 후 Next 버튼을 클릭합니다. 


설치 타입 창에서 설치 타입을 결정한 후 Next 버튼을 클릭합니다.


설치 준비 창에서 설치 타입과 설치 경로를 다시 확인한 후 Install 버튼을 클릭합니다.


설치 창에서 설치가 진행됩니다.



설치가 완료되면 나노 서버에서 호스팅하는 MySQL 연결을 위하여 MySQL WorkBench를 실행한 후 왼쪽 상단의 MySQL Connections + 버튼을 클릭합니다.


Setup New Connection 화면에서 Connection Name, HostName(또는 IP Address), Username를 입력한 후 Test Connection을 클릭합니다.


Connect to MySQL Server 화면에서 계정의 Password를 입력한 후 OK 버튼을 클릭합니다.


접속 테스트에 성공하여 다음과 같은 화면이 나타나면 OK 버튼을 클릭합니다.


접속 테스트에 성공하였다면 OK 버튼을 클릭하여 새로운 연결 설정을 완료합니다.


다시 MySQL WorkBench 초기화면에서 생성한 연결을 더블 클릭하여 나노 서버에서 호스팅하는 MySQL에 접속합니다.


접속이 완료되면 다음과 같이 MySQL 서버 상태, 사용자 및 권한 확인, 쿼리 실행 등 MySQL에 대한 관리 및 운영이 가능합니다.






그럼 이상으로 나노 서버에서 MySQL을 호스팅하는 방법에 대한 포스팅을 마치겠습니다.

감사합니다.















이번 포스팅은 정보 공유를 목적으로 하기 사이트에 내용을 옮긴 것입니다. 하기 사이트를 통해 원본 글을 확인해보세요.

 http://social.technet.microsoft.com/wiki/contents/articles/34655.nano-server-deploying-mysql-database-server.aspx


안녕하세요.

오늘 포스팅은 나노서버에서 Hyper-V를 실행하는 방법에 대한 내용입니다.


개인적으로 Windows Server 2016에서 가장 강력한 기능 중 하나라고 생각하는 부분이 나노서버인데요.

나노서버에서 실행할 수 있는 역할 중 Hyper-V도 많이 쓰이게되지 않을까 싶습니다.

(저의 희망사항일 수도..^^;;)


나노서버에서 Hyper-V를 실행하기 위해서는 먼저 Hyper-V 역할이 포함된 나노서버 이미지(vhd 또는 Vhdx)를 만들어야 합니다.


Powershell Script 예)

New-NanoServerImage -DeploymentType Guest -Edition DataCenter -MediaPath H:\ -BasePath .\Base -TargetPath "F:\VM\Nano\NANO-HV.Vhdx" -ComputerName "NANO-HV"  -Compute 

-DeploymentType: 물리서버인 경우 Host, 가상머신인 경우 Guest

-Edition: Windows Server Edtion으로 DataCenter 또는 Standard

-MediaPath: ISO 이미지 경로

-TargetPath: 나노서버 이미지가 저장될 경로 및 파일 이름

-Computername: 호스트 이름

-Compute: Hyper-V 역할


이미지가 만들어지면 해당 이미지를 Mount하여 서버를 실행하고 원격서버에서 해당 나노서버 IP를 신뢰할 수 있도록 등록합니다.


Powershell Script 예)

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "servername or IP"


예를 들어 Nano Server IP가 10.0.0.39인 경우 다음과 같이 입력합니다.

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "10.0.0.39"


위와 같이 신뢰할 수 있도록 등록한 경우 Powershell을 통해 원격으로 해당 서버에서 접속할 수 있습니다.


Powershell Script 예)

Enter-PSSession -ComputerName "servername or IP" -Credential servername\administrator


예를 들어 Nano Server IP가 10.0.0.39인 경우 다음과 같이 입력합니다.

Enter-PSSession -ComputerName "10.0.0.39" - Credential "10.0.0.39\administrator"


원격으로 접속이 완료되면 Hyper-V 역할이 정상적으로 설치되어 있는지 확인합니다.


정상적으로 Hyper-V 역할이 설치되어 있다면 Powershell을 통해 VM을 생성하고 정상적으로 실행되는지 확인할 차례입니다.


먼저, VM이 사용할 가상하드디스크를 생성합니다.


Powershell Script 예)

New-VHD -Path "경로 및 파일명" -SizeBytes "가상하드디스크 사이즈" -Dynamic (또는 Fixed)


예를들어 10GB 크기의 동적 디스크를 D:\VM\TESTVM경로에 TESTVM.vhdx로 생성하고 싶은 경우 다음과 같이 입력합니다.

New-VHD -Path D:\VM\TESTVM\TESTVM.vhdx -SizeBytes 10GB -Dynamic


다음으로 나노서버에 VM을 생성합니다.


Powershell Script 예)

New-VM -Name "가상머신이름" -path "가상머신저장공간" -MemoryStartupBytes "메모리크기"


예를 들어 2GB 메모리의 TESTVM이라는 이름으로 D:\VM\TESTVM 경로에 VM을 생성하는 경우 다음과 같이 입력합니다. 

New-VM -Name TESTVM -path D:\VM\TESTVM\ -MemoryStartupBytes 2GB


VM생성이 완료되면 다음과 같이 생성한 가상하드디스크 파일을 가상머신에 연결합니다.


Powershell Script 예)

Get-VM -Name TESTVM | Add-VMHardDiskDrive -path "D:\VM\TESTVM\TESTVM.vhdx"\


VM 생성이 완료되었다면 나노서버에서 VM이 정상적으로 실행되는지 확인하기 위해 VM을 시작해보면 정상적으로 실행되는 것을 확인할 수 있습니다.

Get-VM -Name TESTVM | Start-VM


추가로, Hyper-V 관리자가 설치된 서버에서 원격으로 나노서버에 연결해보면 가상머신이 정상적으로 실행되고 있는 것을 확인할 수 있습니다.





이상으로 오늘 포스팅을 마칩니다.

감사합니다.



+ Recent posts