반응형

안녕하세요 가야태자 @talkit 입니다. 

최근에 postgreSQL을 설치할일이 있어서 참고한 블로그들을 간단하게 정리 해봅니다. 

[DB] postgreSql Centos7에 설치 및 설정하기 :: hyeoneee's blog (tistory.com)

 

[DB] postgreSql Centos7에 설치 및 설정하기

postgresql을 Centos7에 설치해보겠당 근데 서버가 yum이나 library를 인터넷에서 받아오는 환경이 아니어서 tar 파일을 postgresql에서 받아주었다. https://www.postgresql.org/ftp/source/v12.0/ PostgreSQL: File Browser www.

hyeonyeee.tistory.com

설치 문서는 위 글을 참고 했습니다. 

wget https://ftp.postgresql.org/pub/source/v12.5/postgresql-12.5.tar.gz

저도 위 글을 저자 분과 비슷하게 계정에 설치 할일이 있어서 거의 그대로 따라 했습니다. 

단, wget로 받은 프로그램은 위 주소를 사용했습니다. 

https://devlog.jwgo.kr/2018/05/25/getting-start-postgres/#:~:text=%EC%82%AC%EC%9A%A9%EC%9E%90%20%EC%83%9D%EC%84%B1%20psql%20%EC%A0%91%EC%86%8D%20%ED%9B%84%20%EC%8B%A4%ED%96%89%20create%20user,%EC%82%AC%EC%9A%A9%EC%9E%90%EB%AA%85%20with%20superuser%3B%20alter%20user%20%EC%82%AC%EC%9A%A9%EC%9E%90%EB%AA%85%20with%20createrole%3B

 

postgresql을 처음 시작할 때 필요한 간단 명령어 · Tonic

사이트 운영에 도움을 주실 수 있습니다. 고맙습니다. --> postgresql을 처음 시작할 때 필요한 간단 명령어 2018년 05월 25일 초기 설정 postgresql 위치 확인 이 명령으로 경로가 나오지 않으면 여기를

devlog.jwgo.kr

설치후에 실행해야할(?) 몇가지 문제는 위 문서를 따라서 해결 했습니다. 

https://sujinisacat.tistory.com/9

위 문서에서는 postgreSQL과 개발 PC가 서로 달라서 원격에서 접속 할 수 있도록 위 문서를 따라서 수행을 했습니다. 

디비버로 서버 외부에서 접속이 되도록 해 놓은 상태 입니다. 

여러분들도 따라하시면 충분히 하실 수 있을 것으로 생각 됩니다. 

그리고, 혹시나 안되시는 부분이 있으면, 댓글 남겨 주시면 도와 드리겠습니다.

감사합니다. 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. 

오늘 제가 앞으로 설치하려는 프로그램 때문에 데이터베이스가 필요해서 우분투 리눅스에 데이터베이스를 설치해보겠습니다. 

우선 당연히 우분투 리눅스에 접속 합니다. ^^

잘 접속 하셨다고 생각하고 깔아 보도록 하겠습니다. ^^

sudo apt update

우선 최신 업데이트가 있는지 확인 합니다. 

보통은 비밀번호를 한번 넣어 줘야 하지만 ^^

저희는 비밀번호를 넣지 않아도 되네요 ^^

sudo apt install mysql-server

업데이트가 끝나면 위 명령어를 입력하시면 됩니다. 

sudo apt install mysql-server
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libcgi-fast-perl libcgi-pm-perl libclone-perl libencode-locale-perl libevent-pthreads-2.1-7 libfcgi-bin libfcgi-perl libfcgi0ldbl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl liblwp-mediatypes-perl libmecab2 libprotobuf-lite23 libtimedate-perl liburi-perl mecab-ipadic mecab-ipadic-utf8
  mecab-utils mysql-client-8.0 mysql-client-core-8.0 mysql-common mysql-server-8.0 mysql-server-core-8.0
Suggested packages:
  libdata-dump-perl libipc-sharedcache-perl libbusiness-isbn-perl libwww-perl mailx tinyca
The following NEW packages will be installed:
  libcgi-fast-perl libcgi-pm-perl libclone-perl libencode-locale-perl libevent-pthreads-2.1-7 libfcgi-bin libfcgi-perl libfcgi0ldbl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl liblwp-mediatypes-perl libmecab2 libprotobuf-lite23 libtimedate-perl liburi-perl mecab-ipadic mecab-ipadic-utf8
  mecab-utils mysql-client-8.0 mysql-client-core-8.0 mysql-common mysql-server mysql-server-8.0 mysql-server-core-8.0
0 upgraded, 28 newly installed, 0 to remove and 20 not upgraded.
Need to get 29.4 MB of archives.
After this operation, 242 MB of additional disk space will be used.
Do you want to continue? [Y/n]

그러면 계속 할꺼냐고 묻는데 ^^ 다연히 Y를 입력 합니다. 

정말 간단하네요 ^^

쭉 설치가 이루어지고, 중간에 커널관련된 메시지가 떴는데 캡쳐를 못해서 ^^ OK 두번 눌러 주시면 됩니다. 

mysql client 까지 잘 설치 되었습니다. 

sudo mysql_secure_installation

보안 설정과 root 비밀번호 설정을 위해서 위 프로그램을 실행해 줍니다. 

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: Y

