나노 서버에 MySQL 호스팅하기

이 글을 정보 공유를 목적으로 발췌 및 번역한 게시물입니다. 원본 문서는 https://social.technet.microsoft.com/wiki/contents/articles/34655.nano-server-deploying-mysql-database-server.aspx 를 참고하여 주시기 바랍니다.

 

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

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

2. MySQL 다운로드 및 배포

3. MySQL 구성 및 서비스 시작

4. MySQL 데몬 설치 및 구성

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

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

 

 

 

1. 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"

위와 같이 나노 서버 이미지가 생성되면 해당 이미지를 가지고 가상머신을 생성합니다.

 

 

2. MySQL 다운로드 및 배포

먼저, 다음 경로로 이동하여 MySQL을 다운로드 받습니다.

URL: https://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-ComputerName10.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를 다운로드 받아 설치할 차례입니다.

다운로드 경로: https://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에 대한 관리 및 운영이 가능합니다.

 

 

 

그럼 이상으로 오늘 포스팅을 마치겠습니다.

감사합니다.