WSL2

windows wsl mariadb 설치하기 (wsl2 ubuntu-22.04 활용)

바닐라이코노미 2025. 2. 18. 23:22
반응형

 

어떤 서비스를 테스트하려면 데이터가 필요하고, db의 존재는 필수적입니다

 

이번에는 windows wsl mariadb를 리눅스 환경에 설치해 보고,

테이블을 만들었던 과정에 대해서 정리해보려 한다


진행과정

1. wsl 접속

2. mariadb-server 설치

3. 정상적으로 설치되었는지 확인을 위한 mariaddb version 확인

4. 보안 설정(mysql_secure_installation)

5. mariadb 접속 및 SQL 수행 

6. 계정생성
7. 데이터베이스 생성
8. 테이블 생성
9. 샘플 데이터 생성
10. 데이터 확인 및 데이터 사용


 

1. wsl에 접속

case1) powershell을 통해서 명령어 wsl 입력 후 접속

case2) windows 검색에 ubuntu검색하여 설치된 ubuntu 관리자권한으로 실행

 

2. mariadb-server 설치

sudo apt-get install mariadb-server

 

3. mariaddb version 확인

#입력
brooklyn@DESKTOP-26M00A9:~$ mariadb --version

#출력
mariadb  Ver 15.1 Distrib 10.6.18-MariaDB, for debian-linux-gnu (x86_64) using  EditLine wrapper

 

4. mysql_secure_installation: 보안 설정 (로컬환경은 선택, 운영환경은 필수) 

sudo mysql_secure_installation

 

중간중간에 질문들이 나오게 되는데 처음 보는 것들에 대해서 정리 차원에서 기록

 

Unix Socket Authentication이란?

- unix_socket 인증 방식은 MariaDB/MySQL 사용자가 리눅스 시스템의 사용자와 동일할 경우, 비밀번호 없이 로그인할 수 있도록 해주는 인증 방법

- 즉, MariaDB의 root 사용자가 Linux의 root 사용자와 동일한 경우, 비밀번호 없이 접속할 수 있습니다.

 

기본적으로 MariaDB는 비밀번호 인증을 사용하지만, unix_socket 인증을 활성화하면 리눅스 사용자 계정과 연동

 

어떤 것을 사용해야 할까?

 

결론

- WSL에서 로컬 개발 환경으로 사용할 경우, Y를 선택하여 unix_socket 인증을 사용하는 것이 일반적.

- 원격 접속이 필요하거나 다른 애플리케이션과 MariaDB를 연결해야 한다면, N을 선택하여 비밀번호 인증을 유지하는 것이 좋음

 

Remove anonymous users?

 

어떤 것을 사용해야 할까?

 

Reload privilege tables now? 

방금 설정한 변경 사항(사용자 계정, 인증 방식, 접근 권한 등)을 즉시 적용할지 여부를 묻는 것

 

 

Privilege Table (권한 테이블)이란?

MariaDB(MySQL)는 사용자 계정과 관련된 모든 인증 정보 및 권한mysql 데이터베이스의 테이블에 저장

 

- 주요 테이블

mysql.user : 사용자 계정 및 인증 정보

mysql.db : 데이터베이스별 권한

mysql.tables_priv : 테이블별 권한

mysql.columns_priv : 칼럼별 권한

 

5. mariadb 접속 및 SQL 수행 

sudo mariadb

 

#입력1
show databases;

#입력2
select version();

 

6. 계정생성 (test1 / password 생성)

CREATE USER 'test1'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'test1'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

 

7. 데이터베이스 생성 (test1_db)

CREATE DATABASE test1_db;
USE test1_db;

 

8. 테이블생성(test1)

CREATE TABLE test1 (
    number INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    age INT NOT NULL
);

 

9. 샘플데이터 생성

INSERT INTO test1 (name, age) VALUES
('홍길동', 20),
('김철수', 25),
('이영희', 30),
('박지송', 35),
('손홍민', 28),
('정으성', 45),
('이정제', 50),
('킴연아', 33),
('유제석', 40),
('강흐동', 42);

 

10. 데이터 확인 및 데이터 사용

SELECT * FROM test1;
mysql -u test1 -p test1_db

 

 

이상으로 wsl2 linux 환경에 mariadb를 설치 후 간단히 조회한 결과를 정리해 보았습니다

 

 

반응형