DB보안구축/리눅스,윈도우에서 MariaDB 설치 및 DBMS 클라이언트에서 접속, 사용하기 - 방화벽 적용 (교육 51일차)

SW·2023년 2월 2일
0




















실습> 리눅스에서 MariaDB 설치하기

1. MariaDB 설치
MariaDB의 설정 파일을 수정한다.
MariaDB의 언어셋을 UTF8로 설정한다.
한글 1글자 3byte의 크기를 가진다. DB를 UTF8로 설정하지 않으면 한글이 깨진다.
symbolic-links=0 밑에 4개의 설정을 추가한다.

/usr/libexec/mysqld: MariaDB 서비스 데몬 (패키지 mariadb-server)
/usr/bin/mysql: MariaDB 클라이언트 (패키지 mariadb)
/var/lib/mysql: 리눅스용 MariaDB 서버의 위치(기본값)

[root@DBServer ~]# yum -y install mariadb mariadb-server
[root@DBServer ~]# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
collation-server=utf8_general_ci
character-set-server=utf8
skip-character-set-client-handshake
#bind-address=127.0.0.1

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

!includedir /etc/my.cnf.d

2. MariaDB 시작
MariaDB를 활성화 시키고 시작한다.
[root@DBServer ~]# systemctl enable mariadb
[root@DBServer ~]# systemctl start mariadb
[root@DBServer ~]# systemctl status mariadb
[root@DBServer ~]# ss -nlt

State      Recv-Q Send-Q      Local Address:Port                     Peer Address:Port              
LISTEN     0      50                      *:3306                                *:*                  
LISTEN     0      128                     *:22                                  *:*                  
LISTEN     0      100             127.0.0.1:25                                  *:*                  
LISTEN     0      128                  [::]:22                               [::]:*                  
LISTEN     0      100                 [::1]:25                               [::]:*   

3. 관리자 비번 설정
mariadb 관리자: root
mariadb를 설치하면 DB 관리자(root)의 비밀번호가 없다.
그러므로 사용하기 위해서는 반드시 관리자의 비밀번호를 설정한다.

mysqladmin: 여러 가지 역할을 하는 관리자용 프로그램
형식 : mysqladmin [OPTIONS] command command....
mysqladmin -h 호스트명 -u 사용자 -p비밀번호 password [new-password]

관리자 비밀번호: P@ssw0rd
[root@DBServer ~]# mysqladmin -p password
Enter password: <-- 엔터
New password: <-- P@ssw0rd 입력
Confirm new password: <-- P@ssw0rd 입력

비밀번호를 설정한 후 mysql로 접속 시도 시 접속이 안되면 정상적으로 비밀번호가 설정된 것이다.
[root@DBServer ~]# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

[root@DBServer ~]# mysql --help
Usage: mysql [OPTIONS][database]
Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf

-h, --host=name Connect to host.
-u, --user=name User for login if not current user.
-p, --password[=name]

mysql -h 호스트명 -u 사용자 -p비밀번호
mysql -h 호스트명 -u 사용자 -p
mysql -u 사용자 -p
mysql -p

[root@DBServer ~]# mysql -h localhost -u root -pP@ssw0rd
MariaDB [(none)]> exit
[root@DBServer ~]# mysql -u root -pP@ssw0rd <-- DB서버가 로컬에 있으므로 -h localhost 는 생략 가능하다.
MariaDB [(none)]> exit
[root@DBServer ~]# mysql -pP@ssw0rd <-- 현재 사용자 root이므로 -u root 는 생략 가능하다.
MariaDB [(none)]> exit
[root@DBServer ~]# mysql -p <-- -pP@ssw0rd 가 취약하므로 비밀번호를 안보이게 입력 받아서 접속한다.
Enter password: <-- P@ssw0rd
MariaDB [(none)]> exit

[root@DBServer ~]# mysql <-- -p 옵션이 없기 때문에 에러가 발생되었다.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

4. DBMS 자동 접속하기
DB서버 자동 접속 설정하기
자신의 홈디렉터리($HOME)에 .my.cnf 파일을 아래처럼 만들어 놓으면 호스트명, 사용자, 비밀번호 입력을 생략하고 DBMS(mariadb) 서버에 자동으로 접속할 수 있다.

[root@DBServer ~]# vi .my.cnf

[client]
host = localhost     # <-- -h localhost
user = root          # <-- -u root
password = P@ssw0rd  # <-- -pP@ssw0rd