보안 때문에 비밀번호를 넣는게 좋다 넣겠느냐? 당연히 Y를 누르셔야 합니다. ^^

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:

정책적으로 쉬운 비밀번호를 쓸꺼냐 어려운 비밀번호를 쓸꺼냐? 물으면 일단 어려운 비밀번호를 선택해야겠지요 ^^ 하지만, 비밀번호 만들기 규칙이 좀 쉬워야 하니까 다른 방법으로 보안을 신경 써줘야 해서 여기서는 MEDIUM 중간정도를 선택 하겠습니다. ^^

그래서 여기는 1을 넣습니다. 

Please set the password for root here.

New password:

요렇게 나오면 비밀번호를 대소문자를 넣으시고, 특수문자를 썩어서 8자리 이상의 비밀번호를 만드시면 됩니다. 

저는 매일 사용하는 비밀번호가 있어서 넣었습니다. 

Estimated strength of the password: 50
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) :

그랬더니 니가 제공한 비밀번호는 50점 정도 되는데 그래도 쓸래 라고 합니다. 저는 Y를 눌러야지요 ^^

 ... Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.

New password:

저 처럼 위와 같이 오류가 나면 해당 쉘을 종료 하십시오 ^^

그리고 다른 방법으로 비밀번호를 변경 합니다. ^^

sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '원하는비밀번호';

여기서 원하는 비밀번호는 아까 만든신 비밀번호 규칙을 잘 따르셔야 합니다. ^^

sudo mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.31-0ubuntu0.22.04.1 (Ubuntu)

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

자 이제 제가 원하는 대로 mysql 에 접속이 되네요 간단하게 한번 몇개 명령어만 더 내리고 오늘은 여기까지 글을 마무리 하겠습니다. ^^

show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

show databases; 명령어는 mysql에서 사용할 수 있는 데이터베이스 명을 출력해 줍니다. 

 use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

use 명령어는 사용하고자 하는 데이터베이스를  선택해 줍니다. 

 show tables;
+------------------------------------------------------+
| Tables_in_mysql                                      |
+------------------------------------------------------+
| columns_priv                                         |
| component                                            |
| db                                                   |
| default_roles                                        |
| engine_cost                                          |
| func                                                 |
| general_log                                          |
| global_grants                                        |
| gtid_executed                                        |
| help_category                                        |
| help_keyword                                         |
| help_relation                                        |
| help_topic                                           |
| innodb_index_stats                                   |
| innodb_table_stats                                   |
| password_history                                     |
| plugin                                               |
| procs_priv                                           |
| proxies_priv                                         |
| replication_asynchronous_connection_failover         |
| replication_asynchronous_connection_failover_managed |
| replication_group_configuration_version              |
| replication_group_member_actions                     |
| role_edges                                           |
| server_cost                                          |
| servers                                              |
| slave_master_info                                    |
| slave_relay_log_info                                 |
| slave_worker_info                                    |
| slow_log                                             |
| tables_priv                                          |
| time_zone                                            |
| time_zone_leap_second                                |
| time_zone_name                                       |
| time_zone_transition                                 |
| time_zone_transition_type                            |
| user                                                 |
+------------------------------------------------------+
37 rows in set (0.00 sec)

show tables 명령어는 데이터베이스 내에 있는 테이블들을 나열해 줍니다. 

정말 잘 설치 되었습니다. 

Tasks: 116 total,   1 running, 115 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.2 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :    964.1 total,     74.0 free,    571.1 used,    319.1 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.    231.9 avail Mem

아직 데이터를 넣지 않아서 그렇지만, ^^

CPU는 훌륭하네요 ^^ 1VPU이긴 하지만, 충분히 MySQL이 저혼자 쓸때는 잘 돌아 갑니다. ^^

그리고 메모리는 흑흑흑 실제로 운영을 해봐야겠지만 조금 모자랄 수도 있을 것 같습니다. ^^

감사합니다. 

반응형
반응형

요즘은 ORACLE 관련 글을 계속 적고 있네요.

요즘 사이트에서 사용하고 있는 DB가 ORACLE 이어서 그렇습니다. ^^

1. 오류 발생

오류가 아래와 같이 발생 하더라구요. 

SQL> drop index hr.JHIST_EMP_ID_ST_DATE_PK;
drop index hr.JHIST_EMP_ID_ST_DATE_PK
              *
ERROR at line 1:
ORA-02429: cannot drop index used for enforcement of unique/primary key

2. 오류와 관련 된 테이블 확인 하기 

SQL> column constraint_name format a30;
SQL> select constraint_name from all_constraints where index_owner = 'HR' and index_name = 'JHIST_EMP_ID_ST_DATE_PK';

CONSTRAINT_NAME
------------------------------
JHIST_EMP_ID_ST_DATE_PK

3. Drop Constraint

인덱스를 지우기 전에 Constraint를 먼저 수정 해야 합니다. 

SQL> alter table hr.job_history drop constraint JHIST_EMP_ID_ST_DATE_PK;

Table altered.

4. Drop index

이제 인데스를 지웁니다. 

SQL> drop index hr.JHIST_EMP_ID_ST_DATE_PK;

Index dropped.

오류 없이 잘 지워 집니다. 

