mysql 5.1.x 에서 innodb 사용하기

리눅스/MySQL|2015. 1. 16. 11:27
반응형

구버전에서 설치시 configure 옵션에 --with-innodb 라고 주었지만

5.1.x 버전에서는 아래와 같이 추가 후 컴파일 하면 됩니다.

 

--with-plugins=innobase

반응형

댓글()

[ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table '/tmp/#sql_3922_0.MYI'; try to repair it

리눅스/MySQL|2015. 1. 16. 11:27
반응형

mysql error 로그에 다음과 같은 에러가 반복적으로 나타날 경우에 대한 조치 방법입니다.

 

[에러]

110805 13:28:24 [ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table '/tmp/#sql_3922_0.MYI'; try to repair it
110805 13:30:16 [ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table '/tmp/#sql_3922_0.MYI'; try to repair it
110805 13:30:20 [ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table '/tmp/#sql_3922_1.MYI'; try to repair it
110805 13:30:29 [ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table '/tmp/#sql_3922_0.MYI'; try to repair it
110805 13:32:49 [ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table '/tmp/#sql_3922_0.MYI'; try to repair it
110805 13:32:56 [ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table '/tmp/#sql_3922_0.MYI'; try to repair it
110805 13:33:07 [ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table '/tmp/#sql_3922_0.MYI'; try to repair it
110805 13:33:47 [ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table '/tmp/#sql_3922_0.MYI'; try to repair it
110805 13:34:45 [ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table '/tmp/#sql_3922_0.MYI'; try to repair it

 

 

[해결] 

우선 파일이 임시로 저장되는 /tmp 폴더의 용량이 부족해서 위와 같은 에러가 발생 할 수 있습니다.

이런경우는 /tmp 파티션이 별도로 존재할 경우 그러한 경우가 많은데

아래 절차를 따라 해결이 가능합니다.

 

root@sysdocu:~# mkdir /home/tmp            // 용량이 넉넉한 파티션에 tmp 폴더를 생성하였습니다.

root@sysdocu:~chmod 1777 /home/tmp

root@sysdocu:~vi /etc/my.cnf

 tmpdir=/home/tmp 


root@sysdocu:~/etc/init.d/mysqld restart

 

 

[참고]

실상황에서 문제발생시 약 7G정도의 용량이 남은 /var/tmp 로 변경을 하였지만

같은 에러메세지가 발생하였고, /home/tmp 로 다시 변경하고 나서 문제가 해결되었습니다.

반응형

댓글()

ERROR 1153 (08S01) at line 1574: Got a packet bigger than 'max_allowed_packet' bytes

리눅스/MySQL|2015. 1. 16. 11:26
반응형

mysql DB 복구(import)시 아래와 같은 메세지가 출력된다면 설정을 조절하고 다시 시도해봅니다.

 

[에러]

ERROR 1153 (08S01) at line 1574: Got a packet bigger than 'max_allowed_packet' bytes

 

[해결]

mysql> SET GLOBAL max_allowed_packet=100000000;
mysql> SET GLOBAL net_buffer_length=100000000;

반응형

댓글()

mysql 로그인 후 시스템 명령 사용하기

리눅스/MySQL|2015. 1. 16. 11:26
반응형

예) mysql> system ls -al

 

위와같이 사용할 명령어 앞에 system 만 붙이면 됩니다.

반응형

댓글()

mysql 4.0 -> 5.1 이전 방법

리눅스/MySQL|2015. 1. 16. 11:26
반응형

MySQL 5.1 (euckr)로 이전하는것이라면 좀 쉽게 끝나는 경우가 있습니다.

 

우선 MySQL 4.0의 DB를 mysqldump 명령으로 덤프 받은후

그 파일을 vi 로 열어서 ' TYPE=MyISAM' 부분을 일괄 삭제하고 저장합니다.

그리고 MySQL 5.1 에 import 하면 끝납니다.

 

이 부분이 되지 않는 경우엔 아래 매뉴얼을 참고하여 진행하시면 됩니다.

 

실제 DB이전 경험을 토대로 작성하였지만 내용이 다소 어려울 수 있습니다.

추후 같은 작업시 제가 참고를 하고자 작성을 하는것이니

이전 작업중 일어나는 문제 해결에 대해서는 다른 매뉴얼을 참조하시기 바랍니다.

 

 

본 문서 습득 후 가능한 작업 두가지입니다.

1. MySQL 4.0 (euc_kr)    >    MySQL 5.1 (euckr)

2. MySQL 4.0 (euc_kr)    >    MySQL 5.1 (utf8)

 

euc_kr 에서 euckr 로 이전시 하단의 ++++++++ 표시 라인까지만 보시면 됩니다. ^^

> 이경우 문서에서는 구서버 데이타를 임시서버로 옮기게 되는데 임시서버를 신서버로 생각하시면 됩니다.

> utf8 로 이전시만 3대의 서버가 사용됩니다.

    (서버가 구서버와 신서버 이렇게 두 대라면, 신서버를 euckr 로 설치했다가 중간에 utf8로 다시 설치하시면 됩니다.)

 

 

구서버 (192.168.10.1)

MySQL 4.0.24 (euc_kr)

 

신서버 (192.168.10.2)

MySQL 5.1.52 (utf8)

 

임시서버 (192.168.10.3)

MySQL 5.1.52 (euckr)

  

작업했던 MySQL 버전은 위와 같습니다.

잘못알고 있는분도 계신데 4.0 이하 버전의 경우 정확히 말하면 euckr 이 아니고 euc_kr 입니다.

4.1 이상의 버전으로 업데이트 되면서 euckr 과 utf8 사용이 가능해졌습니다.

 

 

[진행순서]

아래 처럼 데이타를 dump 받아 임시서버로 이동합니다.

 

1. 구서버(115.68.10.1)에서
mysqldump --quote-names -p --all-databases > sysdocu.sql
rsync -avzPog sysdocu.sql root@192.168.10.3:/usr/local/src/

 

* --quote-names 옵션을 주는 이유는 테이블이나 컬럼이 MySQL 5.0 이상 버전에서

예약어로 사용되고 있을 경우 import 에러가 납니다. 이경우 ` 로 테이블이나 컬럼명을

감싸주게되면 MySQL 5.x 의 예약어일지라도 import 가능하게 됩니다.

이 옵션은 자동으로 ` 표시를 하여 dump 합니다.

 

 

2. 임시서버(192.168.10.3)에서
sysdocu.sql 을 vi 로 열고

CREATE DATABASE `mysql` 부분부터 376줄 삭제하고    // mysql DB를 삭제하는 부분입니다. 꼭 필요한 부분.
CREATE TABLE `keyword` 부분부터 5778줄 삭제    // keyword 테이블에서 계속 오류가 난다면 삭제 조치합니다.

                                                                                              추후에 rsync 명령으로 이 테이블만 이동 하도록 합니다.
 

위는 예입니다. CREATE DATABASE `mysql` 부분을 찾아서 해당 table 까지 없애줍니다.

그리고 아래 명령으로 import 를 하면 되는데, 혹시 오류가 나는 테이블이 있다면 위의 keyword 부분과 같이 삭제해줍니다.

MySQL 4.0 이하 버전과 MySQL 5.0.x 버전과 MySQL 5.1.x 이상 버전 컬럼 수가 모두 다르기 때문에

삭제를 하지 않을 경우 컬럼수가 맞지않아 import 가 되지 않습니다.

삭제 후 저장한 데이타를 아래명령으로 import 합니다.

 

mysql -p --default-character-set=euckr < sysdocu.sql

 

★그리고 계정 정보가 있는 구서버의 mysql DB와 임시서버의 mysql DB를 dump 받아

db 테이블, user 테이블의 컬럼 수를 조절하여 임시서버에 import 합니다.

(이 내용이 이해 안가시면 댓글 달아주세요. 자세히 작성해서 문서를 수정해 드리겠습니다. ^^)

 

★DB import 후 사이트에서 열었을때 웹소스 한글은 잘 보이나, DB내용만 깨지는 경우가 있습니다.

    euc_kr 에서 euckr 로 옮겼는데도요. IE에서 페이지 우클릭 > 인코딩을 utf-8 로 확인해보면 

    이번엔 웹소스 한글이 깨지고 DB에서 가져온 한글은 잘 출력이 됩니다.

    이럴때 해결책은 /etc/my.cnf 에 아래 두줄 추가 해주고 mysqld 재시작 해주세요. ^^


   default-character-set = euckr

   character-set-client-handshake = FALSE


 

3. 구서버(115.68.10.1)에서

위의 예와 같이 dump 파일을 수정하여도 import 가 잘 되지 않는 테이블이 있다면 수동으로 가져옵니다.

rsync -avzPog /usr/local/mysql/data/sysdocu/keyword.* root@192.168.10.3:/usr/local/mysql/data/sysdocu/

  

MySQL 4.0 (euc_kr) 에서 MySQL 5.1 (euckr) 로 데이타를 이전해 오는 것은 여기까지가 끝입니다. ^^

MySQL 5.1 (utf8) 로 이전하려고 한다면 계속해서 봐주세요.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

 

4. 임시서버(192.168.10.3)에서

데이타를 dump 받아 캐릭터셋 변경 작업을 진행합니다. 그리고 신서버로 데이타를 전송합니다.

 

mysqldump -p --default-character-set=euckr --all-databases > sysdocu_euckr.sql

iconv -c -f euckr -t utf8 sysdocu_euckr.sql > sysdocu_utf8.sql
vi sysdocu_utf8.sql    // 파일을 열어 euckr 이라는 부분을 utf8로 일괄 변경 합니다.

                                          일괄 처리 방법 (:%s/euckr/utf8/g)

rsync -avzPog sysdocu_utf8.sql root@192.168.10.2:/usr/local/src/

 

 

5. 신서버(192.168.10.2)에서

mysql -p --default-character-set=utf8 < sysdocu_utf8.sql

 

이렇게 작업은 끝이 납니다.

 

[중요]

사이트 테스트를 해보시고 혹시 웹소스(html 이나 php 등) 의 한글이 깨지게 된다면

1. 한글이 브라우저에서 잘 출력되기 위해 웹서버 설정파일(httpd.conf)에서  AddDefaultCharset utf-8 를 추가해줍니다.

2. 모든 웹소스의 인코딩을 일괄변경 처리합니다.

 

혹시 이 문서를 정독하신 분중에 MySQL 4.0 덤프파일을 가지고 iconv 를 이용해 utf8 변환을 하면 되지 않을까 생각하시는 분이

계실지 모르겠습니다.

제가 그렇게 해봤는데 잘 되지 않았습니다. ^^;

MySQL 4.0 (euc_kr) 에서 dump 받은 파일을 열어보면 캐릭터셋 지정하는 부분이 없었습니다.

MySQL 4.1 부터 dump 파일에 CHARSET=euckr 이런 부분이 생기기 때문입니다.

저부분을 CHARSET=utf8 로 수정을 해야 MySQL 5.1 (utf8) import 시에 테이블을 utf8형식으로 만들 수 있기 때문입니다.




--------------------

(질문)

★그리고 계정 정보가 있는 구서버의 mysql DB와 임시서버의 mysql DB를 dump 받아

db 테이블, user 테이블의 컬럼 수를 조절하여 임시서버에 import 합니다.

- 이 부분은 euc_kr에서 euckr 로 바꾸는 사람은 할 필요가 없는 부분인가요?? 이해가 안가서요...


(답변)

4.0 하고 5.1 의 db테이블, user테이블 컬럼수가 다릅니다.

실제로 두대의 서버에 각각 들어가 mysql 로그인을하고 use DB명 하신뒤,

desc db; 또는

desc user; 해보세요.

출력되는 라인이 틀립니다. (5.1버전이 더 많아요)


이럴경우 4.0에서 덤프받은 몇개 안되는 컬럼을 5.1에 넣게되면 컬럼수가 안맞는다고 오류메세지 나면서 insert가 되지 않기때문에

vi 에디터등을 이용해 수동으로 4.0 덤프파일의 컬럼수를 늘려주어야 합니다.


4.0의 DB 컬럼 갯수

INSERT INTO db VALUES ('%','sysdocu','sysdocu','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');


5.1의 DB 컬럼 갯수

INSERT INTO db VALUES ('%','sysdocu','sysdocu','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');


한눈에 보기에도 차이가 나요? 4.0에서 ,'Y','Y','Y','Y' 식으로 개수 맞춰서 더 추가해주어야 해요.

반응형

댓글()

MySQL 예약어

리눅스/MySQL|2015. 1. 16. 11:24
반응형
ADDALLALTER
ANALYZEANDAS
ASCASENSITIVEBEFORE
BETWEENBIGINTBINARY
BLOBBOTHBY
CALLCASCADECASE
CHANGECHARCHARACTER
CHECKCOLLATECOLUMN
CONDITIONCONNECTIONCONSTRAINT
CONTINUECONVERTCREATE
CROSSCURRENT_DATECURRENT_TIME
CURRENT_TIMESTAMPCURRENT_USERCURSOR
DATABASEDATABASESDAY_HOUR
DAY_MICROSECONDDAY_MINUTEDAY_SECOND
DECDECIMALDECLARE
DEFAULTDELAYEDDELETE
DESCDESCRIBEDETERMINISTIC
DISTINCTDISTINCTROWDIV
DOUBLEDROPDUAL
EACHELSEELSEIF
ENCLOSEDESCAPEDEXISTS
EXITEXPLAINFALSE
FETCHFLOATFLOAT4
FLOAT8FORFORCE
FOREIGNFROMFULLTEXT
GRANTGROUPHAVING
HIGH_PRIORITYHOUR_MICROSECONDHOUR_MINUTE
HOUR_SECONDIFIGNORE
ININDEXINFILE
INNERINOUTINSENSITIVE
INSERTINTINT1
INT2INT3INT4
INT8INTEGERINTERVAL
INTOISITERATE
JOINKEYKEYS
KILLLEADINGLEAVE
LEFTLIKELIMIT
LINESLOADLOCALTIME
LOCALTIMESTAMPLOCKLONG
LONGBLOBLONGTEXTLOOP
LOW_PRIORITYMATCHMEDIUMBLOB
MEDIUMINTMEDIUMTEXTMIDDLEINT
MINUTE_MICROSECONDMINUTE_SECONDMOD
MODIFIESNATURALNOT
NO_WRITE_TO_BINLOGNULLNUMERIC
ONOPTIMIZEOPTION
OPTIONALLYORORDER
OUTOUTEROUTFILE
PRECISIONPRIMARYPROCEDURE
PURGERAID0READ
READSREALREFERENCES
REGEXPRELEASERENAME
REPEATREPLACEREQUIRE
RESTRICTRETURNREVOKE
RIGHTRLIKESCHEMA
SCHEMASSECOND_MICROSECONDSELECT
SENSITIVESEPARATORSET
SHOWSMALLINTSONAME
SPATIALSPECIFICSQL
SQLEXCEPTIONSQLSTATESQLWARNING
SQL_BIG_RESULTSQL_CALC_FOUND_ROWSSQL_SMALL_RESULT
SSLSTARTINGSTRAIGHT_JOIN
TABLETERMINATEDTHEN
TINYBLOBTINYINTTINYTEXT
TOTRAILINGTRIGGER
TRUEUNDOUNION
UNIQUEUNLOCKUNSIGNED
UPDATEUSAGEUSE
USINGUTC_DATEUTC_TIME
UTC_TIMESTAMPVALUESVARBINARY
VARCHARVARCHARACTERVARYING
WHENWHEREWHILE
WITHWRITEX509
XORYEAR_MONTHZEROFILL

 

[출처] 듀시즌 (http://deuxism.tistory.com/2694564)

반응형

'리눅스 > MySQL' 카테고리의 다른 글

mysql 로그인 후 시스템 명령 사용하기  (0) 2015.01.16
mysql 4.0 -> 5.1 이전 방법  (0) 2015.01.16
MYSQL 4.0 -> 5.1 이전시 예약어 오류 해결  (0) 2015.01.16
MySQL 5.5.14 설치  (0) 2015.01.16
mysql-dml문 select문  (0) 2015.01.16

댓글()

MYSQL 4.0 -> 5.1 이전시 예약어 오류 해결

리눅스/MySQL|2015. 1. 16. 11:23
반응형
만약 예약어로 인해 MySQL 5.x 에서 복구가 되지 않을 경우
mysql 4.0 에서 dump 받아올때 --quote-names 옵션을 주어서 가지고 옵니다.
이는 예약어를 테이블 또는 필드로 사용하겠다는 뜻인데 ` 표시를 넣어주는 옵션입니다.
5.x 이상에서는 예약어를 사용할 수 없습니다.
 
[해결]
아래 옵션을 포함하여 DB를 다시 가져옵니다.
# mysqldump -p --quote-names --all-databases > all.sql
 


반응형

'리눅스 > MySQL' 카테고리의 다른 글

mysql 4.0 -> 5.1 이전 방법  (0) 2015.01.16
MySQL 예약어  (0) 2015.01.16
MySQL 5.5.14 설치  (0) 2015.01.16
mysql-dml문 select문  (0) 2015.01.16
[INS-20802] Oracle Net Configuration Assistant failed.  (0) 2015.01.16

댓글()

MySQL 5.5.14 설치

리눅스/MySQL|2015. 1. 16. 11:22
반응형

MySQL 5.5.x 버전은 기존 5.1 이하 버전의 설치 방법과 다릅니다.

MySQL 설치시 필요한 cmake 를 먼저 설치해야 합니다.

 

 

 1. cmake 설치

# cd /usr/local/src

# wget http://www.cmake.org/files/v2.8/cmake-2.8.5.tar.gz

# tar xvzf cmake-2.8.5.tar.gz

# cd cmake-2.8.5

# ./bootstrap

# make

# make install

  

 

2. 계정 생성

# groupadd -g 400 mysql
# useradd -u400 -g400 -d /usr/local/mysql -s /bin/false mysql

 

 

3. MySQL 설치

# cd ..

# wget ftp://ftp.sayclub.com/pub/mysql/Downloads/MySQL-5.5/mysql-5.5.14.tar.gz

# tar xvzf mysql-5.5.14.tar.gz

# cd mysql-5.5.14

# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306

# make

# make install

 

 

4. DB생성 및 기본 보안 설정

# cp -arp scripts/mysql_install_db /usr/local/mysql
# cd /usr/local/mysql

# rm -rf data

// data폴더를 지우는 이유는 기본폴더가 있긴한데 기본테이블이 없습니다.

    그대로 진행하시면 테이블이 없다며 mysql 이 구동되지 않습니다.

    때문에 data폴더를 삭제하고 아래 명령어로 재설치를 해줍니다.
# sh ./mysql_install_db

// 위 명령어로 data 폴더가 생성되지 않을 경우 아래 명령어로 생성해보세요.

    sh ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# chown -R mysql:mysql /usr/local/mysql
# chown -R mysql.mysql /usr/local/mysql/data
# cp support-files/my-huge.cnf /etc/my.cnf
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# chmod 700 /etc/init.d/mysqld
# chown root.root /etc/init.d/mysqld
# chkconfig --add mysqld
# chmod 711 /usr/local/mysql
# chmod 700 /usr/local/mysql/data
# chmod 751 /usr/local/mysql/bin
# chmod 750 /usr/local/mysql/bin/*
# chmod 755 /usr/local/mysql/bin/mysql
# chmod 755 /usr/local/mysql/bin/mysqldump

 

[참고]

euckr 로 설치를 원할 경우 옵션을 변경해줍니다.

-DDEFAULT_CHARSET=euckr -DDEFAULT_COLLATION=euckr_korean_ci

 

반응형

'리눅스 > MySQL' 카테고리의 다른 글

MySQL 예약어  (0) 2015.01.16
MYSQL 4.0 -> 5.1 이전시 예약어 오류 해결  (0) 2015.01.16
mysql-dml문 select문  (0) 2015.01.16
[INS-20802] Oracle Net Configuration Assistant failed.  (0) 2015.01.16
오라클 10g 설치하기  (0) 2015.01.16

댓글()

mysql-dml문 select문

리눅스/MySQL|2015. 1. 16. 11:20
반응형

SELECT 문

 

1-1. 모든 컬럼 선택
SELECT 키워드에 “*”를 사용하여 모든 열을 조회 할 수 있다.
1-2. 특정 컬럼 선택
테이블의 특정 컬럼을 검색하고자 할 경우 Column이름을 “,”로 구분하여 명시함으로써 특정컬럼을 출력 할 수 있다.
출력 순서는 SELECT문 뒤에 기술한 Column 의 순서대로 출력 됨.
1-3. 열에 별칭 부여
질의의 결과를 출력할 때 사용자가 이해하기 쉽게 열에 이름을 부여 할 수 있다. 
-열 이름 AS 별칭
-열 이름  별칭
1-4. 중복행의 제거
특별히 명시 되지 않았다면 중복되는 행을 제거하지 않고 Query결과를 출력한다.
결과에서 중복되는 행을 제거하기 위해서는 SELECT 키워드 바로 뒤에 distinct를 기술한다.

 

 

1-4. 중복행(레코드)의 제거
DISTINCT라는 키워드는 항상 SELECT 바로 다음에 기술한다.
DISTINCT뒤에 나타나는 컬럼들은 모두 DISTINCT의 영향을 받는다
DISTINCT뒤에 여러 개의 컬럼을 기술하엿을 때 나타나는 행은 컬럼의 조합들이
중복되지 않게 나타난다.

 

 


1-5. 특정 레코드의 검색
일반적인 경우 테이블에 있는 모든 자료를 조회할 필요 없이 사용자가 원하는 자료를 조회하는 경우 WHERE절을 사용하여 조회한다
-조건은 아래의 것으로 구성된다.
비교연산자,SQL연산자,논리 연산자등 비교연산자에는

= ,> ,>=, < , <=, <>(!=) 등이 있고

SQL 연산자에는 BETWEEN a AND b,  IN ,LIKE,IS NULL 등이 잇고
논리 연산자에는 AND , OR,  NOT 이 있다.
mysql>SELECT empno 사번, ename 성명  

      FROM   emp      

  WHERE  deptno = 10; 


BETWEEN연산자
  두 값의 범위에 해당하는 행을 출력하기 위해 사용한다.
  BETWEEN연산자는  컬럼 >= 값 AND 컬럼 <= 값과 같은 의미이다.
mysql>  SELECT empno, ename    

       FROM  emp        

   WHERE  sal BETWEEN  3000 AND 5000 ; -->

급여가 3000에서 5000사이인 사원만 보여줍니다.  

    EMPNO ENAME  

  ---------- ------      

 7788 SCOTT       7839 KING       7902 FORD   3 개의 행이 선택되었습니다. 


IN(NOT IN)연산자
  목록에 있는 값에 대해서 출력하기 위해  IN연산자를 사용한다.
  IN 연산자는 OR로 연결된 논리연산자의 결합과 같다. 
mysql> SELECT empno, ename     

     FROM  emp      

    WHERE  empno IN (7900, 7934) ; -->

 사번이 7900, 7934번인 사원의 사번과 성명 출력   

  EMPNO    ENAME 

 --------- -------------      

7934      MILLER      7900      JAMES 2 개의 행이 선택되었습니다. 

 

 


LIKE연산자
LIKE 'A%‘:컬럼이 'A'로 시작하는 데이터들만 검색됩니다.
LIKE '%A‘:컬럼이 'A'로 끝나는 테이터들만 검색됩니다.
LIKE '%KIM%‘:컬럼에 'KIM' 문자가 있는 데이터 들만 검색됩니다.
LIKE '%K%I%‘:컬럼에 'K' 문자와 'I'문자가 있는 데이터 들만 검색됩니다.
LIKE '_A%‘:컬럼에 'A'문자가 두 번째 위치한 데이터 들만 검색됩니다
mysql>SELECT empno, ename   
     
   FROM  emp       

       WHERE  UPPER(ename) like '%K%';

EMPNO ENAME

 ------- -----------  

  7698 BLAKE    7782 CLARK    7839 KING 


IS NULL(IS NOT NULL)연산자
NULL값은 값이 없거나 ,알 수 없거나,적용할 수 없다는 의미이므로 NULL값을
조회하고자 할 경우에 사용한다.
NULL은 이용할 수없고 할당되지 않고 알려져 잇지 않고 적용 불가능한 값을 의미한다.
NULL이란 0이나 공백(SPACE)와 다르다.
NULL값을 포함한 산술 표현식 결과는 NULL이다.
컬럼에 데이터 값이 없으면 그 값 자체가 NULL이다.

 

 


1-6. ORDER BY절
질의 결과에 반환되는 행의 순서는 정의되지 않는다.
ORDER BY절은 행을 정렬하는 데 사용한다. ORDER BY절을 사용하는 경우
SELECT문의 맨 뒤에 기술 되어야 한다. 
Order BY 컬럼 내지 표현식 [ASC|DESC] 
  -디폴트 정렬은 오름차순이다.
   숫자는 가장 적은 값이 먼저 출력 됨,날짜는 가장 빠른 값이 먼저 출력 됨
   문자는 알파벳 순서로 출력 됨
  -내림 차순으로 정렬하려면 ORDER BY절에서 열 이름 뒤에 DESC 키워드를 명시
   해야한다.
다중에 의한 정렬
  -하나 이상의 열로 질의 결과를 정렬할 수 있다.
  -주어진 테이블에 있는 컬럼 개수까지만 가능하다
  -ORDER BY절에서 열을 명시하고, 열 이름은 콤마(,)로 구분한다,
  -SELECT절에 포함되지 않는 열로 정렬 할 수도 잇다.



1-7. LIMIT 절
질의 결과에서 특정행 부터 특정 개수를 가져오기 위한 구문
반드시 질의문 맨 끝에 기술한다.
행은 0부터 인덱스가 시작된다
표기 방법은 LIMIT 시작행,행의 개수
시작행 생략시 첫번째 행부터 결과를 가져온다.
mysql>SELECT empno, ename         FROM  emp         WHERE  UPPER(ename) like '%K%’ LIMIT 2,3; 
3번째 행부터 시작해서 3개의 레코드를 가져오는 질의문
1-8. GROUP BY
 GROUP BY절에 의해 행을 그룹화 할 수 있다.
 SELECT절에 GROUP 함수와 Column이 같이 기술되면 반드시 group by절이 기술
 되어야 한다.
그러나  select절에 group함수만 기술되고 column은 기술되지 않으면 반드시
Group 절을 기술할 필요는 없다



1-8. GROUP BY
#GROUP 함수
COUNT(*): 테이블의 전체  레코드 갯수를 가져온다
예) SELECT COUNT(*) FROM 테이블명
AVG(컬럼명): 해당 컬럼의  전체 평균값을  구한다.
예) SELECT AVG(컬럼명) FROM 테이블명
MAX(컬럼명): 해당 컬럼의 가장 큰 값을 구한다.
예) SELECT MAX(컬럼명) FROM 테이블명
MIN(컬럼명): 해당 컬럼의 가장 작은 값을 구한다
예) SELECT MIN(컬럼명) FROM 테이블명

 

1-8. GROUP BY
GROUP BY는 ORDER BY전에 기술해야 한다.
그룹에 대한 조건은 HAVING절에서 기술해야 한다.
Group by 구문:
GROUP BY 행을 그룹화 하기위한 기준이 될 Column을 기술
[HAVING 그룹에 대한 조건]

2. SELECT문-조인문
하나 이상의 테이블로부터 자료를 검색하기 위해서 join을 사용한다.
일반적으로 primary key와 foreign key을 사용하여 join 하는 경우가 대부분이지만  때로는 논리적인 값들의 연관으로 join하는 경우도 있다.
2-1. INNER JOIN
   가장 자주 사용되는 조인문으로 테이블 간에 연결 조건을 모두 만족하는 행을 
   검색하는데 사용한다.
   검색시 검색되는 컬럼이 조인하는 테이블 모두에 존재한다면 반드시 컬럼명에
   테이블 이름을 “테이블명.컬러명” 의 형태로 기술해야 한다.

 

SELECT문-조인문
2-1. INNER JOIN
사용구문:   
     SELECT 컬럼명…..
     From 테이블명1 [INNER] JOIN 테이블명2 
     ON 조인 조건
#테이블에 별칭 부여
-테이블에 별칭을 부여하여 긴 테이블 명을 간단하게 사용한다.
-테이블 이름대신에 별칭을 사용한다.
-SQL코드를 적게 사용하여 코딩 시간이 절약되고 메모리를 보다 적게 사용한다.
-테이블 별칭은 30자까지 사용 가능하지만 짧을수록 좋다.

#여러 개의 테이블의 INNER JOIN
3개 이상의 테이블을 가지고 JOIN하는 경우 기본 개념은 2개의 테이블에서 출발한다.
즉 2개의 조인결과를 하나의 테이블로 보고 INNER JOIN문을 사용하면 된다.

 

SELECT문-조인문
2-2. OUTER JOIN
OUTER JOIN은 INNER JOIN과는 달리 두 테이블에 조인 조건이 정확히 일치 하지 않더라도 어느 한쪽 테이블에서 결과값을 모두 가져오는 JOIN문이다.
OUTER JOIN문을 사용할때는 반드시 OUTER 전에 데이터를 어느 쪽 테이블에서 
가져올지 즉 왼쪽인지(LEFT) 오른쪽인지(RIGHT) 아니면 양쪽 테이블(FULL)인지 
반드시 기술해야 한다.
LEFT OUTER JOIN
-JOIN문 왼쪽을 중심으로 왼쪽에 있는 테이블에서 데이터를 모두 가져온다.
RIGHT OUTER JOIN
-JOIN문 오른쪽을 중심으로 오른쪽에 있는 테이블에서 데이터를 모두 가져온다
FULL OUTER JOIN
-JOIN문 양쪽에 있는 모든 테이블에서 데이터를 모두 가져온다

 

 

[출처] 보는것은 다좋아 | 코자 (http://blog.naver.com/sjyoonmslee?Redirect=Log&logNo=70088087588)


반응형

댓글()

[INS-20802] Oracle Net Configuration Assistant failed.

리눅스/MySQL|2015. 1. 16. 11:20
반응형

오라클 설치시 아래와 같은 에러가 나타났다면

 

[INS-20802] Oracle Net Configuration Assistant failed.

 

/etc/hosts 파일에 현재 호스트 네임을 IP 로 등록해주면 됩니다.

 

[root@TEST oracle]#    // host 명을 기억 합니다. (TEST 로 되어있음)

 

/etc/hosts 내용

127.0.0.1       localhost.localdomain localhost
192.168.10.2    neulwon.com TEST    // host 를 서버IP에 추가하였습니다.

 

위 작업만 해도 되지만 혹시나!! 안될 경우에는 아래 방법으로도 한번 시도해보세요.

- /etc/sysconfig/network 에 gateway 를 등록

- /etc/resolv.conf 에 nameserver 168.126.63.1 및 서버 IP를 등록

반응형

'리눅스 > MySQL' 카테고리의 다른 글

MySQL 5.5.14 설치  (0) 2015.01.16
mysql-dml문 select문  (0) 2015.01.16
오라클 10g 설치하기  (0) 2015.01.16
MySQL과 SQLite 날짜 함수 비교  (0) 2015.01.16
Mysql 효과적으로 사용하기 [2]  (0) 2015.01.16

댓글()

오라클 10g 설치하기

리눅스/MySQL|2015. 1. 16. 11:19
반응형

< OS 환경 >
 - Asianux 
 - Oracle 10g 
 - VM ware 사용 

1. 오라클 설치를 위해 오라클 홈페이지에서 프로그램을 다운 받습니다. 
 : http://www.oracle.com/technology/software/products/database/oracle10g/
   Oracle Database 10g Release 1 (10.1.0.3) for Linux x86 

2. 압축을 해제 합니다. 
 : # zcat file_name  or # unzip file_name.zip or # tar xvfz file_name.tar.gz 

3. AsiaNux에서는 "오라 나비" 이라는 오라클을 특별한 변수 설정 없이 설정할 수 있게 하는 프로그램이 있다.
    만약, "오라나비"를 사용한다면, 앞으로를 잘 따라하게 되면.. 설치 될 것이다. 
    (여기서는 "오라나비" 사용이 아닌, 환경 설정, 유저 추가 등.. 오라나비를 이용하지 않을 경우를 설명한다.)

4. 오라클 설치 시에 사용될 사용자 및 그룹을 생성합니다. 
   # groupadd dba
   # groupadd oinstall
   # useradd -g oinstall -G dba oracle //초기화 그룹과 그룹을 지정하여 oracle 사용자를 추가한다. 
   # passwd oracle
   # mkdir -p /u01/app/oracle 
   # chown -R oracle.oinstall /u01
   # chmod -R 755 /u01/app/oracle
   ※ 오라클을 다른 경로에 설치하고자 하는 경우 위의 'u01'을 알맞은 경로로 바꾸고, 
        "오라클 사용자 환경 변수 설정" 부분에서 'ORACLE_BASE' 항목을 적절한 값을 변경하여 입력 하면 된다. 

 5. 커널 파라미터 수정 
  # vi /etc/sysctl.conf
### Oracle 10g Kernel Parameters 
 kernel.shmmax = 2147483648
 kernel.sem = 250 32000 100 128 
 fs.file-max = 65536 
(/etc/sysctl.conf 파일에 kernel.shmmax 값이 있다면 수정 또는 기존 행 주석 처리 후 입력함)

# /sbin/sysctl -p //수정한 파라미터 값을 커널에 적용

6. 오라클 사용자 환경 변수 설정 
 - $HOME/.bash_profile를 열어 하단에 오라클 설치 및 사용을 위한 설정을 입력한다. 

export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=ORCL
export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin 

7. 본격적인 오라클 설치를 위해 콘솔창에서 OUI를 띄운다. 
    만약 init 3환경에서 작업을 했다면, startx 후에.. 콘솔 창을 띄운 후 작업을 한다. 

 # sh runInstaller 

    만약, OUI의 글자가 깨어져서 보인다면 $unset LANG 을 실행 후 다시 띄운다. 

환영 메시지가 나타나면, 읽어보고.. 열심히... ^^:;

 

 

[출처] SSISO COMMUNITY (http://www.ssiso.net/cafe/club/club1/board1/content.php?board_code=oracle%7Corainstall&idx=7115&club=oracle&cp=1&cb=1&search=&search_word=)

반응형

댓글()