database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Tutorials 16578 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 16578
mSQL 자료를 mySQL 로 변경하기
작성자
정재익(advance)
작성일
2002-07-22 06:39
조회수
6,335

원본출처 : http://linuxpro.pe.kr/lecture.files/mysql/lecture-mysql2.php

 

먼저 msql안에 어떤 DB가 있는지 알아볼까요? 

[root@129 bin]# relshow

+---------------------------+
|         Databases         |
+---------------------------+
| w3-msql                   |
| bookmarks                 |
+---------------------------+

두개의 DB가 있군요. 
그럼 이번에는 bookmarks안에 어떤 table이 있는지 알아봅시다. 

[root@129 bin]# relshow bookmarks

Database = bookmarks

+-------------------------------+
|            Table              |
+-------------------------------+
| bookmarks                     |
+-------------------------------+

bookmarks라는 DB안에 bookmarks라는 table이 있군요. 
이 테이블을 mysql로 옮겨봅시다. 
먼저 msqlexport명령을 보면, 


[root@129 bin]# msqlexport 

usage:  msqlexport [-h host] [-v] [-s Char] [-q Char] [-e Char] database table

    Produce an ASCII export of the table.

    -v              Verbose
    -s Char         Use the character Char as the separation character
            Default is a comma.
    -q Char         Quote each value with the specified character
    -e Char         Use the specifed Char as the escape character
            Default is \

msqlexport DB명 table명 
이렇게 해주면 되는군요. 
한번 해봅시다. 
[root@129 bin]# msqlexport  bookmarks bookmarks
F,/Databases,/Databases/Mini SQL,Mini SQL,,,
F,/,//Databases,Databases,,,
F,,/Databases,Databases,,,
B,/Databases/Mini
SQL,/Databases/Mini SQL/Mini SQL Home Page,Mini SQL Home Page,http://www.Hughes.com.au/,,
B,/Databases/Mini SQL,/Databases/Mini SQL/Mini SQL Distribution,Mini SQL Distribution,
http://www.Hughes.com.au/software/,,
B,/Databases/Mini SQL,/Databases/Mini SQL/W3-mySQL Home Page,,,,

어라~~! 화면으로 바로 뿌려주는군요. 
보시다시피 각각의 필드들을 .(콤마)로 구분해서 출력시켜줍니다. 
이것을 temp라는 파일로 가지고 오죠. 
[root@129 bin]# msqlexport  bookmarks bookmarks > temp

이제, msql의 bookmarks의 DB안에 있는 bookmarks라는 table의 내용들이 각각의 필드를 ,(콤마)를 구분자로 해서 temp라는 파일에 저장되었습니다. 
이 파일을 mysql로 옮기기만 하면 됩니다.  
 
 
  
  ■ MySQL에서 file을 읽어들이기  
  먼저, file을 읽어들이기 전에 읽어들일 data와 똑같은 필드 구조를 가지는 table을 만들어줘야 합니다. 
bookmarks라는 table의 구조를 봅시다. 
[root@129 bin]$ relshow bookmarks bookmarks

Database = bookmarks
Table    = bookmarks

+-----------------+----------+--------+----------+--------------+
|     Field       |   Type   | Length | Not Null | Unique Index |
+-----------------+----------+--------+----------+--------------+
| type            | char     | 1      | N        | N/A          |
| parent          | char     | 255    | N        | N/A          |
| path            | char     | 255    | N        | N/A          |
| name            | char     | 50     | N        | N/A          |
| url             | char     | 100    | N        | N/A          |
| owner           | char     | 20     | N        | N/A          |
| private         | char     | 1      | N        | N/A          |
+-----------------+----------+--------+----------+--------------+

똑같은 필드 구조를 가지는 table을 mysql에 만들어봅시다. 
먼저, mysql에 접속을 해야겠죠. 
[root@129 bin]# mysql -u cjdshs -p project
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 1 to server version: 3.22.22

Type \help\ for help.

저는 project라는 DB안에 bookmarks라는 table을 만들겁니다. 
위와 똑같은 구조를 가지는 table을 만들어야 하지만, 솔직히 똑같이 만들수는 없습니다. 
msql과 mysql은 지원하는 필드 타입부터가 틀리기 때문입니다. 
똑같진 않더라도 비슷하게만 만들면 됩니다. 
그럼 별 무리없이 돌아갑니다. 
이제 bookmarks라는 table을 만들어보죠. 
mysql> create table bookmarks(type char(1), parent varchar(255), 
        path varchar(255), name varchar(50), 
        url varchar(100), owner varchar(20), 
        private char(1));
Query OK, 0 rows affected (0.31 sec)

table이 만들어졌으니, 이제 file을 읽어들이기만 하면 됩니다. 
mysql에서 file을 읽어들이기 위해서는 LOAD DATA INFILE명령을 이용하면 됩니다.

mysql> LOAD DATA INFILE \temp\ INTO TABLE bookmarks FIELDS TERMINATED BY \,\;
Query OK, 8 rows affected (0.20 sec)
Records: 8  Deleted: 0  Skipped: 0  Warnings: 13

이때, INFILE 다음에 파일명을 적을때는 정확한 경로를 적어주시고, 
TERMINATED BY 다음에는 필드들의 구분자를 적어주시면 됩니다. 
여기서는 ,(콤마)를 구분자로 했습니다만 다른 구분자를 사용하셔도 됩니다. 
아무런 에러없이 실행이 되었다면 이제 Convert가 끝난겁니다. 
select 명령을 이용해서 확인해 보시면 될겁니다. 

여기서는 msql만 가지고 설명을 했지만, 기타 다른 DB의 경우에도 마찬가지로 적용할수 있을겁니다. 

이 방법외에 다른 방법을 알고 계시는 분께서는 저한테도 좀 갈켜줘잉~~~!!! 

마법과도 같은 행운이 깃들기를... 
[Top]
No.
제목
작성자
작성일
조회
16582JSP/Servlet 에서 MySQL 접속 예제코드
정재익
2002-07-22
8116
16581NT4.0+JDK+JSDK+apache+tomcat+mysql+jdbc
정재익
2002-07-22
8303
16580MySQL 기본사용법
정재익
2002-07-22
22321
16578mSQL 자료를 mySQL 로 변경하기
정재익
2002-07-22
6335
16577MySQL 원격접속과 루트패스분실 및 소켓에러에 대한 팁
정재익
2002-07-22
10300
16575APM + Zend Optimizer + gd + imap + Tomcat + mysql용JDBC + JDK1.3 설치하기
정재익
2002-07-22
6904
16574IIS(ASP) + MYSQL(linux/unix) 연동방법
정재익
2002-07-22
7123
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.023초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다