2009년 6월 22일 월요일

[MYSQL] MYSQL SQL(스크립트) 파일 import 하기

리눅스 쉘에서 id와 pw를 입력하여 mysql을 실행후
내보내기 혹은 dump된 sql파일을 mysql을 실행할 디렉토리에 복사해놓습니다.
굳이 실행할 곳에 복사 안해도 상관은 없습니다만 경로 입력할때 풀경로를 다 입력해주어야합니다.
실행할곳에 복사를 해놓는경우 경로가 필요없이 ./스크립트.sql 이런식으로 입력해주면 간단해져요

mysql> source ./경로/스크립트.sql    실행하면 MSSQL에서 쿼리실행기로 실행한것처럼
실행되면서 쿼리가 실행되어진다.

2009년 6월 18일 목요일

[MYSQL] phpmyadmin 설치 후 오류 해결 방법

[root@vmm geniuskch]# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket /var/lib/mysql/mysql.sock' (2)

대책을 찾던 중 KLDP에 나온 내용으로 해결.

1. 퍼미션 문제
일반 유저에서
ls -al /var/run/mysqld/mysqld.sock
해서 확인을 해봅니다.

펼쳐두기..

2009년 6월 17일 수요일

tar 압축하기 압축방법

=리눅스 기준=

<< 압축하기 >>
* tar 와 gzip 따로 하기
# tar cvf file_name.tar *.c
# gzip file_name.tar

* tar 와 gzip 동시에
# tar cfp - target_dir | gzip -c > made_file.tar.gz

// target_dir = 압축할 파일들이 들어 있는 디렉토리
     // made_file  = 만들어질 압축파일의 이름.

<< 압축풀기 >>
* tar 와 gzip 따로 하기
# gzip -d file_name.tar.gz
# tar -xvf file_name.tar

* tar 와 gzip 동시에
# gzip -dc source_file.tar.gz | tar xvfp


-----여기까지 긁어왔습니다.

출처:블로그 > 동내스리가의 진공청소기

======================================================================


압축을 했으면 파일이 하나 생겼을 겁니다. 만약 안생겼거나 다른이름으로 압축파일이 생성되었다면 압축이 실패한 것이구요.


원래 있던 파일에 대해서는 변화가 없을 텐데 smong.c, hell.c는 무슨 말인지 잘 모르겠네요. 혹시 *.c 를 썻다는 말인지. 그렇다고 하더라도 하나의 파일이 더생겼다뿐 원래있던 파일이 변화하지는 않습니다. 압축 파일을 만드는 것이지 파일하나하나를 압축상태로 만드는게 아니죠.


만약 저 명령어로 에라가난다면 압축이 잘못된 것 같으니 밑에 걸 참고해서 다시 해보시길 바랍니다.


[[[[쉽게정리]]]]처음부터 다시 해보시지요...제가  gzip으로 하는 명령은 tar에서 같이 쓰다보니 정확히 잘 몰라서 위에거 긁어 왔구요. 여기부턴 제가 압축하는 예입니다.


님이 할려는 작업을 보니 yy(가상)안에 xxxx.c 이름의 파일을 모조로 압축하려는 것인가 보네요.


일단 디렉토리안에서 tar cvf c.tar *.c 로하면 tar 압축이되고 tar zcvf c.tgz *.c로 하면 두번압축해서 tar,gzip압축이 됩니다.

 잘 생각이 안나는데 만약 이 명령어로 안된다면 yy디렉토리로 이동후