잊어 버리지 않으려고 한글로 번역해서 ^^

감사합니다.

원본 출처 : How to Resolve ORA-02429: cannot drop index used for enforcement of unique/primary key - Ed Chen Logic

반응형
반응형

이 쿼리는 가끔 쓸일이 있는데 매번 잊어 버리는 것 같습니다. T.T

GRANT SELECT, DELETE, INSERT, UPDATE ON TARGET_TABLE TO TARGET_USER;

 

권한 주기 명령어는 일단 GRANT 입니다. 

그리고 권한의 내용으로 더 많이 있지만, 기본적으로 데이터 베이스 사용자가 가져야할 권한을 SELECT DELETE INSERT UPDATE가 되겠지요 ^^

TARGET_TABLE은 어느 테이블에 줄 것인가?

TARGET_USER 는 어느 사용자에게 줄 것인가?

입니다. 

문장을 잘 변경해서 사용함시면 되겠습니다. 

감사합니다. 

 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다.

매번 할때마다 잊어버리는 쿼리네요 t.t

 INSERT INTO target_table (col1, col2, col3) SELECT col1, col2, col3 FROM source_table WHERE condition;

위와 같이 하면 되납니다. ^^

SOURCE_TABLE 이 가져올 테이블이고 , TARGT_TABLE 넣을 테이블 입니다.

COL1, COL2, COL3 는 원하는 컬럼을 넣으시면 됩니다.

테이블을 통째로 이동 시키고 싶으시면, WHERE 절은 빼시면 됩니다.

필요한 내용만 가져올 때는 WHERE 절에 원하는 검색식을 넣으시면 됩니다.

감사합니다.

반응형
반응형

오늘은 개발하다가 Oracle 페이징을 어떻게 했지를 잃어 버려서 ^^ 최근에는 MySQL만 계속 사용해서 Limit의 편안함은 ^^ 얼마나 좋은지 모릅니다.

저는 답만 알면 되어서 일단

옛날에는 Rownum 등을 이용해서 뭔가를 많이 해줬던 것 같은데, 프로젝트에서 다른 분들이 해놓은 쿼리를 찾아 보니 ^^

OFFSET 시작카운터-1 ROW FETCH FIRST 원하는줄수 ROWS ONLY

라고 되어 있는 것을 발견 했습니다.

실제로는

OFFET 0 ROW FETCH FIRST 20 ROWS ONLY

였습니다.

그래서 저는 눈치로 필요한 쿼리를 작성 했습니다.

SELECT A,B,C,D FROM TB_TESTPAGE ORDER BY A DESC OFFSET 0 ROW FETCH FIRST 20 ROWS ONLY

처럼 작성 했습니다.

그런데, 조금 상세한 내용이 궁금해서 찾아 봤습니다.

https://programmer93.tistory.com/4

예전 방식의 쿼리 입니다.

https://action713.tistory.com/entry/Oracle-FETCH-%EA%B5%AC%EB%AC%B8-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0

요즘 방식의 쿼리에 대한 설명입니다.

저는 구현만 하면 되어서 설명 보다는 어떻게 사용했는지를 적었습니다.

하지만, 다른 분들은 친절하게 설명해주셨으니 읽어 보시면 도움이 될 것 같습니다.

감사합니다.

반응형
반응형

글제 목이 너무 거창한데요. 


이것두 다음 팁에 답변을 단 내용입니다.


질문의 내용은 문헌정보학과를 다니는 학생분인데 가면 컴퓨터 과목을 어떤 것을 배우고 데이터베이스는 어렵나요 라는 질문이었습니다. ^^;;


제가 생각해도 답변을 너무 잘 단것 같아서 ㅋㅋㅋ


아래와 같이 달았습니다.



문헌정보학과에서 컴퓨터를 어떤 것을 배우는지는 저도 잘 모르겠습니다만,


데이터베이스는 어렵지 않습니다. ^^;;


그냥, 노트나 용돈 기입장을 생각하시면 됩니다.


저 내용을 컴퓨터로 옮긴다고 생각하고, 노트를 뒤져서 검색할 것을 컴퓨터로 검색을 한다고 생각하시면 됩니다.


좀더 깊이 들어가면 많은 개념을 더 아셔야 하지만,


INSERT 입력

SELECT 조회/출력

UPDATE 수정

DELETE 삭제


이 네개만 잘 쓰시면, 데이터베이스는 쉽습니다. ^^;;


아까 이야기 한대로 용돈 기입장에 용돈 쓴것을 기록 한다 INSERT


몇월 몇일날 썼던 용돈은 얼마인지 찾는다(SELECT)


어제 쓴 내용중에 틀린 부분이 있어서 수정한다.(UPDATE)


오늘 쓴 내용중에 세번째 줄을 지운다.(DELETE)


입니다. ^^;;


교수님께 설명을 잘 들으시면, 될것으로 생각 됩니다.


감사합니다.


여기까지가 답변 글이구요.


조금 더 이야기를 하면, 


데이터베이스는 자료를 다루는  기술과 그 자료를 저장하고 있는 저장소를 함게 이르는 말입니다.


그래서 우선 데이터베이스 서버로 많이 쓰이는 것이


Oracle - 상용입니다.


MySQL - 무료도 되고 상용도 됩니다.


