카테고리 없음2013. 6. 20. 10:24

 

11-2. 데이터베이스 서버 구축 및 운영 - 간단한 SQL 구문

 

 

● 필수 SQL 구문

 

 

Posted by 아이맥스
카테고리 없음2013. 6. 20. 10:22

 

11-3. 데이터베이스 서버 구축 및 운영

      - MySQL 설치

 

 

● MySQL 서버 및 클라이언트를 다운로드해서 설치

 

지금부터 다음의 시나리오에 의해서 MySQL DBMS를 구축하고 운영해보도록 하자.

 

어떤 오프라인 쇼핑몰 회사의 IT 부서에 취직을 했다고 하자.

신입 사원으로써 처음으로 IT 부서의 미팅에 참여했다.

회의 주제는 온라인 쇼핑몰 구축이다.

 

오프라인 쇼핑몰만 운영하던 회사에서는, 이번에 오프라인 쇼핑몰과 연동한 온라인 쇼핑몰을 구축하려고 한다.

팀원 중에 웹 프로그래머 및 웹 디자이너는 있어서 웹 사이트 구축을 하면 될 것 같은데, DB 관리자가 별도로 없어서 모두가 고민 중에 있다.

또, 문제는 비용이다. 아직은 시범 시스템을 구축하는 단계여서 별도의 하드웨어 및 소프트웨어를 구매할 수 없는 상황이다.

그렇다고 기존 DB 서버에 시범 운영할 시스템을 같이 사용하려니, 아무래도 기존의 운영하는 시스템이 느려질 것 같아서 좀 불안하다.

 

이때, 신입사원인 내가 손을들도 "DB쪽은 제가 책임지겠습니다" 라고 말해버렸다.

큰소리는 쳤지만 난감한 상황이 아닐 수 없다.

 

 

< 실습1 > 

 

0. Fedora Server를 선택하고, Vmware 메뉴의 [VM] -> [Snapshot] -> [설치직후 설정완료]

를 선택해서 초기화한다.

 

 

0-1 부팅한다. root 사용자로 접속한다.

 

 

1. wget을 이용해서 'MySQL-server-5.5.0-0.glibc23.i386.rpm'과

'MySQL-client-5.5.0-0.glibc23.i386.rpm' 파일을 다운로드 하자.

 