설정파일이 저장되면 허가권(Permission)을 변경한다.
[root@DBServer ~]# chmod 600 .my.cnf

[root@DBServer ~]# mysql
MariaDB [(none)]> exit

mysql -e 옵션 시 DB 밖에서 기본 명령어 확인이 가능하다.

5. 불필요한 사용자/DB 삭제
mysql DB로 접속해서 사용자/DB에 대한 불필요한 설정들을 삭제한다.
-비밀번호가 없는 사용자를 삭제한다.
-test 샘플 DB를 삭제한다.

[DB][Table]
:
:

SHOW DATABASES; : DB 목록을 확인한다.
SHOW TABLES; : TB 목록을 확인한다.

mysql DB에 있는 Table의 목록을 확인한다.
db 테이블: 사용자 DB에 권한이 저장된 테이블
user 테이블: 사용자 접속 정보가 저장된 테이블

mysql DB 안으로 접속한다.
[root@DBServer ~]# mysql mysql

MariaDB [mysql]> SHOW DATABASES;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.01 sec)

MariaDB [mysql]> SHOW TABLES;

+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |  <--  사용자 DB에 권한이 저장된 테이블
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |  <-- 사용자 접속 정보가 저장된 테이블
+---------------------------+
24 rows in set (0.00 sec)

user 테이블에서 host,user,password 컬럼을 출력한다.
MariaDB [mysql]> SELECT host,user,password FROM user;

+-------------------+------+-------------------------------------------+
| host              | user | password                                  |
+-------------------+------+-------------------------------------------+
| localhost         | root | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| ns1.domainsbs.com | root |                                           |  <-- 삭제
| 127.0.0.1         | root |                                           |  <-- 삭제
| ::1               | root |                                           |  <-- 삭제
| localhost         |      |                                           |  <-- 삭제
| ns1.domainsbs.com |      |                                           |  <-- 삭제
+-------------------+------+-------------------------------------------+
6 rows in set (0.00 sec)

user 테이블에서 password의 값이 없는 사용자 5명을 모두 삭제한다.
MariaDB [mysql]> DELETE FROM user WHERE password = '';
Query OK, 5 rows affected (0.00 sec)

MariaDB [mysql]> SELECT host,user,password FROM user;

+-----------+------+-------------------------------------------+
| host      | user | password                                  |
+-----------+------+-------------------------------------------+
| localhost | root | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
+-----------+------+-------------------------------------------+
1 row in set (0.00 sec)

db 테이블에 저장된 데이터를 출력한다.
MariaDB [mysql]> SELECT host,user,db FROM db;

+------+------+---------+
| host | user | db      |
+------+------+---------+
| %    |      | test    |
| %    |      | test\_% |
+------+------+---------+
2 rows in set (0.00 sec)

db 테이블에 저장된 데이터를 삭제한다.
MariaDB [mysql]> DELETE FROM db;
Query OK, 2 rows affected (0.00 sec)

db 테이블에 저장된 데이터를 출력하면 삭제 되었기 때문에 아무값도 출력되지 않는다.
MariaDB [mysql]> SELECT host,user,db FROM db;
Empty set (0.00 sec)

권한을 다시 읽어들인다.
MariaDB [mysql]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

MariaDB [mysql]> quit

실습> 윈도우에서 MariaDB 설치하기

공식사이트 : https://www.mariadb.org/

MariaDB 다운로드
https://www.mariadb.org/download/ 에서 최신버전을 다운로드 받는다.

참고: https://cafe.naver.com/linuxmasternet/916

1. MariaDB 다운로드
MariaDD Server Veresion: MariaDB Server 10.5.18
Operating System: Windows
Architecture: x86_64 (64bit)
Package Type: MSI Package (설치형 버전)

Download 버튼을 클릭해서 다운로드 한다.

2. MariaDB 설치
다운로드 받은 MariaDB를 설치한다.
설치할 때 설정하는 것은 아래 2개를 설정한다.
-root(관리자) 비번 설정 : P@ssw0rd
-UTF8 설정

윈도우용 MariaDB 서버의 위치(기본값): C:\Program Files\MariaDB 10.5\data

MariaDB가 설치가 되면 자동으로 서비스가 시작된다.

3. 포트 확인
MariaDB 포트 번호: 3306
MySQL 포트 번호: 3306

C:\Users\user1>netstat -na | findstr 3306

TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING
TCP    [::]:3306              [::]:0                 LISTENING

4. PATH 설정
환경 변수 PATH는 외부 명령어를 실행할 때 PATH 변수에서 찾기 때문에 아무 경로에서 명령어를 실행할 수 있다.