MariaDB - 무료 이지만, 유료로 서비스를 받으실 수 있습니다. MySQL과 동일합니다.  ^^;; 심지어 서로 클라언트가 그대로 호환 됩니다. 


IBM DB2 - 상용입니다.


PostgreSQL - 무료도 되고 상용도 됩니다.


MSSQL - 상용입니다.


위 까지는 외국에서 만들어져 있는 것들이구요.


Cubrid 라는 국산 DB가 있습니다. 마찬가지로 무료와 유료 정책을 함께 가지고 있습니다.


다른 데이터베이스도 있겠지만, 제가 써본 녀석이라서 ^^;


즐거운 하루 되십시오.





반응형
반응형




이번에는 CUBRID를 사용하는 프로젝트에서 NULL 처리할  일이 있어서 적어 둡니다.


CUBRID 의 경우 


IFNULL 을 사용할 수 있습니다.


IFNULL(필드명 또는 값, NUL일때원하는표현)


IFNULL(sample, 0)


sample 이라는 필드가 NULL이면 0으로 표현 입니다.


그리고 또한가지 


COALESCE(필드명 또는 값, NULL일때원하는표현)


COALESCE(sample,0)


IFNULL과 동일한 기능입니다.


그리고 CUBRID 외에 다른 데이터 베이스들은 


MySQL 

ifnull(필드,처리할 값)


Oralce
NVL(필드,처리할 값)


MSSQL

ISNULL(필드,처리할 값)

MySQL과 Oracle MSSQL에서 각각 NULL처리를 담당하는 함수들입니다.

전 주로 오라클을 써서 NVL로 알았는데요

다 다르네용 T.T


반응형
반응형




오늘 개발을 하다가 MySQL에서 Blob 값이 insert 되지 않는다는 것이었습니다.


그래서 구글링을 했구요 ^^;;


CAST 함수를 통해서 해결 할 수 있었습니다.


CAST(변수명 as 타입형태 )


요렇게 쓰시는 함수 입니다.


예를 들어서 숫자를 문자로 변환 하려면


처음에 제가 이렇게 했습니다.


CAST(1000 as varchar(10))


이렇게 했더니 ^^;;


오류가 났습니다.


varchar 형은 타입으로 올수가 없습니다. ^^;;


저것을 고친 것은 


CAST(1000 as char(10))


으로 사용하시면 됩니다.


여러분들이 저같은 실수를 하지 않기를 바랍니다.


좀 더 자세한 설명은 아래 URL을 이용해 주십시오.


https://dev.mysql.com/doc/refman/5.0/en/cast-functions.html#function_cast


감사합니다.


반응형
반응형
오늘도 한 3시간 삽질을 했습니다.

프로그램을 한본 짰는데....

목록 프로그램인데

목록에 DATA가 안나오는 겁니다. ^^;;

T.T

분명히 smartSQL plus에서

DATA를 입력 했는데 말이죠

그런데 한 2시간쯤 뒤에

밑에 직원이

과장님 테이블 만들어 주세요

그리고, 값두 좀 넣어 주세요

라고 이야기를 했는데


그래서 제가 한것 하고 똑같이

값을 넣었습니다. ^^;;


그쪽에서도 안나온다는 것이 아니겠어요

혹시나 해서

smartSQL plus에서

SQL 창하나 더 열고

Commit;



이제 보인다는 겁니다.

혹시나 해서 제 목록 프로그램으로 갔습니다.



보이는 겁니다.


T.T

맨날 MySQL에 Informix만 다루다가

오랫만에 오라클을 다뤘더니

Commit

잊지 말자 Commit




반응형

'DATABASE > ORACLE' 카테고리의 다른 글

[ORACLE] 문자열 길이를 구해보자 LENGTH  (0) 2016.12.07
[ORACLE] 문자열을 잘라보자 SUBSTR  (0) 2016.12.06
[ORACLE] LPAD 함수  (2) 2009.07.24
[ORACLE] RPAD 함수  (0) 2009.05.24
[ORACLE] 트리구조 만들기  (0) 2009.05.23
반응형
1호점에서 가져왔습니다.

우선 APM 설치에 관한 이야기는 인터넷 상에 너무나 많이 나와 있음으로 여기서는 다루지 않음을 밝혀 둔다

우선 APM 즉 Apache PHP MySQL을 운영하고자하는 두대의 서버에 모두 설치한다.

DB 서버를 사용하고자 하는 곳을 정하고 DNS를 설정한다.

웹서비스를 하고자 하는 서버를

www.yourdomain.com 과 yourdomain.com

을 할당하고

DB 서버로 사용하고자하는 서버를

db.yourdomain.com 을 할당한다.

내가 APM을 두대다 설치하라고 한 이유는 간단하다.

우선 한대는 MySQL 서버를 운영할 필요가 없지만 MySQL의 라이버러리와 클라이언트가 필요하다

그리고, 한대는 Apache + PHP가 필요 없지만

요즘 내가 mysql 클라이언트로 MySQL을 운영할 자신이 없기 때문이다.

그래서 phpMyAdmin을 설치하기 위해서는 APM 환경이 돌아가야한다.

그래서 운영하고자 하는서버 두대 모두 APM을 설치하라고 한 것이다.

