블로그 이미지
신세계 SSG.COM / IT개발 1팀 / 상품개발담당 / 김지영 FreeEnd

카테고리

전체 (81)
끄적끄적 (13)
News (1)
Movie (11)
Security (1)
Design Patterns (2)
Operating System (4)
Database (8)
Framework (4)
Solution (7)
Language (1)
Web (4)
Lib (3)
TEST_Tools (4)
ETC... (7)
Software Factory (0)
Total198,670
Today17
Yesterday73


달력

« » 2017.10
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

공지사항

글 보관함


MYSQL 5.1 Server RPM 다운로드

MySQL - Server
(MySQL-server-5.1.50-1.glibc23.i386.rpm)
download (ftp) : http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-server-5.1.50-1.glibc23.i386.rpm/from/ftp://mirror.khlug.org/mysql/

MySQL - Client
(MySQL-client-5.1.50-1.glibc23.i386.rpm)
download (ftp) : http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-client-5.1.50-1.glibc23.i386.rpm/from/ftp://mirror.khlug.org/mysql/



1. 다운로드가 끝나면 RPM으로 설치된 다른 MYSQL 이 있는지 검사한다.
예> #rpm -qa | grep MySQL
MySQL-Server-XXXX
MySQL-Client-XXXX
MySQL-devel-XXXX
....


2. 해당 MySQL 을 삭제한다. (옵션 : -e)
 예> #rpm -e MySQL-XXXX

 그냥 안지워지면 강제로 삭제한다. (옵션 --nodeps)
 예> #rpm -e --nodeps MySQL-XXXX


3. 이제 설치한다.
3-1  MySQL Server 설치
 예> #rpm -ivh MySQL-server-5.1.50-1.glibc23.i386.rpm 
   준비 중...                  ########################################### [100%]
   1:MySQL-server           ########################################### [100%]
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h alidev2 password 'new-password'
Alternatively you can run:
/usr/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.
See the manual for more instructions.
Please report any problems with the /usr/bin/mysqlbug script!
Starting MySQL..[  OK  ]

3-2   MySQL client 설치
 예> #rpm -ivh MySQL-client-5.1.50-1.glibc23.i386.rpm 
   준비 중...                  ########################################### [100%]
   1:MySQL-client           ########################################### [100%]


4. 설치후 admin 비밀번호를 설정한다
예> mysqladmin -u root password pass1234

5. mysql 로 로그인한다
예> mysql -u root -p pass1234


 
수고하셨습니다. 지영옹.
신고
Posted by 지영옹 FreeEnd
MySQL Workbench를 이용한 ER diagram 작성 및 sql import/exrpot 얼리

조회(1486)
Computer Tip | 2008/02/04 (월) 14:08

추천하기 | 스크랩하기

최근에 Database 관련 ER diagram을 그리게 되는 계기가 있었다.
십여년 전에 ERWin이란 프로그램 또는 Microsoft의 Visio (처음에는 Visio가 MS 제품이 아니었다)
를 이용하여 해당 diagram을 그려 보기도 했다.

이런 Database Entity-Relation (ER) Diagram은 실제의 sql문으로 보내거나 가져올 수 있는데,
sql에서 가져와서 diagram으로 그리는 개체로 이용하는 것을 Reverse Engineering이라 하고,
그 반대로 sql로 내보내는 것을 Forward Engineering이라 한다.

비지오 2007 에서는 reverse engineering은 되나 forward engineering은 되지 않는다.
또한 ERWin 은 예전의 3.x대에 비해 최근의 4.x가 GUI에 더 나아졌다는 생각이 들지 않았다.
결국 구글에서 관련 자료를 찾아보다가 현재로서는 이게 제일 나을듯 싶다는 것을 발견했다.

다른 이야기로 최근에 MySQL 데이터베이스 회사가 SUN에 M&A 되었다는 소식을 들었다.
현금 1조의 어마어마한 금액에 팔렸다는 소식이었다. 아마도 SUN이 오라클 등의 대적을 하면서
응용프로그램 또는 서비스 시장에 사활을 걸고 달려드는 것이 아닌가 하는 생각이 들었다.

이 MySQL 회사에서 나온 Workbench라는 제품이 있는데, 바로 이것을 사용하여
위의 기능을 해 보았다.
하루 이틀 사용해 보고 기능을 적어보는 것이니, 그리 자세한 기능은 모르지만
현재 하고자 하는 것은 충분히 할 수 있었다.