설정 위치 :
윈도우키 + Break, 파일탐색기 -> 내PC -> 오른쪽 버튼 -> 속성
고급 시스템 설정 -> 고급 탭 -> 환경 변수
사용자 변수 -> path -> 편집
새로 만들기 ->
C:\Program Files\MariaDB 10.5\bin
확인 -> 확인 -> 확인

5. UTF8 설정
mariaDB 설치 후 utf8을 설정한다.

services.msc를 이용해서 시작/중지하기
윈도우 + R (실행창) or 검색 : services.msc (서비스) -> MariaDB 중지 ->

cmd 창에서 명령어를 이용해서 시작/중지하기
cmd 창을 관리자 권한으로 실행한 후 실행한다.
net stop mariadb
net start mariadb

설정파일(my.ini) 수정
-C:\Program Files\MariaDB 10.5\data\my.ini

편집기를 이용해서 my.ini 파일을 열어서 아래 내용을 모두 덮어쓰고 저장한 후 종료한다.
C:\Users\user>notepad C:\Program Files\MariaDB 10.5\data\my.ini
[mysqld]
datadir=C:/Program Files/MariaDB 10.5/data
port=3306
innodb_buffer_pool_size=2018M
character-set-server=utf8
collation-server = utf8_general_ci
init_connect=SET collation_connection=utf8_general_ci
init_connect=SET NAMES utf8
[client]
port=3306
plugin-dir=C:/Program Files/MariaDB 10.5/lib/plugin
default-character-set=utf8
[mysql]
default-character-set=utf8

설정 파일을 수정한 후 MariaDB를 시작한다.
PATH 설정 후에 cmd를 다시 실행해야 수정한 PATH가 적용된다.

MariaDB 서버에 접속해서 언어셋 확인
PS C:\Users\user2> mysql -u root -pP
Enter password: **** <-- P@ssw0rd

MariaDB [(none)]> \s
--------------
C:\Program Files\MariaDB 10.5\bin\mysql.exe  Ver 15.1 Distrib 10.5.17-MariaDB, for Win64 (AMD64), source revision 1ac0bce36e5bf2136cedb1ce1da949f53cce4404

Connection id:          5
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server:                 MariaDB
Server version:         10.5.17-MariaDB mariadb.org binary distribution
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:               3306
Uptime:                 1 min 51 sec

Threads: 1  Questions: 12  Slow queries: 0  Opens: 17  Open tables: 10  Queries per second avg: 0.108
--------------

MariaDB [(none)]> exit

6. 접속
MySQL Client 프로그램을 실행해서 MariaDB서버로 접속해서 언어셋을 확인한다.
C:\Users\user1>mysql -h localhost -u root -p
Enter password: ** <-- P@ssw0rd 입력
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.9-MariaDB mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> status
--------------
mysql  Ver 15.1 Distrib 10.5.13-MariaDB, for Win64 (AMD64), source revision 8635be6a2962f8e256c27836c35064ccaabb7486

Connection id:          4
Current database:
Current user:           root@localhost
SSL:                    Not in use
Using delimiter:        ;
Server:                 MariaDB
Server version:         10.5.13-MariaDB mariadb.org binary distribution
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:               3306
Uptime:                 2 min 15 sec

Threads: 1  Questions: 4  Slow queries: 0  Opens: 17  Open tables: 10  Queries per second avg: 0.029
--------------

MariaDB [(none)]> exit

cmd에서 인코딩 확인하기
-윈도우 기본 인코딩: cp949
chcp

cmd에서 인코딩 UTF8로 변경하기
chcp 65001

실습> DBMS 클라이언트 Heidi SQL 사용하기

**Heidi SQL로 Remote MariaDB 서버로 접속한다.

Heidi SQL: 윈도우용 MySQL/MariaDB 접속 클라이언트 프로그램 (무료)**

참고: https://cafe.naver.com/linuxmasternet/949

1. Heidi SQL 실행
검색에서 Heidi 를 검색해서 실행한다.

2. Local MariaDB 접속
윈도우용 MariaDB 서버로 접속한다.

신규 >
세션 이름: Local MariaDB
호스트명 / IP: 127.0.0.1
사용자: root
암호: P@ssw0rd
포트: 3306
압축된 클라이언트/서버 프로토콜 체크
저장 버튼을 클릭해서 저장한다.

연결 버튼을 클릭해서 서버에 접속한다.

