Linux용 Windows 하위 시스템에서 데이터베이스 시작하기
이 단계별 가이드는 WSL의 프로젝트에서 데이터베이스로 장치 연결을 시작하는 데 도움이 됩니다. MySQL, PostgreSQL, MongoDB, Redis, Microsoft SQL Server 또는 SQLite로 시작합니다.
필수 조건
- 버전 2004, 빌드 19041 이상으로 업데이트된 Windows 11 또는 Windows 10을 실행합니다.
- WSL을 사용하여 Linux 배포판을 설치하고 Linux 사용자 이름과 암호를 만듭니다.
데이터베이스 시스템 간의 차이점
데이터베이스 시스템에 몇 가지 인기 있는 선택 항목은 다음과 같습니다.
- MySQL (SQL)
- PostgreSQL (SQL)
- Microsoft SQL Server (SQL)
- SQLite (SQL)
- MongoDB (NoSQL)
- Redis (NoSQL)
MySQL은 데이터 형식이 서로 관련될 수 있는 하나 이상의 테이블로 데이터를 구성하는 오픈 소스 SQL 관계형 데이터베이스입니다. 수직으로 확장이 가능하기 때문에 한 개의 컴퓨터로 작업을 수행할 수 있습니다. 현재 4개의 데이터베이스 시스템에서 가장 널리 사용됩니다.
PostgreSQL(Postgres라고도 함)은 확장성 및 표준 준수에 중점을 둔 오픈 소스 SQL 관계형 데이터베이스입니다. 이제 JSON도 처리할 수 있지만, 일반적으로 정형 데이터, 수평적 크기 조정 및 전자 상거래 및 금융 거래와 같은 ACID 호환 요구에 더 적합합니다.
Microsoft SQL Server에는 Windows의 SQL Server, Linux의 SQL Server, Azure의 SQL이 포함됩니다. 또한, 소프트웨어 애플리케이션에서 요청한 대로 데이터를 저장하고 검색하는 기본 기능을 사용하여 서버에 설정된 관계형 데이터베이스 관리 시스템이기도 합니다.
SQLite는 메모리가 낮은 환경에서도 이식성, 안정성 및 우수한 성능으로 유명한 오픈 소스 자체 포함 파일 기반 “서버리스” 데이터베이스입니다.
MongoDB는 JSON을 사용하고 스키마가 없는 데이터를 저장하도록 고안된 오픈 소스 NoSQL 문서 데이터베이스입니다. 수평으로 확장이 가능하기 때문에 여러 대의 작은 컴퓨터로 작업을 수행할 수 있습니다. 우수한 유연성으로 비정형 데이터 및 실시간 분석 캐싱에 적합합니다.
Redis 는 오픈 소스 NoSQL 메모리 내 데이터 구조 저장소입니다. 문서 대신 저장소에 키 값의 쌍을 사용합니다.
MySQL 설치
WSL에서 실행되는 Linux 배포판에 MySQL을 설치하려면 MySQL 문서의 Linux에 MySQL 설치 지침을 따릅니다. 먼저 wsl.conf
구성 파일에서 systemd 지원을 사용하도록 설정해야 수도 있습니다.
Ubuntu 배포를 사용하는 예제:
- Ubuntu 명령줄을 열고 사용 가능한 패키지(
sudo apt update
)를 업데이트합니다. - 패키지가 업데이트되면
sudo apt install mysql-server
을(를) 사용하여 MySQL을 설치합니다. - 설치를 확인하고 버전 번호(
mysql --version
)를 가져옵니다. - MySQL 서버 시작/ 상태 확인:
systemctl status mysql
- MySQL 프롬프트를 열려면
sudo mysql
을(를) 입력합니다. - 사용 가능한 데이터베이스를 보려면 MySQL 프롬프트에서
SHOW DATABASES;
을(를) 입력합니다. - 새 데이터베이스를 만들려면
CREATE DATABASE database_name;
을(를) 입력합니다. - 데이터베이스를 삭제하려면
DROP DATABASE database_name;
을(를) 입력합니다.
MySQL 데이터베이스 작업에 대한 자세한 내용은 MySQL 문서를 참조하십시오.
VS Code에서 MySQL 데이터베이스를 사용하려면 MySQL 확장을 사용해 보세요.
포함된 보안 스크립트를 실행할 수도 있습니다. 이렇게 하면 원격 루트 로그인 및 샘플 사용자와 같은 항목에 대해 덜 안전한 기본 옵션 중 일부가 변경됩니다. 이 스크립트에는 MySQL 루트 사용자의 암호를 변경하는 단계도 포함되어 있습니다. 보안 스크립트를 실행하려면 다음을 수행합니다.
- MySQL 서버를 시작합니다.
sudo service mysql start
- 보안 스크립트 프롬프트를 시작합니다.
sudo mysql_secure_installation
- 첫 번째 프롬프트에서는 MySQL 암호의 강도를 테스트하는 데 사용할 수 있는 VALIDATE PASSWORD COMPONENT를 설정할 것인지 묻는 메시지가 표시됩니다. 간단한 암호를 설정하려면 이 구성 요소를 설정하면 안 됩니다.
- 그런 다음, MySQL 루트 사용자에 대한 비밀번호를 설정/변경하고, 익명 사용자를 제거할지 여부를 결정하고, 루트 사용자가 로컬 및 원격으로 로그인할 수 있도록 허용할지 여부를 결정하고, 테스트 데이터베이스를 제거할지 여부를 결정하고, 마지막으로 권한 테이블을 즉시 다시 로드할지 여부를 결정합니다.
PostgreSQL 설치
WSL(예: Ubuntu)에 PostgreSQL을 설치하는 방법
- WSL 터미널(예: Ubuntu)을 엽니다.
- Ubuntu 패키지를 업데이트합니다.
sudo apt update
- 패키지가 업데이트된 후에는 PostgreSQL(몇 가지 유용한 유틸리티가 포함된 -contrib 패키지)을 설치합니다.
sudo apt install postgresql postgresql-contrib
- 설치를 확인하고 버전 번호(
psql --version
)를 가져옵니다.
PostgreSQL이 설치되면 다음 세 가지 명령을 알고 있어야 합니다.
sudo service postgresql status
: 데이터베이스의 상태 확인sudo service postgresql start
데이터베이스 실행 시작sudo service postgresql stop
: 데이터베이스 실행 중지
기본 관리자 사용자 postgres
에는 데이터베이스에 연결하기 위해 할당된 암호가 필요합니다. 암호를 설정하려면 다음을 수행합니다.
sudo passwd postgres
명령을 입력합니다.- 새 암호를 입력하라는 메시지가 표시됩니다.
- 터미널을 닫았다가 다시 엽니다.
psql 셸을 사용하여 PostgreSQL 실행
- Postgres 서비스를 시작합니다.
sudo service postgresql start
- Postgres 서비스에 연결하고 psql 셸을 엽니다.
sudo -u postgres psql
psql 셸을 성공적으로 입력하면 명령줄 변경 내용이 다음과 같이 표시됩니다. postgres=#
참고 항목
또는 su - postgres
를 사용하여 postgres 사용자로 전환한 다음, psql
명령을 입력하여 psql 셸을 열 수 있습니다.
postgres=#를 종료하려면 \q
을(를) 입력하거나 바로가기 키(Ctrl+D)를 사용합니다.
PostgreSQL 설치에 생성된 사용자 계정을 확인하려면 WSL 터미널에서 psql --command="\du"
를 사용하거나 psql 셸이 열려 있는 경우 \du
를 사용합니다. 이 명령은 계정 사용자 이름, 역할 특성 목록 및 역할 그룹의 구성원 열을 표시합니다. 명령줄로 돌아가려면 q
를 입력합니다.
PostgreSQL 데이터베이스 작업에 대한 자세한 내용은 PostgreSQL 문서를 참조하십시오.
VS Code에서 PostgreSQL 데이터베이스를 사용하려면 PostgreSQL 확장을 사용해 보세요.
MongoDB 설치
MongoDB를 설치하려면 Mongodb 문서(Linux에 MongoDB Community Edition 설치)를 참조하세요.
MongoDB를 설치하려면 설치에 사용되는 Linux 배포판에 따라 약간 다른 단계가 필요할 수 있습니다. 또한 MongoDB 설치는 설치하려는 버전 #에 따라 다를 수 있습니다. MongoDB 설명서의 왼쪽 위 모서리에 있는 버전 드롭다운 목록을 사용하여 목표에 맞는 버전을 선택합니다. 마지막으로 WSL에서 사용 중인 Linux 배포판의 wsl.conf
구성 파일에서 systemd 지원을 사용하도록 설정해야 할 수 있습니다. systemctl
명령은 systemd init 시스템의 일부이며 배포에서 systemv를 사용하는 경우 작동하지 않을 수 있습니다.
VS Code는 Azure CosmosDB 확장을 통해 MongoDB 데이터베이스 작업을 지원합니다. VS Code 내에서 MongoDB 데이터베이스를 만들고, 관리하고, 쿼리할 수 있습니다. 자세한 내용은 VS Code 설명서: MongoDB로 작업하기를 참조하십시오.
다음 MongoDB 문서에서 자세히 알아보세요.
Microsoft SQL Server 설치
WSL: SQL Server on Linux에서 실행되는 Linux 배포판에 SQL Server를 설치합니다. VS Code에서 Microsoft SQL Server 데이터베이스를 사용하려면, MSSQL 확장을 사용해 보십시오.
SQLite 설치
WSL(예: Ubuntu)에 SQLite를 설치하려면 다음을 수행합니다.
- WSL 터미널(예: Ubuntu)을 엽니다.
- Ubuntu 패키지를 업데이트합니다.
sudo apt update
- 패키지가 업데이트되면
sudo apt install sqlite3
을(를) 사용하여 SQLite3를 설치합니다. - 설치를 확인하고 버전 번호(
sqlite3 --version
)를 가져옵니다.
"example.db"라는 테스트 데이터베이스를 만들려면 sqlite3 example.db
을(를) 입력합니다.
SQLite 데이터베이스 목록을 보려면 .databases
을(를) 입력합니다.
데이터베이스의 상태를 보려면 .dbinfo ?DB?
을(를) 입력합니다.
생성 후에는 데이터베이스가 비어 있습니다. CREATE TABLE empty (kol INTEGER);
을(를) 사용하여 데이터베이스에 대한 새 테이블을 만들 수 있습니다.
.dbinfo ?DB?
을(를) 입력하면 만든 데이터베이스가 표시됩니다.
SQLite 프롬프트를 종료하려면 .exit
을(를) 입력합니다.
SQLite 데이터베이스 작업에 대한 자세한 내용은 SQLite 문서를 참조하십시오.
VS Code에서 SQLite 데이터베이스를 사용하려면 SQLite 확장을 사용해 보십시오.
Redis 설치
WSL(예: Ubuntu)에 Redis를 설치하려면 다음을 수행합니다.
- WSL 터미널(예: Ubuntu)을 엽니다.
- Ubuntu 패키지를 업데이트합니다.
sudo apt update
- 패키지가 업데이트되면
sudo apt install redis-server
을(를) 사용하여 Redis를 설치합니다. - 설치를 확인하고 버전 번호(
redis-server --version
)를 가져옵니다.
Redis 서버 실행을 시작하려면 다음을 수행합니다. sudo service redis-server start
Redis가 작동하는지 확인합니다.(Redis-cli는 Redis와 통신하는 명령줄 인터페이스 유틸리티입니다.) redis-cli ping
그러면 "PONG"이라는 회신이 반환됩니다.
Redis 서버 실행을 중지하려면 다음을 수행합니다. sudo service redis-server stop
Redis 데이터베이스 작업에 대한 자세한 내용은 Redis 문서를 참조하십시오.
VS Code에서 Redis 데이터베이스를 사용하려면 Redis 확장을 사용해 보십시오.
프로필 별칭을 실행하고 설정하는 서비스를 참조하십시오.
현재 WSL 배포에서 실행 중인 서비스를 보려면 다음을 입력합니다. service --status-all
sudo service mongodb start
또는 sudo service postgres start
및 sudo -u postgrest psql
을 입력하는 것은 지루할 수 있습니다. 그러나 WSL의 .profile
파일에 별칭을 설정하면 이러한 명령으로 더 빠르게 사용하고 더 쉽게 기억할 수 있습니다.
이러한 명령 실행을 위한 사용자 지정 별칭 또는 바로 가기를 설정하려면 다음을 수행합니다.
WSL 터미널을 열고 루트 디렉터리에 있도록
cd ~
를 입력합니다.터미널 텍스트 편집기인 Nano를 사용하여 터미널의 설정을 제어하는
.profile
파일을 엽니다.sudo nano .profile
파일의 아래쪽에서(
# set PATH
설정을 변경하지 않음) 다음을 추가합니다.# My Aliases alias start-pg='sudo service postgresql start' alias run-pg='sudo -u postgres psql'
이렇게 하면
start-pg
를 입력하여 postgresql 서비스 실행을 시작하고run-pg
를 입력하여 psql 셸을 열 수 있습니다.start-pg
및run-pg
를 원하는 이름으로 변경할 수 있습니다. postgres가 이미 사용하는 명령을 덮어쓰지 않도록 주의하세요.새 별칭을 추가한 후에는 Ctrl+X를 사용하여 Nano 텍스트 편집기를 종료합니다. 저장 및 Enter에 대한 메시지가 표시되면
Y
(예)를 선택합니다(파일 이름을.profile
로 그대로 둠).WSL 터미널을 닫았다가 다시 연 다음, 새 별칭 명령을 시도합니다.
문제 해결
오류: 디렉터리 동기화 fdatasync 잘못된 인수
WSL 2 모드에서 Linux 배포를 실행하고 있는지 확인합니다. WSL 1에서 WSL 2로 전환하는 데 도움이 되는 도움말은 배포 버전을 WSL 1 또는 WSL 2로 설정을 참조하십시오.
추가 리소스
Windows Subsystem for Linux