기본 콘텐츠로 건너뛰기

라벨이 mysql인 게시물 표시

mysql의 데이터를 csv로 저장하기

mySql데이터를 csv파일로 저장하는 방법을 phpMyAdmin이나 queryBrowser를 이용하면 손쉽게 가져올 수 있으나 phpMyAdmin이 설치되어 있지 않거나 mySql이 원격 접속을 허용하지 않는 조건(이 경우 queryBrowser은 접근 불가)에서는 유용하다. 첫번째로 가장 많이 쓰이는 mysql에서 지정된 경로에 csv파일을 저장하는 방법이다. select 원하는 필드1, 원하는 필드2, ... into outfile "/home/foo/my.csv" fields terminated by ',' optionally enclosed by '"' lines terminated by "\n" from 테이블명 where 조건; 이때 /home/foo 디렉토리에 쓰기 권한이 있는 사용자여야 한다. 두번째로 mysql에 로그인 하지 않고 프롬프트 상에서 바로 실행할 수 있는 방법이 되겠다. http://www.debianadmin.com/export-mysql-database-into-a-csv-file.html 두번째는 쉘스크립트로 짜두고 명령행만 받아서 처리하게 하면 유용할 듯 하다.

mysql의 wait_timeout의 설정

mysql에서 wait_timeout값을 설정 변경한 후 값이 변하지 않았다고 하는 질문들이 많이 있다. [mysqld] 섹션에 wait_timeout의 설정을 추가한 후 mysql의 shell에서 조회하는데 wait_timeout값이 변경되지 않은 값이 보이기 때문인데 이것은 조회하는 방법상의 문제이다. 설정과 조회방법을 알아보자. 테스트 환경 CentOS release 5.4 (Final), mysql-4.1.22 1. wait_timeout 설정 [mysql@myServer ~]vi /etc/my.cnf ... [mysqld] ... ... wait_timeout=10000 #default value 28800 2. mysql 데몬 재시작 [mysql@myServer ~]service mysqld restart or [mysql@myServer ~]/etc/init.d/mysqld restart 3. 설정값 확인 [mysql@myServer ~]$ mysql -u root -p ... mysql> show variables like '%timeout%'; +--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | connect_timeout | 5 | | delayed_insert_timeout | 300 | | innodb_lock_wait_timeout | 50 | | interactive_timeout | 28800 | | net_read_timeout | 30 | | net_write_timeout | 60 | | slave_net_timeout | 3600 | | sync_replication_timeout | 0 | | ...

[Mysql 에러] Table '테이블명' is marked as crashed and should be repaired

어제 서버가 갑자기 다운되어서 강제 리부팅을 한 후 웹페이지를 보니 아래와 같은 에러가 발생하였다. [에러 내용] ERROR 1194 (HY000): Table '테이블명' is marked as crashed and should be repaired mysql server version : mysql-server-5.0.45 [해결 방법] 1. 반드시 백업을 한다. tar cvfpz xxx_20091223.tar.gz ./디비명 2. 분산된 인덱스를 다시 정렬 mysql> analyze table 테이블명 (쉘에서 수행되는 myisamchk --analyze 와 같은 명령이다.) analyze : myisam, bdb, innodb에 적용된다. analyze가 수행되는 동안에는 myisam과 bdb는 read에 lock가 걸리며 innodb에는 쓰기에 lock가 걸린다. 수행결과 출력 형태는 다음과 같다. Column Value Table The table name Op Always analyze Msg_type status , error , info , or warning Msg_text An informational message 인덱스가 다시 정렬되면 "show index from 테이블명" 으로  확인할 수 있다. [참고] mysql reference 3. repair table 테이블명 (쉘에서 수행되는 myisamchk --recover 와 같은 명령이다) 수행결과 출력 형태는 다음과 같다. Column Value Table The table name Op Always repair Msg_type status , error , info , or warning Msg_text An informational ...