그럼 설치는 끝났다고 생각하겠다.

그리고, Apache(http) 데몬과 MySQL 데모인 각각의 서버에 제대로 떠 있다고 생각하겠다.

그럼 아까 말한대로 phpMyAdmin을 db.yourdomain.com 서버에

http://www.phpmyadmin.net/

를 방문해서 다운 최신 버전으로 받은 후 설치해라.

설치라고 해야 간단하다.

우선 압축 파일을 받아서

계정에 올리고 웹서비스를 할 수 있는 곳의 root로 옮기고

tar xzvfp phpMyAdmin.version.tar.gz

이렇게하면 풀리는 모습이 보이면서 압축이 풀릴 것이다.

그리고

mv phpMyAdmin.version phpMyAdmin

해서 디렉토리 명을 원하는대로 변경한다.

나는 프로젝트 자체를 존중하기 때문에 프로젝트 명을 디렉토리명으로 쓴다. 버전 까지 쓰고 싶지만 웹에서 접근할때 좀 힘들어서 ^^;;

cd phpMyAdmin

vi config.inc.php

최근 버전 부터 아래 옵션이 생겼다.

$cfgPmaAbsoluteUri = ' http://db.yourdomain.com/yourdir/phpMyAdmin/';

(yourdir)은 없다면 적지 않아도 된다.

그러니깐 이 옵션은 phpMyAdmin을 서비스할 완벽한 URL을 적어 두는 곳이다.

죽 내려보면

$cfgServers[$i]['host'] = 'localhost'; // MySQL hostname


$cfgServers[$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)?

여기서 잠깐 auth_type은 원래 config라고 되어 있다 MySQL 자체의 인증을 사용하기 위해서 나는 http를 선택했다.


$cfgServers[$i]['user'] = 'youruser'; // MySQL user
$cfgServers[$i]['password'] = 'yourpass'; // MySQL password (only needed

위와 같은 옵션들이 존재할 것이다.

저것을 여러분들에게 맞게 변경해라.

그리고 저장하고 vi를 닫아라.

저장했으면 이제 웹브라우져에서

http://db.yourdomian.com/phpMyAdmin/

에 접근해 보자

그러면 ID와 PW를 묻는다.

이때 root 아이디와 PW를 넣고 접근한다.

지금 부터 우리는 계정을 생성할 것이기 때문이다.

phpMyAdmin에 접근 했으면

이제 mysql 데이타 베이스에 접근 해라.

그리고 user 테이블로 이동한다.

그리고 추가 버튼을 누른다.

Host 에 www.yourdomain.com 의 아이피를 적어라

IP주소는 nslookup www.yourdomain.com

이라고 하면 알 수 있다.

그리고 userid에 당신이 원하는 아이이들 적고

password에 함수를 선택한다 PASSWORD 함수를 선택하고 옆에 빈칸에 자신이 원하는 비밀번호를 적는다.

그리고, 보통은 아래의 모든 값을 N으로 하고 db를 설정하는 것이 좋다

하지만, 나는 원격 root 성격의 아이디를 만들겠다.

그래서 아래의 값들을 모두 Y를 선택하기를 원한다.

그럼 모두 선택했으면 실행 버튼을 눌러서

아이디를 생성한다.

이대로 두면 MySQL은 방금 생성한 아이디를 제대로 인식하지 못한다.

그래서 셀렉트 바에서 - 를 선택해라.

그리고, 옆 화면을 주시하면 MySQL 재시동 이라는 링크가 보일 것이다.

클릭해라.

그럼 이제 부터 www.yourdomain.com에서 db.yourdomain.com의 MySQL 데이타 베이스에 접근이 가능해 졌다.

그럼 이제 web 서버를 설정하러 가보자

웹서버에는 Apache만 구동한다. MySQL은 구동하지 않는다.

이유는 간단하다. 원격으로 DB 서버를 구성해 두었기 때문이다.

MySQL은 클라이언트로만 사용할 것이다.

그럼 아까 받아 둔 phpMyAdmin을 역시 www.yourdomain.com의 서비스 디렉토리에 설치한다.

압축을 풀고 디렉토리를 변경하는 과정 까지는 같고 콘피그 파일을 설정하는 방법이 조금 다르다.

다음과 같이 따라하면 된다.

vi config.inc.php

$cfgPmaAbsoluteUri = ' http://www.yourdomain.com/yourdir/phpMyAdmin/';

(yourdir)은 없다면 적지 않아도 된다.

그러니깐 이 옵션은 phpMyAdmin을 서비스할 완벽한 URL을 적어 두는 곳이다.

죽 내려보면

$cfgServers[$i]['host'] = 'db.yourdomain.com or dbs.erv.er'.sip'; // MySQL hostname

여기서 여러분은 눈치가 빠른 사용자라면 눈치 챌 것이다.

php 등에서 mysql 접속함수를 쓰면서 다음과 같이 해 줘야 된다는 것을

mysql_connect("db.yourdomain.com or db.yourdomain.com or dbs.erv.er'.sip", "yourid", "yourpw");

이렇게 말이다. 이것 외에는 다른 점이 없다.


$cfgServers[$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)?

여기서 잠깐 auth_type은 원래 config라고 되어 있다 MySQL 자체의 인증을 사용하기 위해서 나는 http를 선택했다.


