본문 바로가기

MySQL

저장 프로시등 복원 할 때 주석 표시 하게 하기 주석등을 넣어 놓은 저장 프로시져는 유용하게 사용 된다. 그러나 DB 를 복원하고 보니 주석이 사라져 버린 경험이 있을 것이다. 이 글에서는 어떻게 하면 mysql 을 복원 햇을 때 저장프로시져와 함수, 이벤트 등에 주석이 남아 있게 할 수 있는 지를 알아 보도록 한다. 1. 백업을 잘 한다. - 백업 할 때 DB 의 스키마와 데이타만 백업 한다. mysqldump -u계정 -p비밀번호 특정DB명 > 저장할파일명.sql - 저장 프로시져와 함수, 이벤트를 별도의 파일로 백업 받는다. mysqldump -u계정 -p비밀번호 --routines --events --no-create-info --no-data --no-create-db --skip-opt 특정DB명 > 함수프로시져트리거.sql 2. 복원을 잘.. 더보기
리눅스에 mysql 설치 후 원격으로 로그인 안되는 문제 해결 mysql 을 리눅스 서버에 설치하고 원격의 클라이언트에서 툴을 이용해서 접근하려 하니 접속이 안되는 경우가 있다. 이때는 두가지를 의심해 봐야 한다. 첫째,리눅스의 방화벽이 3306 Port 의 접속을 허용하고 있는가 ? 둘째, mysql 계정이 원격지에서 로그인 할 수 있는가 ? 셋째, 그래도 안되면 ... I. 리눅스 방화벽 조정 하기 : iptables 를 사용하고 있다면 1. 리눅스 방화벽 확인 하기 iptables -L - 아래의 그림을 보면 ssh, ftp, http 에 대한 허용을 볼수 있을 뿐 어디에도 mysql 은 없는 것을 확인 할 수 있다. 2. 방화벽에 mysql Port 허용 하기 sudo vi /etc/sysconfig/iptables 3. 허용 하는 구문 추가하기 -A INP.. 더보기
mysql의 윈도우에서의 my.ini 파일 위치 탐색기를 이용해서 검색하면 쉽게 찾을 줄 알앗던 my.ini파일을 찾기가 쉽지 않앗다. 그런데 생각해 보니 윈도우에서 왜 그러게 무식하게 찾아야 하는지 고민하게 되었다. 1. my.ini 파일 찾기 - mysql에 접속해서 환경 설정 값을 읽어 찾아 본다. SHOW VARIABLES WHERE Variable_Name LIKE "%dir" 2. 결과 값 보기 - 아래 내용을 보면 mysql이 설치된 곳을 찾을 수 있다. - mysql 이 설치된 곳에 보면 my.ini 을 찾을 수 있다. 3. 왜 my.ini 파일을 찾아야 하나 ? - mysql의 주요 설정은 이 파일 안에 있다. - strict mode 를 변경할때 또는 event 를 활성화 할 때 이 파일을 설정 해 줘야 컴퓨터를 껏다 켜도 설정이 유.. 더보기
JOIN 을 이용한 다중 행 UPDATE와 DELETE 사용하기 UPDATE JOIN 을 이용한 다중행 업데이트 하기 다른 테이블을 기준으로 해서 데이블을 업데이트 할 때가 있다. 이럴 때 조인문을 이용해서 UPDATE 하게 되는데 아래와 같이 사용하면 된다. UPDATE [업데이트할 테이블명2] A INNER JOIN [테이블명-2] BON A.[조인할 컬럼명] = B.[조인할 컬럼명]SET A.[변경할 컬럼명] = 변경할값( WHERE 절 ) 예) UPDATE JOIN UPDATE Member AS A INNER JOIN Member_Data AS BON A.UserID= B.UserIDSET A.STATUS_CD = B.STATUS_CDWHERE B.STATUS_CD '300' DELETE FROM JOIN 다른 테이블의 값을 기초로 테이블의 값을 다중으로 삭제.. 더보기
MySQL Event 확인하기 -- 이벤트 목록 보기 SELECT * FROM information_schema.EVENTS 또는 SHOW EVENTS ; -- 등록 되어 있는 이벤트 내용 보기 SHOW CREATE EVENT `이벤트명` ; -- 등록되어 있는 이벤트 수정 하기 ALTER EVENT `이벤트명` ON SCHEDULE EVERY 1 MONTH STARTS '2014-05-27 01:00:00' ; -- 등록되어 있는 이벤트 삭제 하기 DROP event `이벤트명` ; 더보기
mysql 이벤트 스케쥴러 사용하기 정기적으로 무언가 DBMS에서 하고 싶은 경우가 있다. MS-SQL 은 MS-AGENT 가 있다. 그런데 mysql에서는 그런 기능을 없는 걸로 알고 있었다. 그런데 MySQL 5.16에서 Event Scheduler가 추가되어 이젠 MS-AGENT 가 부럽지 않다. 1. mysql 접속해서 환경변수 확인 - 리눅스에서 mysql에 접속한다. mysql -uroot -p - mysql 접속해서 환경 변수 조회 해 본다. show variables like 'event%' ; ※ event_scheduler 이 OFF 면 이벤트스케쥴러가 활성화 되어 있지 않다는 의미다. 이벤트를 만들어 놓아도 정해진 시간에 자동으로 실행되지 않는다. 2. 이벤트가 동작하게 설정 한다. SET GLOBAL event_sch.. 더보기
MySQL Fetch Cursor 문 사용방법 Mysql에서 커서(Fetch Cursor)를 사용할 때 아래와 같은 경고메세지를 얻는 경우가 있다. 1329: No data - zero rows fetched, selected, or processed무슨 이유인지 커서가 다 돌지를 않고 중간에 멈춘거 같은 것을 보고 역시 Mysql 은 믿을 수가 없어 그런 느낌을 갖기도 했지만 역시 믿을 수 없는 건 나의 실력이었다. Mysql 의 커서(Cursor)를 충분히 분석하고 기능을 알아보려 한다. 커서는 기본적으로 커서(Cursor)를 돌면 어떤 데이타를 처리하는 것이 목적이다. 간단한 예제 수준만 알아서 해결이 안되는 경우 아래의 내용을 검토해 보자. 1. Fetch Cursor 기본 구조 : 아주 기초적 구조다. 이해가 안되면 외어라. CREATE P.. 더보기
mysql 암호분실 시 윈도우 mysql 사용을 테스트용으로 사용하고 있다. 그런데 갑자기 root 계정이 로그인이 안된다. 머지..하다가 내가 바꾼거 같지는 않은데... 고민하다. 인터넷을 찾아 보니 관리자 암호 분실 시 재 설정하는 방법이 나와 있어 정리해 본다. 리눅스용도 있지만 내가 사용하는 윈도우 mysql 이라 아래와 같이 설정하고 암호 재설정했다. 1. mysql 서비스 중단 - 윈도우 서비스 관리자에서 mysql 서비스 중단해 준다. ※ 이단계가 가장 중요하다. 서비스 중단하지 않고 2단계 실행시 3단계실행이 안된다. 2. 승인 절차 거치지 않고 MySql 데몬 실행 하기 - 명령프롬프트를 열어 MySQL 이 설치된 디렉토리에서아래 명령어 실행 mysqld.exe --skip-grant ※ 명령프롬프트 멈춘것처럼.. 더보기
MySQL Prepared Statement Introduction to MySQL Prepared Statement http://www.mysqltutorial.org/mysql-prepared-statement.aspx http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html 사용 예시 1. 인자 받아 처리 하는 경우 2. 쿼리문 조합해서 실행하는 경우 더보기
mysql Process 보기 및 Kill 하기 1. mysql 프로세스 현황 보기 show processlist ; 2. 더보기