강좌
클라우드/리눅스에 관한 강좌입니다.
데이터베이스 분류

리눅스 쉘상태에서 특정파일에 저장된 SQL문 실행하기 : 데이터베이스생성

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스 쉘상태에서 특정파일에 저장된 SQL문 실행하기 : 데이터베이스생성

 

 

 

 

 

이번에는 MYSQL에 접속하지않은 쉘상태에서 실행하고자하는 SQL문이 저장된 파일을 생성하여 그 파일에 저장된 SQL문을 실행하는 방법을 알아보도록 하겠다.

 

 

 

 

  이 방법은 주로 root관리자들이 MYSQL사용자를 생성하거나 사용자의 데이터베이스를 생성하기위한 방법으로 많이 사용되는 것이다.

 

 

 

 

 이번 예에서는 root관리자가 일반사용자가 사용할 데이터베이스를 생성하는 예를보도록 하겠다.

 

 

 

 

 

 

먼저 다음과 같이 생성할 데이터베이스명이 저장된 파일을 생성하도록 하자. 파일은 vi명령어로 만드는 것이 가장 일반적이다.

 

 

 

 

 필자가 미리 만들어 둔 temp.sql파일을 cat명령어로 확인한 것이다.

 

 

 

 

 

 

[root@RockyLinux ~]# cat temp.sql

create database temp_db;

[root@RockyLinux ~]#

 

 

 

 

temp.sql파일에 저장된 “create database tempdb;”라는 SQL문이 MYSQL root에 의해서 실행되면 MYSQL에는 tempdb라는 새로운 데이터베이스가 생성될 것이다.

 

 

 

 

 

 

아래는 temp.sql파일에 저장된 “create database tempdb;”이라는 SQL문을 리눅스 쉘상태에서 MYSQL root계정으로 실행한 것이다.

 

 

 

 

 

 

[root@RockyLinux ~]# ls -l temp.sql

-rw-r--r-- 1 root root 25  7 11 14:01 temp.sql

[root@RockyLinux ~]#

[root@RockyLinux ~]# mysql -u root -p mysql < ./temp.sql

Enter password:

[root@RockyLinux ~]#



 

 

위와같이 실행할 SQL문이 저장되어있는 temp.sql파일을 미리 생성하여 “./mysql -u root -p mysql < ./temp.sql”와 같이 실행한 후에 MYSQL root패스워드를 입력하면 temp.sql파일에 저장된 “create database tempdb;” 이 실행되어 tempdb라는 새로운 데이터베이스가 생성 된다.

 

 

 

 

 

 

아래는 방금 생성한 tempdb라는 데이터베이스가 생성이 되었는가를 확인하기 위하여 MYSQL root로 접속한 후에 “show databases”라는 MYSQL명령어로 확인한 것이다.

 

 

 

 

 

 

[root@RockyLinux ~]# mysql -u root -p mysql

Enter password:

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

 

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 4

Server version: 10.5.16-MariaDB MariaDB Server

 

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 [mysql]>

MariaDB [mysql]> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sulinux            |

| temp_db            |

| wpDB               |

+--------------------+

6 rows in set (0.000 sec)

 

MariaDB [mysql]>

 

 

 

 

위의 결과를 본 바와같이 방금 생성한 tempdb라는 새로운 데이터베이스가 생성되어있다는 것을 확인할 수 있다.

 

 

 

 

  이번 예에서 알 수 있는 것은 MYSQL데이터베이스로 직접 접속하지 않은 리눅스 쉘명령어상태에서도 원하는 SQL문을 실행할 수 있다는 것이다.

 

 

 

 

 다음에는 이 방법을 이용하여 데이터베이스가 아닌 테이블을 생성해보도록 하겠다.

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,034 명
  • 현재 강좌수 :  35,791 개
  • 현재 접속자 :  78 명