3. Remote MariaDB 접속
리눅스용 MariaDB 서버로 접속한다.
신규 >
세션 이름: Remote MariaDB
호스트명 / IP: 200.200.200.33
사용자: root
암호: P@ssw0rd
포트: 3306
압축된 클라이언트/서버 프로토콜 체크

저장 버튼을 클릭해서 저장한다.

DB서버에서 200.200.200.1에서 접속할 수 있게 설정한다.
[root@DBServer ~]# mysql mysql

MariaDB [mysql]> SELECT host,user,password FROM user;

+-----------+------+-------------------------------------------+
| host      | user | password                                  |
+-----------+------+-------------------------------------------+
| localhost | root | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
+-----------+------+-------------------------------------------+
1 row in set (0.00 sec)

DBMS 사용자 생성
사용자 생성 형식:
CREATE USER DBMS사용자@DBMS호스트 IDENTIFIED BY 'DBMS비번';
DB 권한 생성 형식:
GRANT 권한 PRIVILEGES ON DB명.테이블명 TO DBMS사용자@DBMS호스트;

MariaDB [mysql]> CREATE USER root@200.200.200.1 IDENTIFIED BY 'P@ssw0rd';
MariaDB [mysql]> GRANT ALL PRIVILEGES ON . TO root@200.200.200.1 WITH GRANT OPTION;
MariaDB [mysql]> SELECT host,user,password FROM user;

+---------------+------+-------------------------------------------+
| host          | user | password                                  |
+---------------+------+-------------------------------------------+
| localhost     | root | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| 200.200.200.1 | root | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
+---------------+------+-------------------------------------------+
2 rows in set (0.00 sec)

MariaDB [mysql]> exit

방화벽을 설정한다.
firewalld: Off
iptables: On
[root@DBServer ~]# systemctl stop firewalld
[root@DBServer ~]# systemctl disable firewalld
[root@DBServer ~]# yum -y install iptables-services
[root@DBServer ~]# vi /etc/sysconfig/iptables

*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1:140]
-A INPUT -m state --state INVALID -m comment --comment "깨진 패킷 로그 기록" -j LOG --log-prefix "DROP INVALID " --log-tcp-options --log-ip-options
-A INPUT -m state --state INVALID -m comment --comment "깨진 패킷 차단" -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -m comment --comment "이미 연결된 패킷 허용" -j ACCEPT
-A INPUT -s 200.200.200.1/32 -p tcp -m tcp --dport 3306 -m state --state NEW -m comment --comment "DBMS: mariadb" -j ACCEPT
-A INPUT -s 200.200.200.1/32 -p tcp -m tcp --dport 22 -m state --state NEW -m comment --comment SSH -j ACCEPT
-A INPUT -i lo -j ACCEPT
COMMIT

[root@DBServer ~]# systemctl restart iptables
[root@DBServer ~]# iptables -nL

Chain INPUT (policy DROP)
target     prot opt source               destination         
LOG        all  --  0.0.0.0/0            0.0.0.0/0            state INVALID /* 깨진 패킷 로그 기록 */ LOG flags 6 level 4 prefix "DROP INVALID "
DROP       all  --  0.0.0.0/0            0.0.0.0/0            state INVALID /* 깨진 패킷 차단 */
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED /* 이미 연결된 패킷 허용 */
ACCEPT     tcp  --  200.200.200.1        0.0.0.0/0            tcp dpt:3306 state NEW /* DBMS: mariadb */
ACCEPT     tcp  --  200.200.200.1        0.0.0.0/0            tcp dpt:22 state NEW /* SSH */
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  

연결 버튼을 클릭해서 서버에 접속한다.


-> HeidiSQL에서 MariaDB의 자료형을 볼 수 있다.

실습> DBMS 클라이언트 DBeaver 사용하기

DBeaver로 Remote MariaDB 서버로 접속한다.
DBeaver: MySQL/MariaDB/Oracle ... 접속 클라이언트 프로그램 (상용/무료)

공식 사이트: https://dbeaver.io/

Pro 버전과 Community 버전으로 나누고 여기서는 Community 버전을 설치한다.
https://dbeaver.io/download/
https://dbeaver.io/files/dbeaver-ce-latest-x86_64-setup.exe

설치 후 실행해서 리눅스용 MariaDB 서버로 접속한다.

플러그(+) 클릭 >

MariaDB 선택 다음 버튼을 클릭한다.

Server Host: 200.200.200.33
Username: root
Password: P@ssw0rd

완료 버튼을 클릭하면 자동으로 접속한다.




