리눅스

리눅스 쉘에서 MySQL DB 및 테이블을 생성하는 방법

변군이글루 2013. 8. 14. 11:28
반응형

리눅스 쉘에서 MySQL DB 및 테이블을 생성하는 방법

리눅스 쉘 환경에서 SQL 파일을 이용하여 데이터베이스 및 테이블을 생성하고 mysqlshow로 결과를 확인하는 방법입니다.

1. 데이터베이스(Database) 생성

SQL 파일 작성

[root@byungun ~]$ cat temp.sql
CREATE DATABASE tempdb;

MySQL에 SQL 파일 적용

[root@byungun ~]$ mysql -u root -p mysql < ./temp.sql
  • -u root : 사용자
  • -p : 비밀번호 입력
  • mysql : 기본 시스템 DB (접속 대상)
  • < ./temp.sql : SQL 파일 실행 

생성된 DB 확인

[root@byungun ~]$ mysqlshow -u root -p
Enter password:
+--------------------+
| Databases          |
+--------------------+
| information_schema |
| first              |
| mysql              |
| tempdb             |
| test               |
+--------------------+

2. 테이블(Table) 생성

SQL 파일 작성

[root@byungun ~]$ cat temp_table.sql
CREATE TABLE temptable (
  uid  MEDIUMINT(3) NOT NULL,
  name VARCHAR(12)  NOT NULL,
  PRIMARY KEY (uid)
);

특정 DB에 테이블 생성

[root@byungun ~]$ mysqlshow -u root -p tempdb temptable
Enter password:
  • tempdb : 테이블을 생성할 대상 데이터베이스

테이블 구조 확인

[root@byungun ~]$ mysqlshow -u root -p tempdb temptable
Enter password:
Database: tempdb  Table: temptable
+-------+--------------+-------------------+------+-----+---------+-------+---------------------------------+---------+
| Field | Type         | Collation         | Null | Key | Default | Extra | Privileges                      | Comment |
+-------+--------------+-------------------+------+-----+---------+-------+---------------------------------+---------+
| uid   | mediumint(3) |                   | NO   | PRI |         |       | select,insert,update,references |         |
| name  | varchar(12)  | latin1_swedish_ci | NO   |     |         |       | select,insert,update,references |         |
+-------+--------------+-------------------+------+-----+---------+-------+---------------------------------+---------+
  • uid → Primary Key 설정 확인
  • name → 문자열 컬럼 확인

3. 실무 팁

문자셋 명시 권장

  • 운영 환경에서는 charset을 명시하는 것이 좋습니다.
CREATE DATABASE tempdb CHARACTER SET utf8mb4;
CREATE TABLE temptable (
  uid  MEDIUMINT NOT NULL,
  name VARCHAR(12) NOT NULL,
  PRIMARY KEY (uid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

SQL 실행 시 로그 확인

  • 에러 확인을 위해 다음처럼 실행하면 좋습니다.
mysql -u root -p tempdb < temp_table.sql 2> error.log

mysqlshow 대신 대안

  • 더 상세한 정보 확인
mysql -u root -p -e "USE tempdb; SHOW CREATE TABLE temptable\G"

 

728x90
반응형