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

리눅스 쉘상태에서 특정파일에 저장된 SQL문 실행하기 : 데이터베이스생성 (mysql 응용편 #1)

작성자 정보

  • 구돌 작성
  • 작성일

컨텐츠 정보

본문

리눅스 쉘상태에서 특정파일에 저장된 SQL문 실행하기 : 데이터베이스생성 (mysql 응용편 #1)




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

 

 

 

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

 

 

 

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

 

 

 

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

 

 

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

 

 

 

[root@file bin]# cat temp.sql

create database tempdb;

[root@file bin]#

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

 

 

 

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

 

 

 

[root@file bin]# pwd

/usr/local/mysql/bin

[root@file bin]#

[root@file bin]# ls -l temp.sql

-rw-r--r--    1 root     root           24  2 13 15:18 temp.sql

[root@file bin]#
[root@file bin]# ./mysql -u root -p mysql < ./temp.sql

Enter password: ********

[root@file bin]#

 


위와 같이 실행할 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@file bin]# ./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 MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 14 to server version: 4.0.14

 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

 

mysql>

mysql> show databases;

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

| Database   |

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

| mysql      |

| picasso_db |

| tempdb     |

| test       |

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

4 rows in set (0.00 sec)

 

mysql>

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

 

 

 

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

 

 

 

관련자료

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

공지사항


뉴스광장


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