$cfgServers[$i]['user'] = 'youruser'; // MySQL user
$cfgServers[$i]['password'] = 'yourpass'; // MySQL password (only needed

여기서 아까 우리가 생성한 원격서버의 root 계정의 정보를 적어라

당신이 만든 아이디와 패스워드를 말이다. db 서버의 root 계정이 아니고 새로 만든 아이디를 의미한다.

그리고 저장하고 vi를 닫아라.

저장했으면 이제 웹브라우져에서

http://www.yourdomian.com/phpMyAdmin/

저렇게 접근하고 아까 적은 아이디와 패스워드를 넣으면 db.yourdomain.com 에서 본 것과 동일한 환경이 나타날 것이다.

여기까지 끝냈으면 보안을 위해서 일단, db.yourdomain.com의 Apache 서버는 내려라 MySQL은 두고 말이다.

그리고 우리는 이제 www 도메인만 사용한다.

http://www.yourdomian.com/phpMyAdmin/

이곳에 접근해서 원격 슈퍼유져 아이디는 당신만이 기억하고 또는 당신 보스와 함께 하지만, 앞으로 접근할 다른 사람들의 아이디는 db와 성격에 맞게 잘 만들어서 써야한다.

이부분은 더이상 설명하지 않겠다.

이렇게 하면 원격으로 Web 서버와 DB서버를 분리해서 운영할 수 있다.

허접한 글이긴 하지만 여러분들께 많은 도움이 되었으면 하는 바램이다.
반응형
반응형
1호점에서 가져왔습니다.

odbc로 DB2 쿼리 하는 예제 입니다.

<?php
putenv("DB2INSTANCE=db2inst1");
putenv("INSTHOME=/home/db2inst1");
//check_checkedList();
$db2_host="db2host"; // DB2호스트명
$db2_user="db2user"; // DB2사용자명
$db2_pass="db2pass"; // DB2비밀번호
$db2_connect=odbc_connect($db2_host,$db2_user,$db2_pass);

   //$db_query="SELECT k.kwon_year, k.SET_POSITION, k.reg_id, k.status, k.set_position_type FROM mono.mmp1_".$kwon_tbl." k, mono.mlp1_subscript s WHERE k.reg_id=s.maccno AND k.control_id='$control_id'";
   $db_query="select * from dbname.tablename"; // 원하는 쿼리

   $result = odbc_do($db2_connect,$db_query);
   $num_rows= odbc_num_rows ($result);

   $num=0;

   while (odbc_fetch_row($result))
   {
    $num++;
    echo odbc_result ($result, 1);
   }
?>


반응형
반응형

1호점에서 퍼왔습니다.

사용법 : RPAD(변수,길이,변형자);

예)  SELECT RPAD('KOREA', 8, '*') FROM DUAL;
RESULT >>>>>>
KOREA***

우측에 자리수 만큼 채워줍니다.

가끔 까먹어서 ^^;;

반응형

'DATABASE > ORACLE' 카테고리의 다른 글

[삽질기] 잊지말자 Commit 명령  (0) 2010.01.15
[ORACLE] LPAD 함수  (2) 2009.07.24
[ORACLE] 트리구조 만들기  (0) 2009.05.23
[ORACLE] 오라클 계정 만들기  (0) 2009.05.21
ORACLE scott 계정 활성화 하기  (0) 2009.05.20
반응형

1호점에서 가져왔습니다.

select level, lpad('>', level*2) || group_nm, group_exp
  from tpc_dept
start with dept_cd in (select dept_cd from tpc_dept where pre_dept_cd = '00000')
connect by  prior dept_cd = pre_dept_cd

오라클에서 지원하는 트리구조 함수 START WITH ~ CONNECT BY PRIOR  ~

^^;;

오늘 업무하다가 고객사의 과장님께 들은 것을 글로 옮겨 적는다. ^^;;
반응형

'DATABASE > ORACLE' 카테고리의 다른 글

[ORACLE] LPAD 함수  (2) 2009.07.24
[ORACLE] RPAD 함수  (0) 2009.05.24
[ORACLE] 오라클 계정 만들기  (0) 2009.05.21
ORACLE scott 계정 활성화 하기  (0) 2009.05.20
[ORACLE] 테이블 구조만 백업 하기  (0) 2009.05.19
반응형

1호점에서 퍼왔습니다.


Mysql의 데이타를 옮기는 방법입니다.

질문/답변란에도 설명을 해 두었는데요

강좌로 작성합니다.

우선 기존에 있는 DB를 백업하는 방법입니다.

mysqldump 라는 프로그램을 사용합니다.

제가 젤 처음에 SQL 파일을 받았을때 이걸 어떻게 만들어 냈지라는 의문을 많이 가지고 있었는데요 ^^

저 프로그램으로 작성한 거더군요 ^^

그럼 저 명령어의 사용방법입니다.

mysqldump --quick 데이타베이스이름 [테이블 이름] [옵션들] > 백업파일명

실제로 사용해 보면요.

mysqldump --quick kjh0523 -u kjh0523 -p > kjh0523.sql

라고 하면요

kjh0523이라는 데이타베이스에 포함된 모든 파일을 kjh0523.sql에 백업합니다.

