[MySQL] 기초 구동, 데이터베이스 및 테이블의 생성,삭제, 백업,복구 실행화면
00
net stop mysql
mysql 서비스를 중지

01
net start mysql
mysql 서비스를 시작

02
c:\mysql\bin> mysql
mysql 을 사용하기 시작(이때부터 쿼리 입력)

03
mysql> show databases;
데이터베이스 목록보기

04
mysql> use mysql;
데이터베이스중 mysql 데이터베이스를 사용한다는 명령

05
mysql> show tables;
현재 데이터베이스의 테이블 목록보기

06
mysql> select host,user,password from user;
현재 데이터베이스의 테이블중 user 테이블의 필드중 host,user,passsword 필드의 항목을 출력

07
mysql> update user set password=password('0000') where user='root';
사용자 필드중 root 라는 정보의 비밀번호를 0000 으로 암호화(password) 해서 저장한다.(업데이트)

08
mysql> select host,user,password from user;
결과화면 보기

09
mysql> quit;
mysql 쿼리입력 종료

10
c:\mysql\bin> mysqladmin reload
mysql 의 재가동
이는, net stop mysql -> net start mysql 의 과정을 거치지 않고 바로 재가동 하는 명령

11
c:\mysql\bin> mysql -u root -p mysql
mysql 에 root 라는 계정으로 접속하겠다는 의미
이후, 비밀번호 입력하는 프롬프트가 뜨고, 생성시 입력한 비밀번호를 입력해야 접속가능

12
mysql> GRANT ALL PRIVILEGES ON *.* to small@localhost IDENTIFIED BY 'password'
    -> WITH GRANT OPTION;
mysql 쿼리 입력은 엔터키를 치면 줄바꿈이 되고 계속 입력할 수 있다.
GRANT(권한부여) 명령을 이용하여 small 이라는 계정을 password 라는 패스워드로 생성하고 모든권한(*.*) 을 부여하는 명령
(추후, insert 명령을 이용해서도 생성할 수 있지만, 옵션이 복잡하다고 한다)

13
mysql> select host,user,password from user;
새로 등록한 사용자정보가 있는지 확인






14
mysql> GRANT ALL PRIVILEGES ON company.* to small@localhost IDENTIFIED BY
    -> '0000' WITH GRANT OPTION;
mysql 에 생성한 small 계정에 company 데이터베이스에 접속하도록 변경
여기서, company 라는 데이터베이스가 없어도 설정가능



15
mysql> create database newdatabase;
mysql> show databases;
newdatabase 라는 이름의 새로운 데이터베이스 생성

16
mysql> drop database newdatabase;
mysql> show databases;
newdatabase 라는 이름의 데이터베이스를 삭제

17
mysql> create database company;
mysql> show databases;
이제, small 사용자가 사용할 company 라는 이름의 데이터베이스를 생성한다.

18
mysql> GRANT ALL ON company.* TO small;
small 사용자에게 company 데이터베이스 사용권한을 부여한다.

19
mysql> use company;
mysql> create table friend (
    -> no int,
    -> name char(15),
    -> phone int(20)
    -> );
mysql> show tables;
사용할 데이터베이스를 company 로 바꾼후 friend 테이블을 생성한다.
주의:
테이블 이름은 30byes 를 초과할 수 없다(한글이면 15자인데, 한글은 애초에 사용불가)
테이블 이름은 반드시 알파벳으로 시작해야 한다
테이블 이름에는 알파벳(A~Z), 숫자(0~9), $,#,_(밑줄) 문자등을 사용할 수 있다.
테이블 이름에는 SQL 의 예약어(int, date 등) 를 사용할 수 없다.

20
mysql> drop table friend;
mysql> show tables;
friend 테이블을 삭제한다.

21
mysql> create table friend (no int, name char(15), phone int(20));
mysql> desc friend;
다시 friend 테이블을 생성한뒤 필드의 내용보기
(여기서 desc 는 역정렬을 의미하는 것이 아니라, description 의 약식표현인듯 하다)

22
mysql> alter table friend add email varchar(40);
mysql> desc friend;
alter 명령을 이용해 email 필드를 varchar(40) 속성으로 추가(add) 하기

23
mysql> alter table friend change phone tel int(30) not null;
mysql> desc friend;
alter 명령을 이용해 phone 필드의 이름을 tel 로 바꾸고,
그 속성을 int(30) 으로 바꾸며, null 값을 허용하지 않도록 속성 변경

24
mysql> alter table friend drop email;
mysql> desc friend;
alter 명령을 이용해 email 필드를 삭제한다.

25
c:\mysql\bin> mysqldump -usmall -ppassword company > company.sql
mysqldump 명령을 이용해 사용자 small 계정으로 password 라는 패스워드를 이용해 company 데이터베이스를 company.sql 이름으로 백업한다.
이때, 생성된 데이터베이스 백업파일(company.sql) 의 위치는 현재 위치(c:\mysql\bin\company.sql) 이다.

26
만약, 저장위치를 지정하고 싶다면, 아래와 같이 하면 된다.
c:\mysql\bin> mysqldump -usmall -ppassword company > d:\company.sql
그러면, d 디스크의 루트에 저장된다.
주의: -usmall 와 -ppassword 처럼 사용자 계정과 비밀번호를 붙여서 입력한다.

27
DB 복구.
먼저, 대상 DB(database) 를 지운후, DB 자체를 복구시도.
mysql> drop database company;
mysql> show databases;
mysql> quit;
c:\mysql\bin> mysql -uroot -p0000 company < d:\company.sql
이렇게, DB 자체를 지운후, 복원명령을 하면 DB 가 없다는 에러가 발생한다.



28
테스트결과, 우선, mysql 에서 복원할 데이터베이스와 똑같은 데이터베이스를 만들어 놓은후,
복구 명령을 실행해야 정상적으로 복구가 된다.
c:\mysql\bin> mysql
mysql> create database company;
mysql> show databases;
mysql> quit;
c:\mysql\bin> mysql -uroot -p0000 company < d:\company.sql
이렇게 진행해야 company 데이터베이스가 복구된다.
즉, 대상 데이터베이스가 이미 존재해야 하는 것이다.
(없으면 어디로 복구할지 모르는듯 하다.)

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by fendee | 2009/01/19 03:22 | PHP, Apache, MySQL | 트랙백

트랙백 주소 : http://fendee.egloos.com/tb/3961958
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
※ 로그인 사용자만 덧글을 남길 수 있습니다.
 

◀ 이전 페이지            다음 페이지 ▶