본문 바로가기

MySQL

mysql 덤프백업파일 복구 하기 mysql dump 파일 복구하기 ▶ dump로 백업된 파일을 복구하는 방법은 - shell 에서 실행한다. mysql -u user -p db_name < 파일명 ▶ 복구시 한글이 깨지는 경우 해결 방법 : --default-character-set 옵션 사용 - shell 에서 실행한다. mysql -u user -p --default-character-set=euckr db_name < 파일명 위와 같이 윈도우에서 shell을 사용해야 하는 이유는 GUI 툴에서 덤프 파일을 불러 올수 없기 때문임. 정확히 얘기하면 GUI 툴인 Toad나 sqllog등에서 덤프 파일 용량이 크기 때문에 읽어 들이지 못한다. 그래서 shell 화면에서 사용되야 한다. 더보기
MYSQL 에서 SHOW PROCESSLIST로 쓰레드 정보 보기 MYSQL 에서 SHOW PROCESSLIST를 이용하면 쓰레드 정보를 볼 수 있다. SUPER 권한이 있다면 모든 프로세스의 목록 정보를 볼 수 있고 그렇지 않다면 자신만의 쓰레드 정보만 볼 수 있다. mysqladmin processlist 명령과 동일하다. ▶ SHOW PROCESSLIST 와 SHOW FULL PROCESSLIST 비교 - SHOW PROCESSLIST는 100개만 보여준다. - SHOW FULL PROCESSLIST 을 사용하면 전체 프로세스를 볼 수 있다. ※ 보기 좋게 하기 위해 SHOW FULL PROCESSLIST에는 \G 를 사용 했다. ▶ -i 와 -r 옵션과 함께 사용하기 - 5초마다 한번씩 보여주기 : -i 옵션을 이용하면 몇초마다 한번씩 정기적으로 processl.. 더보기
MySQL 논리함수 ■ MySQL 논리함수 함수명 사용예 설명 IF() IF(test, value1, value2) test가 참이면 값1, 그렇지 않으면 값2 IFNULL() IFNULL(value, value2) value 가 NULL 이면 value2, 그렇지 않으면 value ISNULL() ISNULL(expr) expr이 NULL 이면 1, 그렇지 않으면 0 NULLIF() NULLIF(value1, value2) value1 = value2 NULL 반환 value1 != value2 value1 값 반환 CASE() CASE value WHEN '비교값1' THEN result1 WHEN '비교값2' THEN result2 END value를 비교값과 비교하여 result를 반환한다. ▷ IF(), IFNUL.. 더보기
MySQL SHOW 문을 이용해 각종 정보 보기 SHOW 명령어를 이용해 서버의 상태 정보나 데이타베이스, 컬럼, 테이블, 인덱스의 정보를 알아 볼수 있다. LIKE 문을 사용하면 필요한 것만 찾아 볼 수도 있다. ▶ 데이타베이스 정보 보기 SHOW databases ; ▶ 데이타베이스의 테이블 정보 보기 SHOW tables ; ▶ 테이블의 컬럼정보 보기 SHOW COLUMNS FORM 테이블명 ; 또는 DESC 테이블명 ; ▷ SHOW 명령어 사용 예 ▶ 특정 테이블의 INDEX 정보보기 SHOW INDEX FROM 테이블명 ; ▶ 테이블의 생성 정보 보기 SHOW TABLE STATUS ; ▷ 데이타베이스를 먼저 선택하고 show table status 명령어 실행 ▷ FROM 과 LIKE 를 사용해 TABLE STATUS 사용하는 방법 ※ 결과.. 더보기
MySQL 사용자 생성 후 권한 부여 및 권한취소 mysql 등 각종 DBMS 에서는 사용자 계정을 만들고 그 계정에 권한을 부여 하여 사용해야 한다. 물론 게으린 DBA는 root 계정이나 시스템 계정을 사용하기도 하나 이것은 절대로 권장하지 않는다. (한때 MS-SQL 에서 SA 계정에 암호를 넣지 않아 많은 문제가 있었다. )MS-SQL 등 상용 DBMS의 책들을 보면 사용자 계정생성과 권한부여 및 취소에 무척 많은 내용을 할당하고 있는 걸 보면 중요한 내용임에 틀림없다. 아래 내용을 통해 사용자 계정과 그 권한 부여 및 취소에 대해 알아 본다. ■ 사용자 생성 및 권한 부여 사용자 생성은 UPDATE 문으로도 할 수 있다. 그러나 GRANT 문을 사용하면 더 편리하다. GRANT [부여할 권한] ON [대상DB명] to [사용자명] identif.. 더보기
MySQL 슈퍼유저(root) 패스워드 변경 방법 MySQL 슈퍼유저(root) 패스워드 변경 방법 MySQL을 최초 설치할 때 root 계정에 대한 암호를 부여한다. 그 슈퍼유저(root)의 패스워드 변경 방법에 대해 알아 본다. 1. SET PASSWORD 사용하기 SET PASSWORD FOR root@localhost=PASSWORD('변경될비밀번호') ; ※ flush privileges ; 명령 사용하지 않아도 즉시 적용 된다. 2. UPDATE 문으로 user 테이블 수정하기 UPDATE user SET Password = PASSWORD('변경될비밀번호') WHERE user='root' ; FLUSH PRIVILEGES ; ※ UPDAT 문을 이용하는 경우 flush privileges ; 명령 사용해야 적용 된다. 더보기
mysql 쿼리 결과 수직으로 보기 일반적으로 mysql에 로그인 해서 쿼리를 실행 해 보면 컬럼의 수가 많으면 아래 위로 컬럼명이 보여 어떤 것이 어떤 데이타의 헤드값인지 알수가 없다. 이럴때 쿼리문의 결과를 수직(세로)으로 볼수 있으면 좋겠다는 생각을 할 수 있다. ▶ mysql -u아이디 -p 로 로그인 한 경우 : 쿼리 결과를 횡으로 볼 수 있다. - 이렇게 컬럼이 많으면 무슨 내용인지 좀처럼 알 수가 없다. ▶ mysql -E -u아이디 -p 로 로그인 한 경우 : 쿼리 결과 값을 수직(세로)으로 볼 수 있다. - 한결 보기 편하다. ▶ \G 옵션을 사용하면 쿼리의 결과를 수직로 행으로 구분해서 볼 수 있다. - SELECT * FROM user \G 와 같이 쓰면 된다. 마지막에 ; 대신 \G 가 들어 갔다. 더보기
MySQL 백업 및 복구하기 ▣ mysql 백업 4가지 방법 1. Data 디렉토리 백업 - Data 디렉토리를 정기적으로 백업하고 문제 발생했을 때 덮어쓰면 된다. 2. mysqldump 를 사용하는 방법 - 백업 시에 데이터베이스에 락을 걸수 없어 변경이 발생하면 다시 백업해야한다. 3. mysqlhotcopy 를 사용하는 방법 - mysql 백업 방법 중 속도가 바르며 DB 디렉토리를 다른 위치에 Copy 한다. - Myl 및 ARCHIVE 테이블만 Hotbackup을 지원 한다. ( innoDB 지원하지 않는다. ) 4. xtraback 을 사용하는 방법 - mysql 서버 중단하지 않고 InnoDB를 핫백업할 수 있다. - InnoDB Hot Backup은 핫백업을 지원하나 상용이나 xtraback 은 무료로 사용이 가능... 더보기
MySQL 날짜 시간의 형식화 MySQL DATE_FORMAT()과 TIME_FORMAT() 에서 사용하는 매개 변수 ■ 매개 변수 정리 표현 설명 예 %e 해당 달의 일 1 - 31 %d 두자리 숫자로된 해당 달의 일 01 - 31 %D 접미사가 포함된 일 1st ? 31st %W 요일명 Sunday - Saturday %a 축약된 요일명 Sun - Sat %c 달의 이름 1 - 12 %m 두자리숫자로 된 해당달의 이름 01 - 12 %M 달의 이름 January - December %b 축약된 달의 이름 Jan - Dec %Y 년도 2014 %y 년도 14 %l 시간 1 - 12 %h 두자리수로 된 시간 01 - 12 %k 24시 형식의 시 0 - 23 %H 두자리수로 된 24시 형식의 시 00 - 23 %i 분 00 - 59 %.. 더보기
MySQL 날짜 시간 함수 ■ MySQL 날짜 시간 함수 함수 사용법 결과 HOUR() HOUR(dt) dt의 시간 MINUTE() MINUTE(dt) dt의 분 SECOND() SECOND(dt) dt의 초 DAYNAME() DAYNAME(dt) dt의 날짜 이름 DAYOFMONTH() DAYOFMONTH(dt) dt의 숫자로 표시된 날 MONTHNAME() MONTHNAME(dt) dt의 달의 이름 MONTH() MONTH(dt) dt의 숫자로 표시된 달 YEAR() YEAR(dt) dt의 연도 CURDATE() CURDATE() 현재 년월일 CURTIME() CURTIME() 현재 시분초 NOW() NOW() 현재 년월일시분초 UNIX_TIMESTAMP() UNIX_TIMESTAMP() '1970-01-01 00:00:00'.. 더보기