iconv 로 mysql dump 파일 캐릭터셋 변경하기

리눅스/MySQL|2015. 1. 16. 11:33
반응형

사이트 이전시 DB 내용이 ?????? 로 보이거나 깨져보일 경우 아래와 같이 (응용해서) 해보세요.

 

예) mysql 4.1.21 (latin1)  -> mysql 4.1.21 (euc-kr) 이전

 

구서버에서

mysqldump -p sysdocu > sysdocu.sql

 

덤프받은 sysdocu.sql 파일을 신서버로 이동합니다.

 

신서버에서

iconv -c -f utf8 -t latin1 sysdocu.sql > sysdocu_utf8.sql
# iconv -c -f euckr -t utf8 sysdocu_utf8.sql > sysdocu_euckr.sql

생성된 sysdocu_euckr.sql 파일을 vi 로 열어 편집합니다.

vi sysdocu_euckr.sql

아래와 같이 내용중 latin1 을 euckr 로 일괄 변경합니다.

:%s/latin1/euckr/g

 

복구 (import)

mysql -p sysdocu < sysdocu_euckr.sql

사이트 한글이 정상적으로 표시되는것을 확인할 수 있습니다.



반응형

'리눅스 > MySQL' 카테고리의 다른 글

mysqldump 시 에러  (0) 2015.01.16
MySQL 5.5 에서 myisam 사용하기  (0) 2015.01.16
평균, 큰수, 작은수, 합 구하기  (0) 2015.01.16
int 형 필드에 NULL 값 넣기  (0) 2015.01.16
월별 합계 구하기  (0) 2015.01.16

댓글()

평균, 큰수, 작은수, 합 구하기

리눅스/MySQL|2015. 1. 16. 11:33
반응형

1. 평균, 큰수, 작은수, 합 구하기

 - select avg(sal), max(sal), min(sal), sum(sal) from emp where job like '%sales%';

   (emp테이블에서 sal의 평균, 큰수, 작은수, 더한값을 구한다. 단 job가 sales인사람들것만)

- avg(평균), max(큰수), min(작은수), sum(합)

 - select min(sal), max(sal) from emp;

   (emp테이블의 sal값중 제일 작은수와 큰수를 출력한다)


 

[출처] http://blog.naver.com/lsm054/80109045463

반응형

댓글()

int 형 필드에 NULL 값 넣기

리눅스/MySQL|2015. 1. 16. 11:32
반응형

int 형 필드의 데이타를 아래와 같이 지우면 '0' 값이 들어가게 됩니다.

mysql> update 테이블명 set 필드명='' where name='sysdocu';

 

NULL 값을 필요로 할때는 아래와 같이 합니다.

mysql> update 테이블명 set 필드명=NULL where name='sysdocu';

반응형

댓글()

월별 합계 구하기

리눅스/MySQL|2015. 1. 16. 11:32
반응형

ename

tdate

won(계약금액)

su(수금액)

a

20060610

10

0

b

20060611

20

20

c

20060612

30

30

d

20060613

40

0

a

20060714

50

50

b

20060722

60

60

c

20060707

74

0

d

20060730

22

22

a

20060801

56

56

b

20060821

22

0

c

20060811

33

0

d

20060822

55

55

 

select left(tdate,6) as tdate, sum(won), sum(su)
from startfragment

(조건문이 필요하면 이곳에 삽입)
group by left(tdate,6)
order by left(tdate,6)

 

[출처] 지식인 | kjm5539 (http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=10205&docId=66197345&qb=bXlzcWwg7JuU67OEIO2VqeqzhA==&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=gYwlZF5Y7vKsscyERrNssc--509190&sid=TvwFwfMC-E4AAGTGChI)

반응형

댓글()

mysql 두개의 테이블을 비교해서 없는 데이타 추출

리눅스/MySQL|2015. 1. 16. 11:31
반응형

B테이블의 ID 필드에는 있고

A테이블의 ID 필드에는 없는 데이타 출력

 

테이블 B를 기반으로 하는 외부조인을 걸어서 A테이블의 ID값이 null인 B의 ID 값을 추출하면 되네요 ^^

 

A.IDB.ID
aaaaaaaa
null zzzz
 dddd dddd
null eeee

 

필드명을 ID라고 하고 시작하겠습니다.

 

SELECT

   B.ID

FROM

   A RiGHT OUTER JOIN B ON A.ID = B.ID

WHERE

   A.ID IS NULL

 

[출처] 지식인 | sandgras (http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040204&docId=71731351&qb=bXlzcWwg7YWM7J2067iUIOu5hOq1kO2VtOyEnCDsl4bripTqsoM=&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=gYso035Y7vZssaObvQKssc--298586&sid=TvABTpL7704AAD-UCKQ)

반응형

'리눅스 > MySQL' 카테고리의 다른 글