특정 테이블을 백업할때는 다음과 같이 하면 되겠죠 ^^

mysqldump --quick test bbs1 -u test -p > test.bbs1.sql

이렇게 하면 test이라는 데이타베이스 안에 bbs1이라는 테이블의 내용을 test.bbs1.sql 파일로 백업합니다.

여러분들의 게시판이나 방명록이 mysql에 데이타를 저장한다면, 이방법을 사용해서 백업하실 수 있습니다.

많은 도움이 되셨기를

------------------
other howto 2
자꾸 싸가지없게 배껴와서 죄송하군요
크크 이바닥이 원레 다 이런거 아닙니까
원출저자에게는 죄송
-----------------------------
현배형 ^^

그 방법은 당연히 있습니다... 잠시만여...

mysqldump --quick db_name > db_name.contents

위에 것이 방법인데요. ^^

저걸 실제로 적용해 보면요.

다음과 같이 할 수 있습니다.

저건요 우선 백업하는 방법입니다.

mysqldump --quick parkbae park1 > park1.sql -u parkbae -p

형한테 할당된 db가 parkbae 라고 치궁 user id 가 parkbae 라고 생각했습니다.

저렇게 하면 패스워드를 묻습니다.

패스워드만 답하면

저걸 실행 시킨 디렉토리에 park1.sql 이라는 파일이 남습니다.

그리고 이제 park2 라는 DB로 임포트를 해줘야하는데요.

park2와 park1이 동일한 테이블 구조를 가지고 있다면 쉽구요

그렇지 않다면

조금은 SQL에 수정을 가해 주어야합니다.

우선 저는 동일한 테이블 구조를 가지고 있다고 생각하겠습니다.

여러가지 방법이 있는데요 우선 park2가 새로운 DB 일 경우에는 쉽습니다.

그대로 임포트만 하면 됩니다.

하지만 그렇지 않을 경우에는요. 다음과 같이 해 주어야합니다.

SQL문을 살펴보면요

InSERT 라는 부분이 있을 겁니다.

그 부분에 보시면 Key 값으로 쓰이는 부분이 있습니다.

보통은 no 등이 쓰이는데요

그 분을 다 지워 줘야합니다.

'1'
'2'
'3'

이부분을 다지 우세요 ^^

숫자만요

그러니깐

이거하실때는 ^^ park1.sql 파일을 열고 하셔야되겠죠 ^^

''
그러니깐 이렇게 되어 있어야합니다.

Insert into test values('',1,now();,'127.0.0.1','bbuwoo','0000',
'admin@oops.org','http://www.oops.org','이글을 보신후 꼭 삭제하십시오.',
'게시판을 처음 사용하실때 유의하실 점입니다. 일단 기본적으로 Admin mode의 password는 0000으로 맞추어져 있습니다. 게시판 상단의 admin 을 클릭하여 이것들을 변경하여 주십시오.
',0,0,0,0,0,'','','');
위와 같이 되어 있어야합니다.

그리고는요.

다음 명령을 실행 하시면 됩니다.

참 실수 했네요 ^^

park1.sql을 열었을때요

Create table 라는 부분 부터 );

이부분을 삭제해 줘야합니다.

예를들어 이부분이요 ^^

CREATE TABLE test (
no int(8) DEFAULT '0' NOT NULL auto_increment,
num int(8) DEFAULT '0' NOT NULL,
date int(11) DEFAULT '0' NOT NULL,
host tinytext,
name tinytext,
passwd varchar(13),
email tinytext,
url tinytext,
title tinytext,
text mediumtext,
refer int(8) DEFAULT '0' NOT NULL,
reyn int(1) DEFAULT '0' NOT NULL,
reno int(8) DEFAULT '0' NOT NULL,
rede int(8) DEFAULT '0' NOT NULL,
reto int(8) DEFAULT '0' NOT NULL,
bofile varchar(100),
bcfile varchar(100),
bfsize int(4),
PRIMARY KEY (no),
KEY num (num),
KEY date (date),
KEY reno (reno)
);

이런 부분은 다 지우세요 ^^

mysql -u parkbae parkbae park2 < park1.sql

마지막으로요 wowboard를 mysql로 전환할 방법도 있습니다. ^^

그건 연구해 보세요 ^^

SQL문을 작성하면 됩니다.

도움이 되었으면 하네요 ^^

2007/05/12 00:45 2007/05/12 00:45
반응형
반응형

1호점에서 가져왔습니다.

ORACLE 새로운 계정 만들기

0. ORACLE sysdba 아이디로 접속하기
서버에 접속후에 oracle 계정으로 전환한다.

su - oracle

sqlplus로 sysdba 계정에 접속한다.

sqlplus sys/oracle[@orcl4] "AS SYSDBA"

1. 계정의 테이블 스페이스 생성
명령어
create tablespace [tablespace_name]
datafile '/home/oracle/oradata/DANBEE/[file_name].dbf' size 500m;

예)

create tablespace jw1 datafile='/home/oracle/oracle/oradata/orcl4/jw1.dbf' size 500m;

저기서 orcl4와 jw1 을 원하는대로 바꾸면 됨

2. 오라클 유저 만들기
명령어
CREATE USER [user_name]
IDENTIFIED BY [password]
DEFAULT TABLESPACE [tablespace_name]
TEMPORARY TABLESPACE TEMP;
예)