참고로 기존에 MySQL로 작업하던 sql 문을 가지고 테스트를 해 보았는데,
이상없이 잘 되었다.

http://dev.mysql.com/workbench/
에 들어가면 아래와 같이 download 링크가 있다.



그것을 다운받아 설치하고 기동하면 위와 같은 화면이 뜬다.


이제 기존에 foo.sql 이라는 sql문이 있었고 그것을 가져오기 위하여 File>Import>Reverse Engineer를 선택하면...


오른편 테이블에 가져온 테이블이 보이며, Phisical Schema에는 suri라는 Database가 보이며, 이것의 다이어 그램을 그리기 위하여
"Add diagram"을 더블클릭한다.


그리고 오른편에 Catalog>Table에서 테이블을 Drag&Drop하여 정렬하면 위와 같은 화면이 되며...
왼편의 relation등을 설정하는 등의 작업을 진행한다.


컬럼을 수정하기 위하여, 테이블을 선택한 후 마우스오른쪽 단추>Edit... 를 선택하면...


위와 같은 테이블 설정 창이 아래쪽에 보이며, 아랫부분에 있는 Columns 탭을 선택하여 해당 컬럼을 수정할 수 있다.


작업을 마친 다음 다시 sql로 내보내기 위하여,  File>Export>Forward Engineer SQL CREATE Script...를 선택하여,


위와 같이 넣고 생성을 하면...


sql문이 만들어 지며, 이를 MySQL 에 다시 적용하면 된다.
신고
Posted by 지영옹 FreeEnd

workbench

Database/MYSQL / 2008.08.29 19:05
workbench..

오늘 MySQL에 만들어놓은 데이타 베이스의 ERD를 만들기위해....

아쪽팔려.. ERD도 만그리고 DB만들었다.

뭐 시스템이 워낙 작다보니..

여튼.

디비 공부 다시해야하는거고

WORKBENCH라 함은. MYSQL의 스크립트를 가지고 ERD를 만들수 있는 아주 좋은 툴이다.

오늘 처음 알았네;;

여튼. 기억해두자.


신고
Posted by 지영옹 FreeEnd


* 본 블로그의 OS환경은 윈도우->리눅스 서버로 원격접속하여 모든 작업을 수행합니다.

* 덤프뜨는 방법은 여러가지 방법이 있겠지만

   처음 하시는 분들이 가장 이해하기 쉬울거 같은(?) 방법으로 진행하겠습니다.

* 기존서버 A와 이전할 서버 B가있다는 가정아래 진행합니다.

* A서버와 B서버의 mysql버전은 4.1.21로 테스트된 내용입니다.

* 모든 경로는 절대경로로 작업하겠습니다.

* A서버와 B서버 모두 외부FTP(알FTP..등)접속이 가능한 서버이어야

   본 블로그의 내용대로 작업하실 수 있습니다.

   물론 다른 방법도 있습니다.

 

*-A서버 작업시작-*

가. Telnet 혹은 SSH로 A서버에 원격접속합니다. (원격접속방법은 본 블로그를 찾아보세요.)

나. A서버의 mysql설치경로 찾아가기

    cd /usr/local/mysql/bin [엔터]

다. ls [엔터] mssqldump라는 파일(이놈이 dump의 핵심)이 있는지 확인.

라. /usr/local/mysql/bin/mysqldump -u root -p DB명 > 생성할 덤프파일명.sql [엔터]

마. 덤프뜰 A서버 SQL패스워드를 입력하고 [엔터] 잠시 대기..

바. A서버 덤프뜨기 완료.

사. ls [엔터] 생성한 덤프파일명.sql이 보이는지 확인.

아. 생성한 덤프파일을 A서버의 FTP홈디렉토리경로로 복사한다.

    cp -r 생성한 덤프파일명.sql FTP홈디렉토리경로 [엔터]

    참고로 보통의 경우 FTP홈디렉토리는 /home/FTP접속계정/으로 되어있다.

자. FTP홈디렉토리로 이동

    cd /home/A서버 FTP접속계정 [엔터]

차. ls [엔터] 생성한 덤프파일이 정상적으로 복사되었는지 확인.

카. 알FTP를 실행하여 A서버 접속 후 생성한 덤프파일 내컴퓨터로 다운로드.

*-A서버 작업끝-*

 

*-B서버 작업시작-*

가. 알FTP실행하여 B서버 접속 후 다운로드 받은 덤프파일을 B서버에 업로드.

