본문 바로가기

전체 글931

트랜잭션 개념과 mysql에서의 적용 출처: 네이버, phpschool 은행 현금인출기(ATM)에서 돈을 인출하는 과정을 생각해 봅시다. 현금인출을 하겠다고 기계에게 알려준뒤 현금카드를 넣어서 본인임을 인증받고, 인출할 금액을 선택하면 ATM 기는 돈을 내어줍니다. 이러한 거래에 있어서 지켜져야 할 중요한 것이 있습니다. 기계의 오동작 등으로 인하여 전산상으로는 돈을 인출한 것으로 입력이 되었는데 돈은 안나온다거나, 돈은 나왔는데 일련의 에러나 문제로 인하여서 돈을 인출한 것이 전산상으로 입력이 안되면 상당히 심각한 문제가 발생하겠죠. 때문에 전산상으로도 입력이 정상적으로 잘 되고, 돈도 인출이 정상적으로 잘 됨을 확인하고 나서야, 인출하는 하나의 과정이 정상적으로 처리되었음을 확인할 수 있습니다. 여기서 돈을 인출하는 일련의 과정이 하나의.. 2008. 10. 10.
테이블 검사 및 복구하기 - myisamchk [ myisamchk 란 ? ] - DB 테이블에대한 오류 검사 및 오류 복구 유틸리티 - 버전 3.22.x : isamchk 유틸리티 사용 3.23.x : myisamchk 유틸리티 사용 [ myisamchk 사용전 주의사항 ] - mysql 데몬을 stop 시킨후 이 유틸리티를 사용해야한다. - mysql 데몬을 중지시킬수 없는 사항이라면 검사할 테이블에대한 rock을 걸고 검사를 수행하여야만 검사도중에 발생할수있는 오류를 막을수있다. - 모든작업이 그렇듯이 항상 백업을 한후 작성을 수행하는것이 좋을것이다. [ myisamchk 사용법 및 옵션 ] - 해당 테이블이있는 디렉토리로 이동 ( 일반적으로 /usr/local/mysql/var 밑에 위치함 ) 1.일반적인 검사 [root@angelsoma v.. 2008. 10. 10.
mysql 상황 체크 - show 1. 현재 존재하는 데이터베이스보기(show databases) 2. 사용중인 데이터베이스의 테이블보기(show tables) 3. 특정테이블의 구조보기(show columns from 테이블) 테이블은 여러개의 필드로 구성되어 있으며 특정테이블의 필드명과 type, 설정값들을 보기위한 것입니다. 이 명령은 "desc 테이블"과 "explain 테이블"과 동일한 결과를 보여줍니다. 4. 특정테이블의 인덱스보기 5. 데이터베이스의 설정상태 보기(show status) 6. 데이터베이스의 설정환경변수와 값보기(show variables) 7. 현재 데이터베이스에 연결된 프로세스들 보기(show processlist) 2008. 10. 10.
MYSQL index 칼럼 추가, 삭제하기 추가 ALTER TABLE `log` ADD INDEX(`reg_date`); 삭제 ALTER TABLE `log` DROP INDEX `reg_date`; 2008. 10. 10.
MYSQL 7일 기간 텀으로 쿼리 부르기 SELECT count(*) as num FROM table WHERE UNIX_FROM(signdate, '%Y-%m-%d') 2008. 10. 10.
MYSQL unix time을 date 형식으로 보기 쿼리 qry="select no,os,browser,ip, from_unixtime(`reg_date`,'%Y%m%d%H') as hh from weblog where ip='$ip' order by reg_date desc" 2008. 10. 10.
MYSQL DB 사용자 추가 mysql> insert into db values ('%','databaseName','Y','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO `user` ( `Host` , `User` , `password` , `Select_priv` , `Insert_priv` , `Update_priv` , `Delete_priv` , `Create_priv` , `Drop_priv` , `Reload_priv` , `Shutdown_priv` , `Process_priv` , `File_priv` , `Grant_priv` , `References_priv` , `Index.. 2008. 10. 10.
MYSQL root 패스워드 바꾸기 mysql> update user -> set password = password('testpass') -> where user = 'root' -> \g Query OK, 2 row affected (0.00 sec) mysql> 2008. 10. 10.
MYSQL group by 의 예 $query="SELECT ex_id, sum(0h) as 0h, sum(1h) as 1h, sum(2h) as 2h, sum(3h) as 3h, sum(4h) as 4h, sum(5h) as 5h, sum(6h) as 6h, sum(7h) as 7h, sum(8h) as 8h, sum(9h) as 9h, sum(10h) as 10h, sum(11h) as 11h, sum(12h) as 12h, sum(search_total) as search_total from log_backup where search_date>='$pre_date' and search_date 2008. 10. 9.
MYSQL 날짜와 시간별 데이타 뽑아내기 SELECT ex_no, from_unixtime(`reg_date`,'%Y%m%d%H') as hh, COUNT(ex_no) AS `cnt_reg_date` FROM expose_log Where from_unixtime(reg_date,'%Y%m%d%H') >= '04050406' AND from_unixtime(reg_date,'%Y%m%d%H') 2008. 10. 9.
MYSQL 백업과 복구 상세 설명 [MySQL 접속] mysql -hDB서버명 -uMySQL아이디 -pMySQL패스워드 데이타베이스명 [MySQL 백업하기] MySQL 명령어로 백업받기 : mysqldump -hDB서버명 -u유저명 -p패스워드 [백업할 테이터베이스명] > [외부로 저장할 파일명] ex) mysqldump -hdb1.guideline.co.kr -uDBuser -pPassword MyDB > MyDB.sql 특정 테이블만 백업 할 경우 : mysqldump -hDB서버명 -u유저명 -p패스워드 [테이타베이스명] [특정테이블명] > [외부로 저장할 파일명] ex) mysqldump -hdb1.guideline.co.kr -uDBuser -pPassword MyDB MyTable > MyDB_MyTable.sql [MySQL.. 2008. 10. 9.
MYSQL DB 원격 접속 1. db 테이블의 host란에 '%'로 표시, 아니면 특정 IP. 2. user 테이블의 host란에 '%'로 표시, 아니면 특정 IP. 2008. 10. 9.