MySQL code

* 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 in MySQL