CREATE USER jw1 IDENTIFIED BY  jw1 DEFAULT TABLESPACE jw1 TEMPORARY  TABLESPACE TEMP;


 

3. 생성한 USER에 권한주기

GRANT connect, resource, dba TO [user_name];

예)
GRANT connect, resource, dba TO jw1

4. 생성한 USER로 ORACLE에 접속하기

sqlplus jw1/jw1[@orcl4]

SQL>

프롬프트가 나오면 USER 생성에 성공한 것이다.

참고 문서 : http://kin.naver.com/db/detail.php?d1id=1&dir_id=10110&docid=918052

반응형

'DATABASE > ORACLE' 카테고리의 다른 글

[ORACLE] RPAD 함수  (0) 2009.05.24
[ORACLE] 트리구조 만들기  (0) 2009.05.23
ORACLE scott 계정 활성화 하기  (0) 2009.05.20
[ORACLE] 테이블 구조만 백업 하기  (0) 2009.05.19
[ORACLE] ORACLE Split 함수(Function)  (0) 2009.05.18
반응형
1호점에서 가져왔습니다.

 alter user scott identified by tiger account unlock;


오라클사는 보안 때문에 scott 계정을 비활성화 시켜 두었다

위와 같은 명령어를 사용하면 활성화 된 계정으로 사용할 수 있다.

tiger는 다른 비밀번호로 변경하면 된다. ^^;;
반응형

'DATABASE > ORACLE' 카테고리의 다른 글

[ORACLE] 트리구조 만들기  (0) 2009.05.23
[ORACLE] 오라클 계정 만들기  (0) 2009.05.21
[ORACLE] 테이블 구조만 백업 하기  (0) 2009.05.19
[ORACLE] ORACLE Split 함수(Function)  (0) 2009.05.18
[ORACLE] 백업/복원하기  (0) 2009.05.17
반응형

1호점에서 가져왔습니다.

이문서는 << [ORACLE] 백업/복원하기 >> 에 추가 하는 문서 입니다.

오라클의 테이블 구조만 백업 하기 입니다.

exp userid=아이디/비밀번호@SID file=덤프파일명 rows=n log=로그파일명

이렇게 하면 DATA 없이 테이블 구조만 백업 됩니다.
반응형

'DATABASE > ORACLE' 카테고리의 다른 글

[ORACLE] 트리구조 만들기  (0) 2009.05.23
[ORACLE] 오라클 계정 만들기  (0) 2009.05.21
ORACLE scott 계정 활성화 하기  (0) 2009.05.20
[ORACLE] ORACLE Split 함수(Function)  (0) 2009.05.18
[ORACLE] 백업/복원하기  (0) 2009.05.17
반응형
1호점에서 가져왔습니다.

우선 Table 타입을 선언합니다.

create or replace type split_tbl as table of varchar2(32767);
/

함수를 선언합니다.

create or replace function split
(
  p_list varchar2,
  p_del varchar2
) return split_tbl pipelined
is
  l_idx    pls_integer;
  l_list    varchar2(32767) := p_list;
  l_value    varchar2(32767);
begin
  loop
       l_idx := instr(l_list,p_del);
       if l_idx > 0 then
           pipe row(substr(l_list,1,l_idx-1));
           l_list := substr(l_list,l_idx+length(p_del));

       else
           pipe row(l_list);
           exit;
       end if;
  end loop;
  return;
end split;
/

사용법은

select * from table(split('1 2 3 4 5 6 7 8 9 10', ' '));

입니다.

출처 : http://builder.com.com/5100-6388-5259821.html

반응형

'DATABASE > ORACLE' 카테고리의 다른 글

[ORACLE] 트리구조 만들기  (0) 2009.05.23
[ORACLE] 오라클 계정 만들기  (0) 2009.05.21
ORACLE scott 계정 활성화 하기  (0) 2009.05.20
[ORACLE] 테이블 구조만 백업 하기  (0) 2009.05.19
[ORACLE] 백업/복원하기  (0) 2009.05.17
반응형
1호점에서 옮겨 왔습니다.

오라클을 데이타 베이스로 사용하면서 백업하고 복원하는 방법입니다.

1. 백업하기 exp userid=사용자명/비밀번호@sid file=filename_date.dmp

  예) exp userid = scott/tiger@orcl file=scott_20070331.dmp

2 복원하기 imp userid=사용자명/비밀번호@sid file=filename_date.dmp [FULL=Y] [TABLE=table name]

  예) imp userid=scott/tiger@orcl file=scott_20070331.dmp FULL=Y
반응형
반응형
dbaccess DB명<< EOF;
load from '로드할파일명' insert into  로드할테이블명;
EOF

이것두 잊어버리지 않으려고 작성해 둡니다.


반응형
반응형
cat unload.sh

dbaccess 데이터베이스명 << EOF;
unload to '저장될 파일명' select * from 테이블명;

Informix DATA 백업 스크립트 입니다.

잊어 먹지 않으려고 작성해 둡니다. ^^;;

밑에 적어둔 스키마 백업 스크립트는 무진장 잘 써먹고 있습니다. ㅋㅋㅋ


반응형

+ Recent posts