Linux

MYSQL 초기 구축

Naan 2010. 11. 23. 10:45
320x100
1. mysql에 초기 접속하기
먼저, root 로 /usr/local/mysql/bin/mysql 에 접속한다.

# mysql -u root mysql
// 초기엔 mysql관리자 root(서버의 root가 아님!)의 패스워드가 등록되어 있지 않기 때문에 패스워드 없이 접속 할 수 있다.



2. mysql관리자 root 패스워드 설정
mysql을 설치하고 나면 mysql이라는 데이터베이스가 기본적으로 생성되어 있다. (show databases; 로 확인 ;-)
즉, mysql 관리용 데이타베이스라고 생각하면 된다. 즉, mysql관리자인 root도 이 데이터베이스의 user라는 테이블내에
등록되어 있다. root 패스워드 변경은 user라는 테이블에서 변경해주면 된다.

mysql> update user set password = password('w0rm9') where user = 'root';
// root의 패스워드를 w0rm9 으로 설정했다.

그런 다음 exit; 명령어로 빠져나와서 데이터베이스를 재시작해준다.
# mysqladmin -u root reload

다음 접속시 부터는 패스워드를 입력해야 한다.
# mysql -u root -p
Enter password: 패스워드 입력



3. mysql 새로운 사용자 계정 설정법
# mysql -u root -p
Enter password:
....어쩌구 저쩌구.......

mysql> use mysql;
....어쩌구 저쩌구.......
Database changed

// w0rm9이란 데이터베이스를 만들었다. 
mysql> create database w0rm9db;

// mysql 데이터베이스의 user 테이블에 새로운 사용자를 생성한다.
mysql> insert into user (host, user, password) values('localhost','w0rm9',password('1234')); 또는
mysql> insert into user values('localhost','w0rm9',password('1234'),'Y','Y','Y',Y''Y','N','N','N','N','N','N','N','N','N');

// user라는 테이블에 생성된 mysql사용자(w0rm9)가 입력되었는지 확인힌다.
mysql> select * from user where user = 'w0rm9';

// db 테이블에 w0rm9사용자가 사용할 데이터베이스 연동시킨다.
mysql> insert into db values('localhost','w0rm9db','w0rm9','y','y','y','y','y','y','y','y','y','y');

// db 테이블에 w0rm9db라는 db가 연동되었는지 확인한다.
mysql> select * from db where db = 'w0rm9db';

// 생성된 데이터베이스를 확인한다.
mysql> show databases;

// 빠져나온다.
mysql> exit

// 새로운 사용자나 데이터베이스 생성 후에는 반드시 reload를 해줘야 적용된다.
# mysqladmin -u root -p reload
Enter password:

-보안을 위한 일반사용자의 권한 설정-
user에서 localhost, user, password만 빼고 나머지는 다 N
db에서 localhost, Db, user 만 빼고 나머지는 다 Y



4. mysql 기존 데이터베이스 삭제
// 데이터베이스를 확인한 후 삭제한다.
mysql> show databases;
mysql> drop database w0rm9db;

// 사용자를 삭제한다.
mysql> delete from user where user='w0rm9';
mysql> delete from db where user='w0rm9';



5. table 관련 명령어
// table 생성하기
mysql> create table table_w0rm9 (
        -> name varchar(12),
        -> contents text
        -> );

mysql> show tables;
    +--------------------+
    | Tables_in_babyhack |
    +--------------------+
    | table_w0rm9        |
    +--------------------+

mysql> desc table_w0rm9;
    +---------+-----------------------+------+-----+---------+----------------+
    |  Field  | Type                  | Null | Key | Default | Extra          |
    +---------+-----------------------+------+-----+---------+----------------+
    |  name   | varchar(12)           |      |     |         |                |
    |contents | text                  |      |     |         |                |
    +---------+-----------------------+------+-----+---------+----------------+

//table 삭제하기
mysql> drop table table_w0rm9;

//table 이름 바꾸기
mysql> alter table old_w0rm9 rename new_w0rm9;

// 필드 추가하기, varchar(40)이라는 타입의 homepage라는 필드가 추가된다.
mysql> alter table table_w0rm9 add column homepage varchar(40);

// 필드명 변경하기, 생성했던 homepage 필드를 age로 변경한다. 속성까지 변경 가능
mysql> alter table table_w0rm9 change column homepage age varchar(3);

// 필드 삭제하기, 생성했던 homepage 필드가 삭제된다.
mysql> alter table table_w0rm9 drop column homepage;

// 데이터 추가하기, 내용 추가 후 확인
mysql> insert into table_w0rm9(name, contents, homepage) values('w0rm9','hacked by w0rm9', 'http://w0rm9.madnom.com');
mysql> select * from table_w0rm9;

// 데이터 검색하기
mysql> select contents from table_w0rm9;  // contents의 내용만 확인한다.
mysql> select contents, name from table_w0rm9;  // contents, name의 내용만 확인한다.
mysql> select homepage from talbe_w0rm9 where name = 'w0rm9';  // name이 w0rm9의 homepage내용만 출력한다.
mysql> select name from talbe_w0rm9 where name LIKE '%rm%';   // name에 rm이 포함된 name의 내용만 출력한다.

// 데이터 수정하기
mysql> update talbe_w0rm9 set name = 'cracker' where homepage = 'http://w0rm9.madnom.com';
// 홈페이지가 http://w0rm9.madnom.com 인 레코드의 name을 cracker로 입력했다.

// 데이터 삭제하기
mysql> delete from testtable where name = 'w0rm9';
// name가 w0rm9인 레코드를 삭제했다.



6. 그 밖의 명령어들
// 현재 데이터베이스 확인
mysql> show databases;

// mysql이라는 데이터베이스를 작업대상 Db로 정함
mysql> use mysql;

// 현재 액세스한 테이터베이스의 테이블 확인
mysql> show tables;

// 테이블에 존재하는 모든 데이터 검색
mysql> select * from user;
mysql> select * from db;

// 특정 테이블의 필드구조 확인
mysql> show columns from user;
mysql> desc user;



7. mysqladmin 사용법
// 데이터베이스 종료
# mysqladmin -u root -p shutdown

// 데이터베이스 재시작
# mysqladmin -u root -p reload

// 새로운 데이터베이스 생성
# mysqladmin -u root -p create w0rm9

// 기본의 데이터베이스 삭제
# mysqladmin -u root -p drop w0rm9

// root 패스워드 변경
# mysqladmin -u root -p password 1234



8, 백업과 복구
// w0rm9db라는 데이터베이스 백업하기
# mysqldump -u root -p w0rm9db > w0rm9db.bak.sql
Enter password:

// w0rm9db.bak.sql 백업베이터 복구하기
# mysql -u root -p w0rm9db < w0rm9db.bak.sql
Enter password"

위와 같이 데이터베이스를 백업할때는 mysql이라는 데이터베이스도 함께 백업해 둔다.
어떤 데이터베이스가 있었나는 알 수 있기 때문이다.
320x100

'Linux' 카테고리의 다른 글

NIS 관련  (0) 2010.11.25
SH키를 이용한 RSYNC 백업법  (0) 2010.11.24
NIS 서버 및 클라이언트의 설정 및 관리  (1) 2010.11.22
MySQL 에러  (5) 2010.11.22
Mount  (0) 2010.11.19