[MySQL] *.MYD *.MYI *.frm 파일을 바로 DB로 읽어오기 Develop Tip

어느 파일인가를 보았더니,

a00.MYD
a00.MYI
a00.frm
a01.MYD
a01.MYI
a00.frm
...

과 같은 형식으로 되어 있는 파일들이 있었고,
이것을 바로 MySQL에서 읽어오는 방법은 다음과 같습니다.

$ sudo grep datadir /etc/mysql/my.cnf 
datadir = /var/lib/mysql

읽어오려는 DB이름이 "mydb" 라고 할 경우,

$ sudo mkdir /var/lib/mysql/mydb
$ sudo mv *.MYD *.MYI *.frm /var/lib/mysql/mydb
$ sudo chown -R mysql:mysql /var/lib/mysql/mydb
$ sudo service mysql restart

그리고 

$ mysql -uroot -p mydb -NB -e 'show tables'
라고 하면 해당 DB의 테이블이 보여집니다.

마찬가지로 해당 테이블을 직접 저장 및 위와 같이 가져오는 방법이 있구요.
또한 참고로,
특정 테이블을 읽어 Tab 구분자로 출력하는 쉘 코드는 아래와 같은 식으로 동작합니다.

#!/bin/bash
PWD=`pwd`
sudo rm /tmp/-.tsv
for t in `mysql -uroot -proot mydb -B -N -e 'show tables'`; do
    echo -n "exporting $t ..."
    mysql -uroot -proot mydb -B -N -e "desc $t" > $t.desc
    mysql -uroot -proot mydb -B -N -e "
        SELECT *
            FROM $t
            INTO OUTFILE '/tmp/$t.tsv'
            FIELDS TERMINATED BY '\t'
            LINES TERMINATED BY '\n'
    "
    if [ $? -ne 0 ];then
        rm $t.*
    else
        sudo mv /tmp/$t.tsv . 
    fi  
    echo "done!"
done


어느분께는 도움이 되셨기를...

덧글

  • Rie E. 2013/01/02 16:55 # 삭제 답글

    감사합니다 ;ㅂ; 그냥 파일 복사만 하면 되는거였군요
  • 지훈현서아빠 2013/01/03 11:26 #

    도움이 되셨다니 저의 보람입니다~ ^^
  • 도움받음 ㅡ.ㅜ 2017/09/30 05:43 # 삭제 답글

    감사합니다
  • 지훈현서아빠 2017/09/30 10:16 #

    도움이 되셨다니 저의 보람입니다~ ^^
댓글 입력 영역

구글애드텍스트