나. Telnet 혹은 SSH로 B서버에 원격접속합니다. (원격접속방법은 본 블로그를 찾아보세요.)

다. FTP홈디렉토리로 이동

    cd /home/B서버 FTP접속계정 [엔터]

라. ls [엔터] 업로드한 덤프파일.sql이 보이는지 확인.

마. 업로드한 덤프파일을 B서버의 mysql설치경로로 이동한다.

     cp -r 업로드한 덤프파일.sql /usr/local/mysql/bin [엔터]

아. mysql 설치경로를 찾아가기

     cd /usr/local/mysql/bin [엔터]

자. ls [엔터] 파일복사가 제대로 됬는지 확인.

차. 덤프 밀어넣기

    /usr/local/mysql/bin/mysql -u root -p 밀어넣을 B서버DB명 < 업로드한 덤프파일명.sql [엔터]

카. 밀어넣을 B서버 SQL패스워드를 입력하고 [엔터] 잠시 대기..

타. 덤프 밀어넣기 완료.

*-B서버 작업끝-*

 

-*기타 참고정보-*

1. 덤프뜨기
mysqldump -u 사용자계정 -p 데이터베이스명 테이블명 > 저장될 파일명
예) mysqldump -u root -p mydb_name > mydb_name.sql
이렇게 하면 mydb_name을 모두 덤프를 뜨게된다.

테이블만 덤프를 뜨고 싶다면
예) mysqldump -u root -p mydb_name member > mydb_name.member.sql
이렇게 하면 원하는 테이블만 덤프를 뜰 수 있다.
2. 복구하기
mysql -u 사용자계정 -p DB명 < 덤프파일명
예) mysql -u root -p < 덤프파일명.sql
예) mysql -u root -p mydb_name < 덤프파일명.테이블명.sql

 

1.특정 db의 특정 table에서 원하는 값만 덤프받기
>> edu라는 디비에 a,b,c라는 테이블이 있다.

여기서 a라는 테이블에서 no가 7번이상이고 10번
이하인 값만 덤프를 받고자 한다. 어떻게 하겠는가?
여기서 사용되는 옵션은 -w 이다.그럼 위 질문의 sql문은 아래와 같다

mysqldump -u mysql_admin -p edu a -w'no=>7 and no=<10' > edu_a_cond.sql

위와같이 하면 no가 7~10번까지가 덤프될것이다.
위에서 조건문은 -w 다음에 싱글쿼테이션으로 묶어준다.

sql에서 사용하는 조건문이 다 될듯싶다.

모두 테스트를 해보진 않았다.

2.디비 스키마(Schema)만 백업받기
>>초기에 작성해 놓은 테이블 스키마가 없을때 어떻게 하겠는가?
만약 하나의 테이블이라면 desc 해서 일일이 다 삽질을 하면 되것지만

만약 테이블이 100개라면 ..크억...이럴때 사용하는 mysqldump옵션이 있습니다.
-d 입니다.

!.edu라는 디비의 모든 테이블 스키마를 백업받으려면
mysqldump -u mysql_admin -p -d edu > edu_db.sql

!.edu라는 디비의 a라는 테이블 스키마를 백업받으려면
mysqldump -u mysql_admin -p -d edu a> edu_a_table.sql


[Option Information]

--opt
[--quick --add-locks --add-drop-table --extended-insert]
원복을 할때 기존 DB와 TABLE, DATA를 삭제하고 백업한 내용으로 Update를 합니다.

-q, --quick
버퍼를 사용하지 않고 바로 표준출력으로 보낸다.

--add-locks
테이블의 덤프하기전에 해당 테이블을 잠그고 덤프한 후에 테이블을 풀어준다.

--add-drop-table
덤프 결과에서 create table 앞에 drop table 절을 추가한다.

-c, --complte-insert
INSERT 구문에서 필드명을 포함한 전체를 덤프

--extended-insert
INSERT문 하나에서 모든 레코드를 삽입하는 INSERT문을 생성합니다.

-f, --force
덤프 중 에러가 있어도 계속 진행

-h, --host
특정 호스트의 MySQL 에서 데이터 덤프

-t, --no-create-info
테이블 생성 정보는 덤프하지 않음(데이터만 덤프)

-d, --no-data
테이블 스키마만 덤프

--default-character-set=euckr
 character set 지정

--extended-insert=FALSE
 분리된 query문으로 작성


신고
Posted by 지영옹 FreeEnd