################################################################################
#  간단한 MySQL Queries
#
#  작성 : 김정균 <http://www.oops.org>
################################################################################

이 문서는 SQL초보자들을 위해 JSBoard를 설치함에 있어
MySQL에서 쓰이는 간단한 query문들을 소개한다.
[] 에 둘러 쌓여져 있는 것들은 생략 가능이다.

* MySQL socket file 위치 찾기
  shell> mysql_config --socket
  shell> netstat -anp | grep mysql

  위의 두 명령에서 mysql.sock 파일의 위치가 일치하면 mysql.sock
  의 경로임.

* MySQL login 하기

  shell> mysql -u DB_user -p [DB_name]

* DB 선택하기
  MySQL에 로그인을 할때 DB_name을 지정하지 않았을
  경우에 사용을 하거나 다른 DB로 작업을 옮길때 사용

  mysql> use DB_name

* DB 생성과 삭제

  mysql> create database DB_name;
  mysql> drop database DB_name;

* table 생성과 삭제
  table 생성은 mysql문서를 자세히 보도록 한다.

  mysql> create table Table_name (field0,fiedl1,field2....);
  mysql> drop table Table_name;

* DB 및 Table list 보기

  mysql> show databases;
  mysql> show tables;

* Table 속성 보기

  mysql> desc Table_name;

* User 등록하기
  아래의 value에 있는 DB_USER와 DB_PASS만 지정해 준다. 만약
  db 서버에 외부에서 접속을 가능하게 하려면 localhost 대신에 "%"를
  사용한다. 또는 대역으로 설정을 할수도 있다.

  mysql> insert into user (Host,User,Password) values('localhost','DB_USER',password('DB_PASS'));

  또는 다음과 같이 할수 있다.

  mysql> GRANT all privileges on 디비.* TO 사용자@localhost IDENTIFIED BY '패스워드';

* DB 권한 등록하기
  중요한 것은 colum의 숫자가 틀릴수도 있으니 desc db; 명령으로 colum수를
  확인하고 맞춰줘야 한다.

  mysql> insert into db values('localhost','DB_NAME','DB_USER','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

  위에서 GRANT 명령을 사용했을 경우 db table 에서 권한을 주는 설정을 할 필요가 없다.

* MySQL user password 변경하기

  mysql> use mysql
  mysql> update from user set password('NEW_PASSWORD') where user = 'USER_NAME';

* MySQL reload 하기
  위에서 패스워드를 변경하거나 새로운 유저,DB를 설정하고 나서는 꼭 reload를
  해 줘야 한다. reload에는 두가지 방법이 있다. 하나는 MySQL에서 하는 방법이고
  하나는 shell상에서 하는 방법이다.

  mysql> flush privileges;
  shell> mysqladmin -u root --password=MySQL_PASSWORD reload

  이 명령 역시 GRANT 문을 이용해서 사용했을 경우 실행할 필요가 없다.
