티스토리 뷰

study/Mysql

계정 생성(db포함) 및 덤프, 백업

알 수 없는 사용자 2008. 10. 9. 00:00

1. MySQL 서버에 접속을 한다.

[root@cobee ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 247 to server version: 3.23.58
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>

2. MySQL DB를 사용한다.

mysql> use mysql;

3. 사용자가 사용할 Database를 생성한다.

mysql> create database userDB;                    <-- userDB 사용자 DB명
 
4. 사용자 계정을 생성한다.

mysql> insert into user values('localhost','user',password('password'),'y','y','y','y','y','y','y','y','y','y','y','y','y','y');           <-- user 사용자계정 / password 사용자 패스워드

or

GRANT ALL PRIVILEGES ON userDB.* TO user@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;

5. 사용자 계정에서 사용 할 Database 적용한다.

insert into db values('%','user','userDB','y','y','y','y','y','y','y','y','y','y');           <-- 여기서 '%'는 어디서든 접속이 되게 설정하는 것이고 'userDB'는 등록할 db명이고, 'user'는 userDB를 사용할 사용자 명이다.
 
6. MySQL 재시작한다.

mysql> exit                                              <-- MySQL 빠져 나옴.

# mysqladmin -u root -p reload         <-- MySQL 재적용
-----------------------------------------------
사용자 DB 덤프/복구
testuser 라는 디비계정의 사용자가 testdb 라는 디비에 대해 작업을 하고
해당 디비에 testtable1,testtable2,testtable3 이라는 테이블이 있을 경우
 
1. testdb 의 모든 테이블의 스키마 및 데이타를 모두 덤프 받으려 할 경우
$ mysqldump -u testuser -p testdb > testdb.sql
 
2. testdb 의 모든 테이블의 스키마만 덤프받으려 할 경우
$ mysqldump -u testuser -p -d testdb > testdb.sql
 
3. testdb 의 testtable1 테이블의 스키마 및 데이타를 모두 덤프 받으려 할 경우
$ mysqldump -u testuser -p testdb testtable1 > testdb_testtable1.sql
 
4. testdb 의 testtable1 테이블의 스키마 및 데이타중 일부를 덤프 받으려 할 경우 ( no 가 testtable1 의 필드명일 경우 )
$ mysqldump -u testuser -p testdb testtable1 -w 'no > 1 and no < 100' > testdb_testtable1.sql
 
옵션설명 :
-u : 사용자명 입력
-p : 비밀번호 입력
-d : 데이타 덤프 안함
-w : WHERE 절 입력함 (단일 따옴표인것에 주의)
간혹 경로도 적어 주어야 하는경우도 있던애요.
-h localhost -h ip주소.. 이렇게..
디비서버가 별도로 존재하는경우는 이렇게 한문장을 더 넣어야 할것입니다.
예)
$ mysqldump -h useripaddress -u testuser -p -d testdb > testdb.sql
 
특정DB table 덤프
$ mysqldump -h useripaddress -u testuser -p -d testdb 데이블명 > testdb_특정table.sql

사용자 DB 복원 : mysql -u testuser -p testdb < testdb.sql

mysql -u아이디   -p비번   DB이름   <   파일이름
mysql -uzero  -p****   testdb < testdb.sql[엔터]
 
MySQL 서버 재기동 (DB 복원후 재기동 필요)
# service mysqld stop
 
or
 
# /etc/rc.d/init.d/mysqld restart

[출처] MySQL Online 백업/복구 및 사용자 계정 생성|작성자 쿠쿠