MariaDB 데이터베이스

설치

sudo apt update
sudo apt install mariadb-server

실행, 자동실행 설정

sudo systemctl start mariadb   # MariaDB 서버 시작
sudo systemctl enable mariadb  # 재부팅 시 자동 시작 설정

보안설정

sudo mysql_secure_installation

접속

sudo mariadb

버전 확인

mariadb --version

서비스 상태 확인

sudo systemctl status mariadb

데이터베이스 생성

CREATE DATABASE 데이터베이스이름;

데이터베이스 사용

USE 데이터베이스이름

google OAuth

Google OAuth로 받은 정보는?

  • Google UID (sub): 구글 계정의 고유 식별자(가장 중요)
  • 이메일 주소
  • 사용자 이름(이름, 닉네임)
  • 프로필 사진 URL (선택)
  • 가입/최종 로그인 시각 (서비스 통계용)
  • 기타 필요한 칼럼(추후 서비스 확장 고려)
  • 로컬 서비스의 내부 User ID (Primary Key, auto increment)
CREATE TABLE google_users (
    id               INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, -- 내부 사용자 ID
    google_sub       VARCHAR(30)  NOT NULL UNIQUE,  -- Google UID (sub), 고유 식별자, Not null & unique
    email            VARCHAR(255) NOT NULL,         -- 구글 이메일(중복 허용 가능성 고려, unique OPTIONALLY)
    name             VARCHAR(100),                  -- 구글 이름(닉네임)
    picture          VARCHAR(500),                  -- 프로필 사진 URL
    created_at       DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 최초 가입 시각
    last_login_at    DATETIME,                      -- 마지막 로그인 기록 (업데이트 할 때 사용)
    is_active        TINYINT(1) NOT NULL DEFAULT 1  -- 탈퇴/정지용 플래그 (옵션)
);

기본 테이블 생성

CREATE TABLE google_users (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    google_sub VARCHAR(30)  NOT NULL UNIQUE,
    email      VARCHAR(255) NOT NULL
);

컬럼추가

  • 관리자 여부 기록
ALTER TABLE google_users
ADD COLUMN is_admin TINYINT(1) NOT NULL DEFAULT 0;
  • 사용자 등급
ALTER TABLE google_users
ADD COLUMN user_level TINYINT UNSIGNED NOT NULL DEFAULT 1;
  • 등급 변경
UPDATE google_users
SET is_admin = 1, user_level = 4
WHERE id = 1;
UPDATE google_users
SET is_admin = 1, user_level = 4
WHERE google_sub = '관리자_sub값';

  • 테이블 목록조회
SHOW TABLES IN login_tutorial;
  • 컬럼 삭제
ALTER TABLE google_users DROP COLUMN is_admin;
  • 테이블 내용확인
SELECT * FROM 테이블명;

phpmyadmin 설치

sudo apt update
sudo apt install phpmyadmin
  • 설치확인
dpkg -l | grep phpmyadmin
  • /etc/apache2/sites-available 에 phpmyadmin 관련 include 해줘야함
Include /etc/phpmyadmin/apache.conf
sudo systemctl reload apache2
  • 아파치 서버 재시작

특정위치에 설치

cd /home/onethelab
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
tar xvf phpMyAdmin-latest-all-languages.tar.gz
mv phpMyAdmin-* phpmyadmin

폴더명 변경

mv phpMyAdmin-*-all-languages phpmyadmin