명령줄(CLI)을 사용한 데이터베이스 생성 방법
# MySQL 서비스 시작 net start mysql # 또는 XAMPP 사용시 cd C:\xampp mysql_start.bat
# MySQL 시작 sudo service mysql start # 또는 sudo systemctl start mysql
# root 사용자로 접속 mysql -u root -p # 비밀번호 없이 접속 mysql -u root # 특정 호스트 지정 mysql -h localhost -u root -p
-- 데이터베이스 생성 CREATE DATABASE mydb; -- UTF-8 인코딩으로 생성 CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 데이터베이스 목록 확인 SHOW DATABASES; -- 데이터베이스 선택 USE mydb; -- 현재 데이터베이스 확인 SELECT DATABASE();
-- 새 사용자 생성 CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password123'; -- 모든 권한 부여 GRANT ALL PRIVILEGES ON mydb.* TO 'newuser'@'localhost'; -- 읽기 전용 권한 GRANT SELECT ON mydb.* TO 'newuser'@'localhost'; -- 권한 적용 FLUSH PRIVILEGES; -- 사용자 목록 확인 SELECT User, Host FROM mysql.user;
# PostgreSQL 서비스 시작 net start postgresql-x64-14 # 또는 pg_ctl -D "C:\Program Files\PostgreSQL\14\data" start
# PostgreSQL 시작 sudo service postgresql start # 또는 sudo systemctl start postgresql
# postgres 사용자로 접속 psql -U postgres # 특정 데이터베이스로 접속 psql -U postgres -d mydb # 호스트와 포트 지정 psql -h localhost -p 5432 -U postgres
# createdb 명령 사용 createdb -U postgres mydb # 소유자 지정 createdb -U postgres -O newuser mydb # 인코딩 지정 createdb -U postgres -E UTF8 mydb
-- 데이터베이스 생성 CREATE DATABASE mydb; -- 소유자와 인코딩 지정 CREATE DATABASE mydb WITH OWNER = newuser ENCODING = 'UTF8' LC_COLLATE = 'ko_KR.UTF-8' LC_CTYPE = 'ko_KR.UTF-8'; -- 데이터베이스 목록 확인 \l -- 데이터베이스 연결 \c mydb -- 현재 데이터베이스 확인 SELECT current_database();
-- 새 사용자(role) 생성 CREATE USER newuser WITH PASSWORD 'password123'; -- 로그인 권한이 있는 role 생성 CREATE ROLE newuser WITH LOGIN PASSWORD 'password123'; -- 데이터베이스 권한 부여 GRANT ALL PRIVILEGES ON DATABASE mydb TO newuser; -- 스키마 권한 부여 GRANT ALL ON SCHEMA public TO newuser; -- 테이블 권한 부여 GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO newuser; -- 사용자 목록 확인 \du
# MongoDB 서비스 시작 net start MongoDB # 또는 직접 실행 mongod --dbpath "C:\data\db"
# MongoDB 시작 sudo service mongod start # 또는 sudo systemctl start mongod # Homebrew 사용 (Mac) brew services start mongodb-community
# MongoDB Shell 접속 mongosh # 또는 구버전 mongo # 특정 호스트와 포트 지정 mongosh "mongodb://localhost:27017"
// 데이터베이스 전환 (없으면 자동 생성) use mydb // 현재 데이터베이스 확인 db // 데이터베이스 목록 확인 show dbs // 컬렉션 생성 (데이터베이스를 실제로 생성) db.createCollection("users") // 또는 문서 삽입으로 자동 생성 db.users.insertOne({ name: "홍길동", age: 30 }) // 컬렉션 목록 확인 show collections
// admin 데이터베이스로 전환 use admin // 관리자 계정 생성 db.createUser({ user: "admin", pwd: "password123", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] }) // 특정 데이터베이스 사용자 생성 use mydb db.createUser({ user: "newuser", pwd: "password123", roles: [ { role: "readWrite", db: "mydb" } ] }) // 사용자 목록 확인 db.getUsers()
-- setup_mysql.sql -- 1. 데이터베이스 삭제 (있을 경우) DROP DATABASE IF EXISTS mydb; -- 2. 데이터베이스 생성 CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 3. 데이터베이스 선택 USE mydb; -- 4. 사용자 생성 CREATE USER IF NOT EXISTS 'appuser'@'localhost' IDENTIFIED BY 'app123!@#'; -- 5. 권한 부여 GRANT ALL PRIVILEGES ON mydb.* TO 'appuser'@'localhost'; FLUSH PRIVILEGES; -- 6. 테이블 생성 예시 CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, email VARCHAR(100) NOT NULL UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 실행: mysql -u root -p < setup_mysql.sql
-- setup_postgres.sql -- 1. 사용자 생성 CREATE USER appuser WITH PASSWORD 'app123!@#'; -- 2. 데이터베이스 삭제 (있을 경우) DROP DATABASE IF EXISTS mydb; -- 3. 데이터베이스 생성 CREATE DATABASE mydb WITH OWNER = appuser ENCODING = 'UTF8'; -- 4. 데이터베이스 연결 \c mydb -- 5. 권한 부여 GRANT ALL PRIVILEGES ON DATABASE mydb TO appuser; GRANT ALL ON SCHEMA public TO appuser; -- 6. 테이블 생성 예시 CREATE TABLE users ( id SERIAL PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, email VARCHAR(100) NOT NULL UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 실행: psql -U postgres -f setup_postgres.sql
// setup_mongo.js // 1. 데이터베이스 전환 use mydb // 2. 기존 컬렉션 삭제 db.users.drop() // 3. 컬렉션 생성 db.createCollection("users", { validator: { $jsonSchema: { bsonType: "object", required: ["username", "email"], properties: { username: { bsonType: "string", description: "사용자명 (필수)" }, email: { bsonType: "string", description: "이메일 (필수)" } } } } }) // 4. 인덱스 생성 db.users.createIndex({ username: 1 }, { unique: true }) db.users.createIndex({ email: 1 }, { unique: true }) // 5. 사용자 생성 db.createUser({ user: "appuser", pwd: "app123!@#", roles: [ { role: "readWrite", db: "mydb" } ] }) // 실행: mongosh < setup_mongo.js
-- MySQL DROP DATABASE mydb; -- PostgreSQL (명령줄) dropdb -U postgres mydb -- MongoDB use mydb db.dropDatabase()
# MySQL 연결 테스트 mysql -h localhost -u appuser -p mydb # PostgreSQL 연결 테스트 psql -h localhost -U appuser -d mydb # MongoDB 연결 테스트 mongosh "mongodb://appuser:app123!@#@localhost:27017/mydb"