본문 바로가기

Databases/MySQL

slave에서 update 버그 ver.master : mysql 5.1.35slave : mysql 5.1.58 slave 에서 update 문이 들어 올때 (from master) 간단한 업데이트 문인데도 불구 하고 아래와 같은 에러가 발생하는 경우가 있다. [ERROR] 'Rowsize too large. The maximum row size for the used table type, not counting BLOBs, is 8126. Youhave to change some solumn to TEXT or BLOBs' on query. Default database: 'database_name'. Query: 'update database_name.table1 set column_name='가나다' where id=100', .. 더보기
character set 과 collation 의 차이 데이터베이스와 테이블의 character set 확인은 아래와 같이 한다.show create table {table_name};show create database {database_name}; 캐릭터셋 변경은 아래와 같이 한다.-- 데이터베이스 캐릭터셋 변경법alter database {database_name} character set={charset_name};-- 테이블의 캐릭터셋 변경법 alter table {table_name} character set={charset_name};-- 컬럼 캐릭터셋 변경법alter table {table_name} modify {column_name} {column_type} character set={charset_name}; 아래는 character se.. 더보기
mysql_upgrade 사용하여 테이블 repair 하기 데이터베이스 백업시 --all-databases 옵션을 이용하여 백업한 백업 파일을 다른 버전의 mysql에 restore 할 때 종종information_schema 데이터베이스 테이블이 깨지는 경우를 경험하였다. (주로 routines, triggers, events 테이블 등의 접근 불가 현상) 그럴 땐 mysql_upgrade client tool을 이용하여 해결 할 수 있다. # mysql_upgrade -p {PASSWORD} -u {USER} 단, 복제를 사용 중일때는 복제가 깨질 수도 있으므로 주의 해야 한다.해당 명령을 수행하면 phase 3/3 단계에서 datadir를 찾아 mysql_upgrade_info 파일을 생성하게 되는데, 실행 유저가 해당 폴더에 write 권한이 있어야 정상.. 더보기
sort aborted 에러 발생시 해결법 에러 로그에 보면 sort aborted 에러가 찍히는 경우가 있습니다그땐 아래의 내용을 점검해 보면 해결 되는 경우가 많습니다 There is at least few known things to cause this message:Insufficient disk space in tmpdir prevented tmpfile from being created.Insufficient memory for sort_buffer_size to be allocated.Somebody ran KILL in the middle of a filesort.The server was shutdown while some queries were sorting.A transaction got rolled back or aborte.. 더보기
MySQL 데이터베이스명 변경 MySQL 에서는 기본적으로 데이터베이스명 변경을 허용하지 않다가 5.1.7 이후 버전에서 rename database 구문을 업데이트 하여 사용 할 수 있게 하였으나 위험 가능성이 높은 구문으로 판단 하고 5.1.23 이후 버전 부터 다시 제거 됐다.(참고: http://dev.mysql.com/doc/refman/5.1/en/rename-database.html) 하지만 rename 구문이 제공되지 않는다고 해서 데이터베이스명을 변경 할 수 없는 것은 아니다.새로운 데이터베이스를 생성하고 기존의 테이블을 매핑 시켜 주는 방법이 있다.(데이터베이스 내의 테이블 리스트를 얻는 방법은 여러가지가 있으므로 생략한다) mysql> create database ;mysql> rename table to 이후 p.. 더보기
[MySQL] substring_index()으로 특정 문자열만 추출하는 SQL 구문 아래를 보면 fruit라는 컬럼에 다음과 같은 형태로 저장되고 있다. fruit k34ea23&tesdftest$name=apple&t34sest$te^Fdddgft34hjesjttest$name=banana&t325hukis2st567^%$ttest&rrt45ttest$name=strawberry&te3ktefdfghtttest 각 행마다 추출하고자 하는 과일 이름(apple, banana, strawbery)이 있고, 해당 문자열 전/후로 일정한 형태의 문자열($name=, &)도 같이 저장되고 있다고 가정한다.이 경우 substring_index() 로 $name= 앞의 모든 문자열을 삭제 하고 한번 더 substring_index()를 사용하여 & 뒤의 문자열을 모두 삭제하면 원하는 문자열만 추출.. 더보기
(vb 스크립트를 이용하여) excel 에서 MySQL 연결 후 데이터 추출 excel 에서 mysql 연결 http://sway.tistory.com/entry/Excel%EC%97%90%EC%84%9C-MySql%EC%97%B0%EB%8F%99-%ED%85%8C%EC%8A%A4%ED%8A%B8 더보기
Open Source Tools under GPL backup tools automysqlbackup amanda MySQL Administrator 더보기