int 형 필드에 NULL 값 넣기  (0) 2015.01.16
월별 합계 구하기  (0) 2015.01.16
두개의 table 에서 data 가져오기  (0) 2015.01.16
phpMyAmin 에서 information_schema 숨기기  (0) 2015.01.16
mysql 5.1.x 에서 innodb 사용하기  (0) 2015.01.16

댓글()

두개의 table 에서 data 가져오기

리눅스/MySQL|2015. 1. 16. 11:31
반응형

예를들어 wow, kek 두개의 테이블이 있고 
두테이블의 title 항목을 출력시키려면

 

$sql="select a.titleb.title from wow akek b"; 

이리하면 되고요 
no필드값이 같은  두개의 테이블에서 title 필드 출력시키려면


$sql="select a.title, b.title from wow akek b where a.no=b.no"; 

이리하면 됩니다.

 

[출처] phpschool | 왕초보 (http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&wr_id=46774)

반응형

댓글()

phpMyAmin 에서 information_schema 숨기기

리눅스/MySQL|2015. 1. 16. 11:31
반응형

MySQL 서버를 설치하고 관리하기 쉽도록 phpMyAdmin 을 설치하고 사용하는 곳이 대부분입니다.
기본적으로 information_schema 디비는 보안상 좋지 않으므로 phpMyAdmin 설정 파일에 아래와 같은 구문을 추가 해주시면 해당 데이터베이스가 숨겨집니다.

$cfg['Servers'][$i]['hide_db'] = 'information_schema';


예)

[root@yongbok ~]# vi /home/src/phpMyAdmin/config.inc.php

$cfg['Servers'][$i]['auth_type'] = 'http';

$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;

$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['Servers'][$i]['hide_db'] = 'information_schema';


반응형

댓글()

mysql 5.1.x 에서 innodb 사용하기

리눅스/MySQL|2015. 1. 16. 11:27
반응형

구버전에서 설치시 configure 옵션에 --with-innodb 라고 주었지만

5.1.x 버전에서는 아래와 같이 추가 후 컴파일 하면 됩니다.

 

--with-plugins=innobase

반응형

댓글()

[ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table '/tmp/#sql_3922_0.MYI'; try to repair it

리눅스/MySQL|2015. 1. 16. 11:27
반응형

mysql error 로그에 다음과 같은 에러가 반복적으로 나타날 경우에 대한 조치 방법입니다.

 

[에러]

110805 13:28:24 [ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table '/tmp/#sql_3922_0.MYI'; try to repair it
110805 13:30:16 [ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table '/tmp/#sql_3922_0.MYI'; try to repair it
110805 13:30:20 [ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table '/tmp/#sql_3922_1.MYI'; try to repair it
110805 13:30:29 [ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table '/tmp/#sql_3922_0.MYI'; try to repair it
110805 13:32:49 [ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table '/tmp/#sql_3922_0.MYI'; try to repair it
110805 13:32:56 [ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table '/tmp/#sql_3922_0.MYI'; try to repair it
110805 13:33:07 [ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table '/tmp/#sql_3922_0.MYI'; try to repair it
110805 13:33:47 [ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table '/tmp/#sql_3922_0.MYI'; try to repair it
110805 13:34:45 [ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table '/tmp/#sql_3922_0.MYI'; try to repair it

 

 

[해결] 

우선 파일이 임시로 저장되는 /tmp 폴더의 용량이 부족해서 위와 같은 에러가 발생 할 수 있습니다.

이런경우는 /tmp 파티션이 별도로 존재할 경우 그러한 경우가 많은데

아래 절차를 따라 해결이 가능합니다.

 

root@sysdocu:~# mkdir /home/tmp            // 용량이 넉넉한 파티션에 tmp 폴더를 생성하였습니다.

root@sysdocu:~chmod 1777 /home/tmp

root@sysdocu:~vi /etc/my.cnf

 tmpdir=/home/tmp 


root@sysdocu:~/etc/init.d/mysqld restart

 

 

[참고]

실상황에서 문제발생시 약 7G정도의 용량이 남은 /var/tmp 로 변경을 하였지만

같은 에러메세지가 발생하였고, /home/tmp 로 다시 변경하고 나서 문제가 해결되었습니다.

반응형

댓글()

ERROR 1153 (08S01) at line 1574: Got a packet bigger than 'max_allowed_packet' bytes

리눅스/MySQL|2015. 1. 16. 11:26
반응형

mysql DB 복구(import)시 아래와 같은 메세지가 출력된다면 설정을 조절하고 다시 시도해봅니다.

 

[에러]

ERROR 1153 (08S01) at line 1574: Got a packet bigger than 'max_allowed_packet' bytes

 

[해결]

mysql> SET GLOBAL max_allowed_packet=100000000;
mysql> SET GLOBAL net_buffer_length=100000000;

반응형

댓글()

mysql 로그인 후 시스템 명령 사용하기

리눅스/MySQL|2015. 1. 16. 11:26
반응형

예) mysql> system ls -al

 

위와같이 사용할 명령어 앞에 system 만 붙이면 됩니다.

반응형

댓글()