본문 바로가기

mysql66

MySql 쿼리 디버깅을 위한 방법 - syslog PHP를 이용하여 웹 어플리케이션을 작성 할 때 난감한 이슈 중의 하나는 Database query를 찍어보는 것이다. echo나 print로 로그를 찍게 되면, 화면에 직접 출력되기 때문에 만약 운영중인 웹 어플리케이션이라면 화면 가득 쏟아져 나온 쿼리를 보게 될 것이다. 단순하게 파라미터나 그 밖의 변수를 찍어 보는 정도라면 echo나 print가 적당할 수도 있겠지만, 쿼리를 찍는다는건 긴 스트링일 가능성이 크기 때문에 그리 추천할 만 한 방법은 아니다. IBM 디벨로퍼웍스에서는 PHP 웹 어플리케이션 디버깅 시에 사용할 만한 좋은 기법으로 syslog()에 대한 아티클을 게재한 바 있다. syslog로 PHP 프로그램 디버깅하기 (한글) [원문보기] PHP에서 syslog 함수는 아래와 같이 정의.. 2009. 4. 28.
MySQL 사용 중 발생할 수 있는 대기 현상 장애의 원인과 대처 다음의 경우는 필자가 몇 년 동안 MySQL을 운영하면서 겪었던 장애 현상 중 대기 현상을 유발해 장애를 발생시키는 원인들을 정리한 것이다. - DDL 작업 진행 시 - Table Flush 진행 시 - mysqldump를 이용해 백업이 진행되는 경우 - Table Lock을 사용하는 경우 - Serializable Isolation Level을 사용하는 경우 위의 다섯 가지 경우를 하나씩 살펴보자. 참고로 테스트에 사용된 MySQL 버전은 MySQL Community 버전 5.0.67로, MyISAM과 InnoDB를 대부분 사용했기 때문에 여기 나온 내용은 그 사항에 특화된 것임을 밝힌다. DDL 작업 진행 시 사실 MySQL을 오랫동안 운영해본 사람이라면 MySQL에서의 DDL 작업이 쉬운 작업이 아.. 2009. 4. 23.
MySQL 5.1 Server System Variables (시스템변수) MySQL 서버는 서버가 어떻게 구성되었는지를 가리키는 많은 시스템 변수들을 유지 관리 한다. 각 시스템 변수는 디폴트 값을 가지고 있다. 시스템 변수들은 명령어 라인 또는 옵션 파일에서 옵션을 사용하여 서버 스타트업 때 설정될 수 있다. 대부분의 것들은 서버가 구동되고 있는 동안에 SET 명령문을 가지고 동적으로 변경할 수 있는데, 이 명령문은 서버를 종료하고 재 구동 시키지 않는 상태에서 서버 동작을 수정할 수 있다. 여러분은 수식 안에 있는 시스템 변수를 참조할 수도 있다. 시스템 변수 이름과 값을 볼 수 있는 방법은 여러 가지가 있다: 서버가 디폴트 및 옵션 파일에서 읽는 변수 값을 보기 위해서는, 아래의 명령어를 사용한다: mysqld --verbose --help 옵션 파일에 있는 설정 값은 .. 2009. 3. 12.
MySQL - LOCK을 이용해 트랜잭션 구현 다중 처리를 하나의 작업단위로 처리하는것을 트랜잭션이라고 합니다. MySQL 에서는 하나의 MyISAM 테이블에 Insert, Update, Delete SQL 쿼리문을 실행할때 한명의 유저가 액세스를 하게 되면 문제가 없으나 여러명의 유저가 동시에 액세스를 하게되면 잘못된 순서로 데이타 처리가 일어날수 있습니다. 왜냐하면 여러명의 유저가 여러 명령을 하나의 테이블에 한꺼번에 하기 때문이다. 이런경우에는 반드시 일의 단위를 구분짓고 트랜잭션 처리를 해야 한다. MySQL 에서는 Innodb 라는 테이블 종류로 트랜잭션이 지원하지만 설치를 따로 해야 하고 설정도 따로 해야 하는 단점이 있다. 트랜잭션 기능이 없는 MyISAM 테이블을 사용할때 한테이블에 연속으로 여러 row 처리를 하게되면 모든 처리가 한.. 2009. 2. 12.
MySQL 4.1 이후 사용자 패스워드 저장 방식 변경 에러메시지 : Client does not support authentication protocol requested by server; consider upgrading MySQL client mysql> SET PASSWORD FOR root@localhost = OLD_PASSWORD('비밀번호'); Query OK, 0 rows affected (0.02 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) ==== mysql4.0 이하를 사용하는 서버에서 mysql4.1 이상을 사용하는 서버의 데이타를 가져올 경우 1. PHP 업그레이드 2. DB 업데이트 * UPDATE mysql.user SET Password = OLD_PA.. 2009. 2. 11.
728x90