디비 덤프 시 아래와 같은 오류가 있는경우 체크 할 사항 # 덤프 시 에러내용 root@web:/var/lib/mysql5# mysqldump -u root -p database> database.sql Enter password: mysqldump: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_QUOTE_SHOW_CREATE=1' at line 1 (1064) # 체크 할 사항 설치된 데이터베이스 서버와 클라이언트툴의 버전이 맞는지 체크한다. 서버의 경우 소스 컴파일하여 5.6.x를 설치하였지만 클라이언트툴은 rpm 으로 기본 설치된 5.0.x의 클라이언트툴이 PATH에 먼저 잡히면서 덤프 시 위와같은 오류가 있는 경우가 많다. 실제 설치한 경로에 있는 mysqldump 명령어를 활용하면 해결될 수 있따.
#####vi /etc/logrotate.d/mysql /var/lib/mysql5/db-slow.log {dailyrotate 7missingokpostrotate/opt/webapps/mysql5/bin/mysqladmin flush-logsendscript}################################################# #daily : 로그파일을 날짜별로 변환#rotate : 지정 갯수 이상되면 예전 log파일 삭제#missingok : 로그파일이 없더라도 오류를 발생시키지 않음#postrotate-endscript :사이에 들어있는 명령어 실행 ################################################# ####메일 스크립트#!/bin/bashYEAR=`date +%Y`MONTH=`date +%m`DAY=`date +%d`SUBJECT="$YEAR$MONTH$DAY DB 슬로우쿼리입니다"EMAIL="메일주소"EMAILMESSAGE="/var/lib/mysql5/db-slow.log-$YEAR$MONTH$DAY" /bin/mail -s "$SUBJECT" "$EMAIL" < $EMAILMESSA
# 업데이트UPDATE 데이터베이스명.테이블명 SET 변경될컬럼 ='변경될컬럼값' WHERE 변경할컬럼값='변경할컬럼값';
alter table 을 이용해서 기존의 생성된 테이블의 엔진(Heap, MyIsam, InnoDB...)을 변경하기 [테이블의 엔진 변경하기] 형식) ALTER TABLE [테이블명] ENGINE=[변경할 타입명] 형식) ALTER TABLE `tc_BlogStatistics` ENGINE = InnoDB 형식) ALTER TABLE `tc_BlogStatistics` ENGINE = MyIsam
# 큐브리드 에러 코드 error code = -81 # 큐브리드 버전 : 8.2.2 # 에러내용 Time: 05/12/10 19:43:18.316 - FATAL ERROR *** ERROR CODE = -81, Tran = 2, CLIENT = (unknown):(system)(-1), EID = 1 Internal error: logical log page 1121169 may be corrupted. *** The previous error message is the last one. *** 논리적인 문제로 페이지가 손상된 상황으로 보여짐 백업된 데이터를 확인하여 restoredb로 복구가 가능함 복구시 메세지 시간을 파악하고 -d 옵션으로 안정된 시간으로 복구하면 된다. 데이터는 손실될 수 있으니 먼저 백업받으면 좋음 # 명령어 예 cubrid restoredb -d 05-11-2008:10:58:00 --level 0 -p 디비명
mysql 컴파일시 에러 error : checking for termcap functions library... configure: error: No curses/termcap library found (termcap 라이브러리를 찾을수 없어서 에러가 발생) * libtermcap 라이브러리는 libtermcap-devel 패키지에 포함되어 있다. termcap , libtermcap, libtermcap-devel이 설치되어 있는지 확인한다. 없는 패키지를 설치하고 컴파일한다.
// mysql root password 등록 [root@linux mysql]# mysql -u root -p mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 1 to server version: 4.0.23-Max Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql> update user set password=password('비밀번호입력') where user='root'; Query OK, 2 rows affected (0.00 sec) Rows matched: 2 Changed: 2 Warnings: 0 mysql> flush privileges; <== mysql 재시동 Query OK, 0 rows affected (0.00
# MySQL 종료 명령어 mysqladmin -uroot -p shutdown 다음mysqld_safe # MYSQL 재시작 명령어 mysql-dir/bin/mysqld_safe &
mysql 루트 암호를 잊어 버렸을때 재설정 하기 ① mysql 데몬을 죽인다. ② 권한을 무시하도록하는 옵션을 줘서 mysql 데몬을 다시 실행 # safe_mysqld --skip-grant-tables & ③ mysql 서버에 접속 (암호 없이 접속이 가능) # mysql -u root ④ update 로 mysql 패스워드 변경 mysql> update user set password=password('새로운 비밀번호') where user='root';
# ================================================================================ # key_buffer : # 인덱스를 위한 버퍼크기, 키 버퍼의 크기는 공유된쓰레드의 크기이며 중복된 키를 자주 # 사용할 경우 속도를 높일 수 있고, 기준은 show status 명령을 했을 때 # Key_blocks_used를 체크해서 key_buffer 사이즈를 줄이던가 늘리던가 해야 한다. # 일반적인 key_buffer 의 크기는 Key_blocks_used*1024 로 잡으면 된다. # Key_reads 가 크다면, key_buffer_size 변수가 너무 작은 것이다. # 대용량 테이블일 경우 쿼리가 느리다면, 인덱스 버퍼 크기가 작아서 느릴 수 있으므로 # key_buffer 크기를 늘려 주어야 한다. # show status 명령에서 다음과 같이 계산되는 것이 key_buffer 설정이 적당한 것이다. # Key_reads/Key_read_request < 0.01 [ 0.00112318293327 ] # key_write/key_write_request = 1 [ 0.07631015
1. TABLE 생성 CREATE TABLE mytable ( no INTEGER NOT NULL, name CHAR(15) NULL ); 2. PRIMARY KEY 생성 ALTER TALBE mytable ADD ( PRIMARY KEY (no)); 3. FOREIGN KEY 생성 ALTER TABLE mytable ADD( FOREIGN KEY (no) REFERENCES name ); 4. PK RENAME ALTER INDEX SYS_C00555 RENAME TO PK_no; 5. FOREIGN KEY 는 물려있는 글중에 상위글이 지워지면 하위글도 지워지는 쿼리 ON DELETE CASCADE 추가. 미 추가시 삭제할때 에러발생 ALTER TABLE mytable ADD( FOREIGN KEY (no) REFERENCES mytable on delete cascade );
큐브리드 loaddb할 때 순서(이 순서대로 할때 좋음) 스키마 -> 데이터 -> 인덱스 # loaddb 명령어cubrid loaddb -u dba -v -s "스키마" "데이터베이스명"cubrid loaddb -u dba -p "비번" -v -c 5000 -d "데이터" "데이터베이스명"cubrid loaddb -u dba -p "비번" -v -i "인덱스" "데이터베이스명"