* My-SQL
- mysql 공식 사이트 

http://www.mysql.com

- 로그인하는 방법

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 과 php 의 연동
- 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( $레코드결과변수 )

Posted by 달팽이맛나
,