[server] [MySQL] 기본 사용법(사용자수정,백업)
페이지 정보
본문
- mysql 공식 사이트
- 로그인하는 방법
mysql -h 호스트 -u 아이디 -p
=> 패스워드를 입력
mysql -u 아이디 -p패스워드
- 데이터베이스 보기
show databases;
- 데이터베이스 사용
use 데이터베이스명
- 테이블 목록 보기
show tables;
- 종료하기 ( quit or \q )
- 데이터베이스 만들기 create database 데이터베이스이름;
- mysql에 새로운 사용자 계정 추가하기
1) root 계정으로 접속 : mysql -u root -p
2) mysql 데이터베이스 연결 : use mysql
3) user 테이블에 새로운 사용자 계정 추가
insert into user (host,user,password) values
('호스트','아이디',password('패스워드') ); // 패스워드는 반드시 암호화 처리
IP => 특정 호스트
% => 모든 호스트
localhost => 로컬에서만 접속 가능
4) db 테이블에 권한 추가
insert into db values
('호스트','DB이름','아이디','y','y','y','y','y','y','y','y','y','y','y','y');
권한 필드 12개 - 해당 DB의 모든 권한
5) 권한 테이블 업데이트
flush privileges;
* 관리자 패스워드 변경하기
1) 관리자 계정으로 접속 : mysql -u root -p암호
2) 암호 변경 ( 반드시 password() 함수를 사용하여 암호화해야 로그인이 가능함 )
update user set password=password("변경할암호") where user='root';
3) 권한 테이블 변경
flush privileges;
* 실습문제
- mysql root 계정을 특정한 IP에서 접속가능하도록 설정하고 비밀번호를 변경하세요.
허용 IP : 172.30.4.10, 172.30.4.11, 172.30.4.12(IP는 임의로 지정), localhost
비밀번호 : oradba 로 통일
- 사용자 계정 추가 연습
사용자아이디 : user2
비밀번호 : 임의지정
호스트 : 모든 호스트에서 접속 가능하도록 설정
user2가 사용할 DB : myoradb, web
* root 암호를 분실했을 때의 해결 방법
- 암호 복구 방법 사용
1. 현재 실행중인 mysql 데몬(mysqld-nt.exe)을 중지시킨다.
프롬프트> net stop mysql ( 또는 프로세스에서 강제 종료 )
2. 사용권한을 조회하지 않는 옵션으로 mysql 데몬을 실행시킴
프롬프트> mysqld-nt --skip-grant
3. mysql에 접속(암호를 입력하지 않음)
프롬프트> mysql -u root mysql
4. root 암호 변경
5. mysql 종료
6. 현재 실행중인 데몬 종료( 프로세스에서 강제 종료 )
7. 정상적인 옵션으로 mysql 데몬을 다시 실행함
프롬프트>net start mysql or 프롬프트>mysqld-nt
8. 변경한 암호로 재접속
* mysql 명령어 연습
- 데이터베이스 접속
mysql -h 호스트 -u 아이디 -p암호 사용할DB => 암호가 노출됨
mysql -h 호스트 -u 아이디 -p 사용할DB => 암호가 노출되지 않음
- 데이터베이스 생성하기 : create database DB이름 => 관리자 계정만 가능
- 데이터베이스 삭제하기 : drop database DB이름 => 관리자 계정만 가능
- 데이터베이스 목록보기 : show databases
- 테이블 만들기 : create table 테이블명 ( ... );
- 테이블 목록보기 : show tables;
- 테이블 구조보기 : desc 테이블명;
- 필드 추가하기 : alter table 테이블명 add 필드명 자료형 before/after 필드명;
- 필드 삭제하기 : alter table 테이블명 drop 필드명;
- 필드 수정하기 : alter table 테이블명 change 이전필드명 새로운필드명 타입;
- 필드값 자동 증가 옵션 : auto_increment
ex) alter table friend change num num int auto_increment;
- 테이블 이름 변경하기 : alter table 이전테이블명 rename 새테이블명;
- 테이블 삭제하기 : drop table 테이블명;
- 쿼리 일괄적용
프롬프트>mysql -u 아이디 -p비밀번호 DB이름 < 일괄쿼리파일
* 백업과 복구
- 백업
mysql-data 하위 폴더를 복사하여 붙여넣기
프롬프트>mysqldump -u 아이디 -p비밀번호 데이터베이스이름 > 백업파일명
- 복원
프롬프트>mysql -u 아이디 -p비밀번호 데이터베이스이름 < 백업파일명
- mysql 연동 작업을 위해 제공되는 함수를 사용
- mysql에 접속 :
$연결변수 = mysql_connect("호스트","아이디","패스워드");
- mysql 연결 해제 :
mysql_close($연결변수);
- 사용할 DB 선택(p.191)
mysql_select_db("DB이름","$연결변수"); // 프롬프트의 use DB 명령어에 해당
- 쿼리 실행( p.193 )
mysql_query( "쿼리문", "$연결변수" ); // 쿼리문을 실행함, auto commit
- 한 레코드씩 가져오기
$레코드저장변수 = mysql_fetch_array( $결과변수 )
- 레코드의 갯수 계산
mysql_num_rows( $레코드결과변수 )
1. MYSQL DATA 백업하는 방법
2. 프로그램 백업하는 방법
3. 프로그램 복구하는 방법
4. MYSQL DATA 복구하는 방법
1. MYSQL DATA 백업하는 방법
mysqldump -hlocalhost -uuser -ppassword db > youngcart4.sql
2. 프로그램 백업하는 방법
youngcart4 라는 디렉토리에 영카트4가 있다고 가정합니다.
tar cvfz youngcart4.tgz youngcart4
3. 프로그램 복구하는 방법
2번에서 cart 라는 디렉토리를 백업하였으므로
cart 라는 디렉토리가 생성되며 파일의 압축을 해제합니다.
tar xvfz youngcart4.tgz
chmod 707 youngcart4/perms.sh
cd youngcart4
./perms.sh
4. MYSQL DATA 복구하는 방법
mysql -hlocalhost -uuser -ppassword db < youngcart4.sql
관련링크
댓글목록
등록된 댓글이 없습니다.