(기타) DBMS 클라이언트 : TOAD, SQL GATE

실습> MariaDB 명령어 사용하기

DBMS 에 접속한다.
-h , -u, -p 옵션이 생략되었지만 접속이 된 것은 $HOME/.my.cnf 파일에 정보가 저장되어 있다는 의미이다.

[root@DBServer ~]# mysql
MariaDB [(none)]> SHOW DATABASES;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

DB를 선택하지 않았기 때문에 에러가 발생된다.
MariaDB [(none)]> SHOW TABLES;

ERROR 1046 (3D000): No database selected

DB를 선택하지 않고 DB안에 Table의 목록을 출력하기 위해서는 아래처럼 FROM DB명을 적어야 한다.
mysql DB 안에 있는 Table의 목록을 출력한다.
MariaDB [(none)]> SHOW TABLES FROM mysql;

MariaDB [(none)]> USE mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

MariaDB [mysql]> SHOW TABLES;

+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
   :
   :(생략)

DB 생성 형식:
CREATE DATABASE <DB명>;
기본값은 DBA(DataBase Administrator) root만 생성할 수 있다. 일반유저는 생성할 수 없다.

kh_db DB를 생성한다.
MariaDB [mysql]> CREATE DATABASE kh_db;
Query OK, 1 row affected (0.00 sec)

현재 DB 목록을 확인한다.
MariaDB [mysql]> SHOW DATABASES;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| kh_db              |  <-- 생성된 DB
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

DB 삭제 형식:
DROP DATABASE <DB명>;
기본값은 DBA(DataBase Administrator) root만 삭제할 수 있다. 일반유저는 삭제할 수 없다.

MariaDB [mysql]> DROP DATABASE kh_db;
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> SHOW DATABASES;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

실습> DB 생성/확인/삭제하기

생성할 DB명:
bbs
gnuboard
domainsbs

DB 생성
MariaDB [mysql]> CREATE DATABASE bbs;
MariaDB [mysql]> CREATE DATABASE gnuboard;
MariaDB [mysql]> create database domainsbs;

DB 확인
MariaDB [mysql]> SHOW DATABASES;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |  <-- 생성된 DB (삭제: DROP DATABASE bbs;)
| domainsbs          |  <-- 생성된 DB (삭제: DROP DATABASE domainsbs;)
| gnuboard           |  <-- 생성된 DB (삭제: DROP DATABASE gnuboard;)
| mysql              |
| performance_schema |
+--------------------+
6 rows in set (0.00 sec)

DB 삭제
MariaDB [mysql]> DROP DATABASE bbs;
MariaDB [mysql]> DROP DATABASE domainsbs;
MariaDB [mysql]> DROP DATABASE gnuboard;

MariaDB [mysql]> SHOW DATABASES;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

실습> 테이블 생성하기

/var/lib/mysql
DB (디렉터리)
+--테이블 (파일)

\e: vi 편집기 실행

테이블 생성 형식:
CREATE TABLE <TABLE명> ( <컬럼명> <데이터타입> [옵션][제약조건] [, ...]);

MariaDB [(none)]> CREATE DATABASE kh_db;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> USE kh_db
Database changed

MariaDB [kh_db]> CREATE TABLE kh_member (
    -> no int auto_increment not null primary key,
    -> name char(20),
    -> id varchar(20) unique,
    -> password varchar(50) default "1234", 
    -> reg_date datetime not null
    -> );

Query OK, 0 rows affected (0.00 sec)


📌 Tip 📌
DB접속하여 create 등 스크립트 작성 중 에러 시 다시 재작성하지 않고 \e 명령어를 실행하여 방금 작성한 스크립트를 vi 편집기로 자동 출력하여 수정 후 저장하면 편리하게 오류 수정 및 적용할 수 있다.

MariaDB [kh_db]> SHOW DATABASES;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| kh_db              |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [kh_db]> SHOW TABLES;

+-----------------+
| Tables_in_kh_db |
+-----------------+
| kh_member       |
+-----------------+
1 row in set (0.00 sec)

MariaDB [kh_db]> DESC kh_member;

+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| no       | int(11)     | NO   | PRI | NULL    | auto_increment |
| name     | char(20)    | YES  |     | NULL    |                |
| id       | varchar(20) | YES  | UNI | NULL    |                |
| password | varchar(50) | YES  |     | 1234    |                |
| reg_date | datetime    | NO   |     | NULL    |                |
+----------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
profile
정보보안 전문가

0개의 댓글