(http://source.hanb.co.kr/9788979147209/fedora_source/ 웹 페이지에서 다운)

 

wget http://source.hanb.co.kr/9788979147209/fedora_source/MySQL-server-5.5.0-0.glibc23.i386.rpm

wget http://source.hanb.co.kr/9788979147209/fedora_source/MySQL-server-5.5.0-0.glibc23.i386.rpm

 

 

2. 우선 "yum install perl-DBI"로 관련 패키지를 설치한다.

(혹은 yum install *sql*)

 

 

2-1 다운로드 한 파일을 rpm 명령으로 설치하자.

rpm -Uvh MySQL-server-5.5.0-0.glibc23.i386.rpm

rpm -Uvh MySQL-client-5.5.0-0.glibc23.i386.rpm

 

※ 웹 서버(아파치 또는 IIS)에 접속하려면, 웹 클라이언트(Firefox나 IE 등의 웹 브라우저)가 있어야 하듯이

DB 서버에 접속하려면 DB 클라이언트가 있어야 한다.

그래서 server와 client를 모두 설치했다.

 

 

2-2 설치가 완료되면, "system-config-services" 명령으로 mysql 서비스가 항상 가동되도록

체크되어 있는지 확인한다.

'mysql' 데몬이 이미 가동하고 있고, 자동으로 시작되도록 설정되어 있을 것이다.

확인만 하고 창을 닫는다.

(텍스트 모드에서는 지원하지 않는다)

 

※ 직접 다운로드해서 설치한 MySQL의 서버 데몬(=서비스) 이름은 'mysql' 이지만, 페도라 11 DVD에 있는 mysql 5.1을 설치하면, 데몬 이름이 'mysqld'로 설치된다.

종종 혼동하는 사항이므로 기억해 두자.

 

 

2-3 만약에 'mysql' 데몬이 시작되지 않았으면 시작해준다.

service mysql start

(혹은 mysqld)

"service mysql status" 명령으로 MySQL 서버 데몬의 가동을 확인한다.

 

 

2-4 외부에서 MySQL 서버를 사용할 수 있도록 "system-config-firewall" 명령으로

mysql의 포트를 열어준다.

mysql 포트는 3306이므로, 그 외의 포트 부분에 '3306' (tcp)를 추가한다.

※ 각 서버의 포트번호는 /etc/services 파일에 정의되어 있다.

 

 

2-5 이제는 MySQL 클라이언트 프로그램을 이용해서, MySQL 서버에 접속해 보도록 하자.

MySQL 클라이언트 프로그램의 실행 명령은 "mysql" 이다.

 

'mysql>' 프롬프트가 나오면 서버에 정상적으로 접속되었다는 의미이다.

이제는 앞 절에서 배운 SQL 문을 사용하면 된다.

우선은 "quit"로 종료한다.

 

 

여기까지 진행했으면 MySQL 데이터베이스 서버를 구축 완료한 것이다.

이제는 이 데이터베이스 서버를 잘 활용하는 일만 남았다.

 

※ 비록 MySQL 서버의 실행스크립트도 "mysql"이고, MySQL의 클라이언트 실행 파일 이름도 "mysql"이지만,

두 개는 완전히 별개다.

MySQL 서버 스크립트는 "/etc/init.d/mysql" 파일이고,

MySQL 클라이언트 실행 파일은 "/usr/bin/mysql" 이다.

 

Posted by 아이맥스
카테고리 없음2013. 6. 20. 10:20

 

11-3. 데이터베이스 서버 구축 및 운영

      - Windows에서 리눅스의 MySQL 서버 접속

 

● Windows에서 리눅스의 MySQL 서버 접속

 

 

< 실습 2 >

 

MySQL의 기본적인 보안을 설정하고, Windows에서 리눅스의 MySQL 서버에서 접속해서

사용하도록 설정하자. 

 

 

 

 

1. [ Fedora Server ]

 

보안에 중요한 DB 사용자 'root'의 비밀번호를 지정하자.

 

 

1-1 "mysqladmin" 명령으로 DB 사용자 'root'의 비밀번호를 '1234'로 변경하도록 한다.

 

 

1-2 이제는 "mysql" 명령으로 그냥 접속은 안 된다.

"mysql -u root -p" 명령으로 접속한 후에, 비밀번호를 별도로 입력해야 한다.

 

 

 

 

2. [ Windows Client(=호스트OS) ]

 

 MySQL 서버에 접속하기 위해서, 꼭 MySQL 서버가 설치된 컴퓨터에서만

MySQL 클라이언트를 사용하는 것은 아니다.

당연히 다른 컴퓨터에서도 MySQL 서버에 접속할 수 있어야 할 것이다.

이번에는 Windows에서 Fedora Server에 설치된 MySQL 서버에 접속해 보도록 하자.

 

 

2-1 웹 서버에 접속하기 위해서는 웹 클라이언트(웹 브라우저)가 필요하듯이,

MySQL 서버에 접속하기 위해서는 MySQL 클라이언트가 필요하다.

Internet Explorer로 http://www.mysql.com/에 접속해서 Windows용 MySQL 클라이언트를 다운로드하여 설치하자.

 

[Downloads] -> [Downloads] -> [MySQL Community Server] -> [5.5]에서

'Windows'를 클릭해서 들어가자.

이번에는 'Windows downloads' 부분의 'Windows Essential (x86)' 을 다운로드하자.

※ 리눅스용은 server와 client 프로그램을 별도로 제공하지만 Windows용은 한 개 파일에

server와 client가 모두 포함되어 있으므로, 설치 시에 필요한 파일을 선택해서 설치해야 한다.

 

 

2-2 다운로드한 파일 'mysql-essential-5.5.0-m2-win32.msi'를 더블클릭해서 설치를 시작한다.

처음 환영 메시지가 나오면 <Next>를 클릭한다.

 

 

2-3 Setup Type에서는 'Custom'을 선택한다.

그냥 Typical로 설치하면 Windows용 MySQL 서버도 설치된다.

우리는 MySQL 서버는 페도라에 설치한 것을 사용할 것이므로,

MySQL 클라이언트만 설치할 것이다.

 

 

2-4 [Custom Setup] 화면에서 'MySQL Server' 앞의 디스크 모양 아이콘을 클릭해서

[This feature will not available]을 선택해서 설치되지 않도록 설정한다.

 

같은 방식으로 'Client Program' 아래의 'MySQL Server Instance Config'도

설치되지 않도록 설정한다.

 

최종적으로는 다음 그림과 같이 'Client Programs'에 있는

'MySQL Command Line Shell'과 'MySQL Command Line Utilities'만 설치되도록 설정한다.

 

또, 'Client Programs'를 클릭한 후 <Changes>를 클릭해서 설치될 디렉토리를 "C:\mysql\"로 입력하자.

 

<OK>와 <Next>를 클릭하고, 다음 화면에서 <Install>을 클릭하면 설치가 진행된다.

 

 

2-5 설치가 완료되면 <Next>를 두 번 클릭하고 'Register the MySQL Server now'

체크를 해제하고 <Finish>를 클릭해서 설치를 완료한다.

 

 

 

 

3. [ Windows Client(=호스트OS) ]

 

Windows에서 리눅스의 MySQL 서버로 접속해 보자.

 

 

3-1 명령 프롬프트에서 MySQL 클라이언트가 설치된 'C:\mysql\bin\' 폴더로 이동하고,

"mysql" 명령을 입력한다.

 

접속이 안 될 것이다.

 

접속이 안되는 이유를 파악해보자.

 

"mysql" 클라이언트 명령어는 아무런 옵션이 없이 실행하면 현재 클라이언트 프로그램이

설치되어 있는 컴퓨터에 MySQL 서버가 설치되어 있을 것이라고 생각하고 접속을 하게 된다.

 

지금은 Windows Client(호스트OS)에 MySQL 클라이언트만 설치했을 뿐,

MySQL 서버는 설치하지 않았으므로 접속할 MySQL 서버가 없는 것이다.

 

 

3-2 Fedora Server(192.168.xxx.111)에 접속을 하도록 지정하면 된다.

"mysql -h 호스트이름(또는 IP주소) -u 사용자이름 -p" 명령으로 접속해 보도록 하자.

 

비밀번호까지 입력하는 부분이 나와서 이번 실습 1-1에서 설정한

DB 사용자 'root'의 비밀번호 '1234'를 정확히 넣었는데 접속이 되지 않았다.

 

 

여기서 MySQL이 관리하는 사용자의 개념이 하나 더 나온다.

MySQL은 이메일 주소와 비슷한 형식으로 사용자 이름을 사용한다.

즉, '사용자이름@호스트이름(또는 IP)' 형식으로 사용자를 관리한다.

 

그래서 MySQL 서버에서 비밀번호를 '1234'로 지정한 DB 사용자 'root'의 정식 이름은

'root@localhost' 였던 것이다.

 

원칙적으로 MySQL 서버에 접속하는 MySQL의 클라이언트 명령어는

'mysql -h 서버호스트이름또는IP -u 사용자이름 -p'로 접속해야 한다.

그러면 내부적으로 '사용자이름'을 '사용자이름@현재컴퓨터IP'를 붙여서 서버로 접속하게 된다.

 

 

다시 Windows에서 접속한 명령을 살펴보자.

'mysql -h 192.168.xxx.111 -u root -p'로 접속을 했다.

일단 Fedora Server IP의 컴퓨터에 MySQL 서버가 설치되어 있으므로,

사용자만 통과되면 접속이 승인된다.

 

그런데 문제는 Windows에서 입력한 'root' 사용자의 정식 이름은

'root@Windows_IP주소'가 된다.

 

필자의 경우 'root@192.169.111.1' 이 되는 것이다.

MySQL 서버에 접속이 허용된 DB 사용자는 'root@localhost'(또는 root@127.0.0.1)만 있을 뿐,

'root@192.168.100.1'이라는 사용자는 존재하지 않으므로 접속이 거부된 것이다.

 

※ MySQL 서버에 접속하는 것이 좀 까다롭게 느껴질 수도 있지만, 이는 보안을 위해서 꼭 필요한 부분이다. 즉, DB 사용자 이름과 비밀번호만 안다고 아무 컴퓨터에서나 접속할 수 없도록 설정하는 것이다. MySQL 서버에 접속하기 위해서는 접속하는 컴퓨터까지 지정해 놓은 곳에서만 접속해야 한다.

 

 

3-3 먼저, ipconfig 명령으로 Windows Client의 IP주소를 확인해 놓자.

VMware 메뉴의 [Edit] -> [Virtual Network Editor]를 선택한 후 [Summery] 탭의

'VMnet8(Nat)' 부분의 192.168.xxx.0을 확인하면 된다.

여기서 Windows Client의 IP주소는 192.168.xxx.1번으로 내부적으로 고정되어 있다.

(나는 192.168.100.1이다)

 

또는, 명령 프롬프트에서 "ipconfig" 명령으로도 확인할 수 있다.

 

 

 

 

4. [ Fedora Server ]

 

사용자 개념을 파악했으므로 Windows Client에서 접속할 사용자를 생성해 주자.

 

MySQL 서버의 관리자인 root와 혼동이 되므로, Windows 사용자는 winuser로 생성하자.

(즉, 전체 이름은 winuser@192.168.xxx.1이 된다)

 

 

4-1 먼저 MySQL의 사용자가 들어 있는 테이블을 확인하도록 하자.

MySQL 서버를 설치하면 두 개의 DB가 자동으로 생성되는데

'mysql'과 'test'라는 이름의 DB들이다.

 

'mysql' DB는 MySQL 서버와 관련된 모든 시스템 정보가 들어 있다.

그 중에서 MySQL 서버에 접속할 사용자 정보도 들어 있다. 테이블 이름은 'user' 이다.

 

먼저, 터미널에서 "mysql -u root -p" 명령으로 접속한다.

접속 후에, mysql DB에 있는 user 테이블을 조회해 보도록 하자.

 

mysql> use mysql;                                                           

mysql> SELECT user, host FROM user WHERE user not like '';

 

 

mysql DB에 있는 user 테이블의 user 열과 host 열을 조회한 결과이다.

즉, 현재 MySQL 서버를 사용할 수 있는

Posted by 아이맥스