tar cvf c.tar ./yy/*.c 이렇게 하면 확실히 되리라 생각합니다.


만약 디렉토리전체를 압축하려면 일단 디렉토리보다 상위 디렉토리로 이동한후 압축해야 합니다. 만들어지고 있는 압축파일을 다시 압축하려고 하다 에라가 나기때문이죠.


만약 /etc/file 에서 file 디렉토리안에 파일을 압축하려면 먼저 etc 디렉토리로 간 다음

etc]#tar cvf file.tar ./file 하면 될 것 같네요.

혹은 절대경로로 tar cvf file.tar /etc/file 이 경우 etc/file디렉토리안에서만 아니면 어디에서든 사용할수 있겠지요.

풀때는 tar xvf file.tar 하면 될 것 같네요. 


여기서 c는 압축옵션이고 x는 풀기옵션입니다.

(출처 : '리눅스 압축풀기' - 네이버 지식iN)



=유닉스 기준=

tar 명령어를 써보세요.

tar czfp 만들어질파일명.tgz 대상폴더(nsr)

ex. tar czfp nsr.tgz nsr

이 명령어는 해당폴더 (nsr)안에서 하시면 안되구, 그 상위에서 하시면 됩니다.
명령을 실행시면, 퍼미션까지 그대로 압축에 포함이 됩니다.

이 파일을 백업하셨다가 나중에 다시 설치하실려면,

파일을 서버로 옮기시고,

tar xzfp 파일명.tgz

로 압축을 푸시면 됩니다.


2009년 5월 27일 수요일

[MYSQL] ※ 이미 생성된 테이블에 PK 및 FK 제약조건 추가하기

 

※ 이미 생성된 테이블에 PK 제약조건 추가하기


ALTER TABLE [테이블명] ADD CONSTRAINT [제약조건이름] PRIMARY KEY(컬럼명);


EX) ALTER TABLE product ADD CONSTRAINT product_pdcode_pk PRIMARY KEY(pdcode);

product 라는 테이블에 product_pdcode_pk 라는 이름을 가진 PK 제약조건을 추가한다.


※ 이미 생성된 테이블에 FK 제약조건 추가하기


ALTER TABLE [테이블명] ADD CONSTRAINT [제약조건이름] FOREIGN KEY(컬럼명)

REFERENCES [부모테이블명](PK컬럼명) [ON DELETE CASCADE];


EX)
ALTER TABLE category ADD CONSTRAINT category_pcode_fk FOREIGN KEY(pcode)
REFERENCES product(pdcode) ON DELETE CASCADE;


※ 제약조건의 삭제


ALTER TABLE [테이블명] DROP CONSTRAINT [제약조건이름];


EX) ALTER TABLE product DROP CONSTRAINT product_pcode_fk;

제약조건을 삭제할 경우에는 FK 제약조건부터 먼저 삭제해준다.


※ NOT NULL 제약조건의 추가


ALTER TABLE [테이블명] MODIFY [컬럼명] [데이터타입] CONSTRAINT [제약조건이름]

NOT NULL;


EX) ALTER TABLE product MODIFY pname varchar2(20) CONSTRAINT product_pname_nn

EX) NOT NULL;

[MYSQL] 펌 - Foreign key 예제



 

MySQL foreign key 예제


a_tbl, b_tbl 두개의 테이블이 있다고 하자



 create table a_tbl(

 user_id varchar(10) not null default'',

 user_name varchar(30) not null default'',

 primary key(`user_id`)

 ) engine=innodb;





 create table b_tbl(

 user_id varchar(10) not null,

 user_tel varchar(15) not null,

 primary key(`user_id`),

 constraint fk_user_id       -- 제약조건명 : fk_user_id

 foreign key (`user_id`)     -- 테이블의 필드(user_id)가 foreign key

 references a_tbl(`user_id`) -- 테이블(a_tbl)의 필드(user_id)를 참조 

 on delete cascade           -- 참조키가 삭제되면 foreign key도 삭제

 on update cascade           -- 참조키가 업데이트되면 foreign key도 업데이트

 ) engine=innodb;


 CASCADE : 참조키가 삭제되거나 업데이트 되면 동일하게 foreign key도 동일하게 맞춤.

 RESTRICT : 참조키 변경(삭제 혹은 업데이트)되는 것을 방지함.

 SET NULL : 참조키에 변경(삭제 혹은 업데이트) 되면 foreign key 값을 null 로 저장.

 NO ACTION : 참조키에 변경(삭제 혹은 업데이트) 되어도 아무런 동작을 하지 않음.(foreign key의 이미 없음)


 각 테이블에 데이터 입력를 입력하자.



 insert into a_tbl values('happy','hong gil dong');

 insert into a_tbl values('appleman','lee soon shin');

 insert into a_tbl values('keeper','lee myoung park');


+----------+-----------------+

| user_id  | user_name       |

+----------+-----------------+

| appleman | lee soon shin   |

| happy    | hong gil dong   |

| keeper   | lee myoung park |

+----------+-----------------+

3 rows in set (0.00 sec)





 insert into b_tbl values('happy','010-1234-5678');

 insert into b_tbl values('appleman','011-4321-8765');

 insert into b_tbl values('keeper','016-9876-5432');


+----------+---------------+

| user_id  | user_tel      |

+----------+---------------+

| appleman | 011-4321-8765 |

| happy    | 010-1234-5678 |

| keeper   | 016-9876-5432 |

+----------+---------------+

3 rows in set (0.00 sec)




 각 두테이블을 조인하자.


 mysql> select a.user_id, b.user_id, a.user_name, b.user_tel from a_tbl a join b_tbl b where a.user_id=b.user_id;

+----------+----------+-----------------+---------------+

| user_id  | user_id  | user_name       | user_tel      |

+----------+----------+-----------------+---------------+

| appleman | appleman | lee soon shin   | 011-4321-8765 |

| happy    | happy    | hong gil dong   | 010-1234-5678 |

| keeper   | keeper   | lee myoung park | 016-9876-5432 |

+----------+----------+-----------------+---------------+


참조키를 업데이트한 후에 확인하자.



 mysql> update a_tbl set user_id='sadman' where user_id='happy';

 Query OK, 1 row affected (0.00 sec)

 Rows matched: 1  Changed: 1  Warnings: 0


mysql> select a.user_id, b.user_id, a.user_name, b.user_tel from a_tbl a join b_tbl b where a.user_id=b.user_id;

+----------+----------+-----------------+---------------+

| user_id  | user_id  | user_name       | user_tel      |

+----------+----------+-----------------+---------------+

| appleman | appleman | lee soon shin   | 011-4321-8765 |

| keeper   | keeper   | lee myoung park | 016-9876-5432 |

| sadman   | sadman   | hong gil dong   | 010-1234-5678 |

+----------+----------+-----------------+---------------+

3 rows in set (0.00 sec)


= 출처 =

운영자 : 김두형(www.sunmysql.co.kr)

email : beansoft@nate.com

업데이트 : 20080923

2009년 5월 19일 화요일

구글 애드센스 태그 정리

-텍스트광고-
<table width="620" height="272" border="0" cellspacing="0" cellpadding="0" align="center" style="border:1px #DDDDDD solid;">
 <tr>
  <td width="310" style="border-right:1px #DDDDDD solid;" bgcolor="white">
   <SCRIPT type="text/javascript"><!--
   google_ad_client = "pub-3906302701292919";
   /* 300x250, 작성됨 09. 7. 11 */
   google_ad_slot = "1977797762";
   google_ad_width = 300;
   google_ad_height = 250;
   //-->
   </SCRIPT>
 
   <SCRIPT type=text/javascript src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
   </SCRIPT>
  </td>
  <td width="310" bgcolor="white">
   <script type="text/javascript"><!--
   google_ad_client = "pub-3906302701292919";
   /* 300x250, 작성됨 09. 7. 11 */
   google_ad_slot = "2044473912";
   google_ad_width = 300;
   google_ad_height = 250;
   //-->
   </script>
   <script type="text/javascript"
   src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
   </script>
  </td>
 </tr>
</table><br><br>

[즐겨찾기] Google ( 구글 ) 관련 서비스 페이지 정리


=구글 서브버전 레포지터리=
소스 코드를 버전별로 관리할 수 있도록 계정공간과 이슈, 등등을 관리할 수 있는 페이지를 제공한다.
http://code.google.com/hosting/

=구글 애드센스=
자신의 블로그 및 홈페이지에 구글에서 발행하는 광고를 설치하여 수익을 올릴 수 있다.
승인심사 필요
https://www.google.com/adsense/