1. 주요 파일들
mysqld.exe MySql 데몬
mysql.exe MySql Client
mysqladmin.exe 데이터베이스 생성,삭제,갱신,reload,shutdown을 할때 사용합니다.
mysqlshow.exe mysql.exe로 접속하지 않은 상태에서 정보를 볼 때 사용합니다.
mysqldump.exe 백업받을때 사용하는 유틸
isamchk.exe 테이블 정보 보기, 점검,최적화 복구등의 기능을 가진 유틸
해당 디비폴더 아래에 존재하는 파일
.frm 파일은 테이블의 구조를 저장하고 있는 파일이다.
.MYD 파일은 테이블에 저장되어있는 데이터 파일이다.
.MYI 파일은 테이블에 저장되어있는 데이터의 인덱스 파일이다.
2. Mysql 접속
mysqld를 실행 (데몬 실행)
예 d:\mysql\bin\mysqld.exe 엔터( "d:\mysql\bin\" 처럼 명령 프롬프트가 나타나지 않으면 정상)
데몬에 접속하기 위한 클라이언트 실행
데몬을 실행시킨 도스창에서는 더이상 명령을 입력할 수 없으므로 다시 도스창을 하나 더 연다.
mysql -h localhost -u root -p database명
로칼이므로 host는 생략, root의 암호가 초기에는 없으므로 암호 생략하면 접속명령은 다음과 같다.
d:\mysql\bin\mysql -u root (root 사용자로 접속)
처음 mysql을 설치하고 접속할 때는 root 사용자의 암호가 없다.
접속을 한뒤 root의 비밀번호를 변경
3. root의 설정
root로 접속을 했으니 비밀번호를 변경해보죠
use mysql (mysql DB를 사용)
update user set password = password('변경하고픈 비밀번호') where user = 'root';
password('')이렇게 입력을 하면 비밀번호가 암호화되어 들어간다.
비밀번호를 바꿨으므로 mysql을 갱신해야 비밀번호가 적용된다.
mysql>exit (mysql 클라이언트를 빠져나옴)
d:\mysql\bin\mysqladmin -u root reload (mysql디비를 새로 읽음)
또는 mysql> flush privileges;
이제부터 클라이언트로 접속을 할땐 비밀번호를 요구한다.
d:\mysql\bin\mysql -u root -p mysql
비밀번호 입력요구: 등록한 비밀번호 입력을 해야 mysql에 접속
mysql을 처음 설치하면 test DB와 test사용자가 있다. 필요없는 사용자이므로 삭제해도 무방하다.
d:\mysql\bin\mysqladmin -u root -p drop test ( test DB 삭제 )
root로 접속한다.
mysql>delete from user user=''; ( user가 없는 레코드 삭제 )
mysql>delete from db; (처음 접속을 하면 db테이블에는 test디비가 존재한다. 이것도 필요없으므로 삭제해도 무방)
mysql>exit
d:\mysql\bin\mysqladmin -u root -p reload (갱신)
데이터베이스와 사용자 관계 설정에는 db, user 테이블 사용
4. 각종 유틸
mysqldump를 이용한 데이타베이스 백업
mysqldump -u root -p암호 sampleDB > sampleDB.sql (bin/폴더 밑에 생성됨 )
데이타베이스내의 특정 테이블만 백업
mysqldump -u root -p암호 sampleDB board > sampleDB_board.sql
백업받은 자료 복구
mysql -u root -p암호 sampleDB < sampleDB.sql
mysqlimport로 파일내용을 데이타베이스로 insert하기
mysqlimport는 텍스트 파일을 데이터베이스에 저장시켜주는 유틸입니다.
mysqlimport -u root -p --fields-terminated-by=; sampleDB board board.txt
board.txt의 내용을 sampleDB의 board테이블에 insert 파일내의 필드 구분은 ';'
mysqlshow를 이용해서 데이터베이스와 테이블 정보보기
mysqlshow는 다야한 정보를 보여주는 유틸
mysqlshow -u root -p sampleDB (sampleDB 데이타베이스에 존재하는 테이블리스트를 보여줌 )
mysqlshow -u root -p sampleDB board ( 데이타베이스의 테이블의 필드구조와 레코드 갯수를 보여줌)
isamchk를 이용한 테이블 점검
isamchk ../data/sampleDB/board.ism ( board테이블 점검)
isamchk ../data/sampleDB/*.ism
isamchk ../data/*/*.ism
5. Tip
mysql에러메세지가 한글로 나오게 하고싶을때
mysqld --language=korean
window 서비스에 mysql를 등록
mysqld-max-nt -install
MySQL-Max 버전에는 Innodb 라는 테이블 타입이 있는데
Transaction 기능과 foreign key 기능이 innodb 테이블타입에서 지원이 된다.
mysql 서비스 데몬을 수행
net start mysql
mysql 서비스 데몬 중지
net stop mysql
window 서비스에서 mysql를 삭제
mysqld -remove
load data 명령을 이용한 파일내의 내용을 인서트
load data infile "파일명" into table 테이블명
파일은 mysql\data\해당 디비 폴더에 가져다 놓는다.
파일내의 데이터는 탭으로 분리
sample.txt
홍길동 20 19700210 honggd@yahoo.co.kr
..
mysql>load data infile "sample.txt" into table user
한글 정렬
Windows 용 MySQL 은 소스를 컴파일하여 설치하는 것이 아니라 컴파일 되어있는 상태를 가져와서 설치하는 것이기 때문에 한글정렬을 할 경우 올바른 결과치를 얻을 수 없다.
만약 한글 정렬이 안된다면 한글 정렬이 필요한 테이블에 binary 옵션을 부여하여 한글 정렬이
가능하게 만들 수도 있지만 별로 권하고 싶지 않은 방법이다. MySQL 을 윈도우에 설치하게 되면
Windows 설치 디렉토리 인 c:\winnt 디렉토리에 my.ini 라는 파일을 만들어 준다.
이 파일에 아래의 내용을 추가하여주고 MySQL 대몬을 다시 시작하여 주면 된다.
[mysqld]
basedir=d:/mysql
datadir=d:/mysql/data
default-character-set=euc_kr // 추가한 부분
6. mysql시작
d:\mysql\bin\mysqladmin -u root -p create sampleDB (sampleDB 데이타베이스 생성)
사용자 추가
mysql>insert into user (host,user,password) values('%','tester','password('test'));
mysql>insert into user (host,user,password) values('localhost','tester','password('test'));
host가 %는 어디서나 접속할수 있게 한다는 의미
생성한 디비에 사용자 등록
mysql>insert into db (host,user,password) values('%','sampleDB','tester','y','y','y','y','y','y')
tester라는 계정이 sampleDB라는 데이타베이스의 사용을 허락
tester라는 계정은 오직 sampleDB만 접근할 수있다.
Data Retrieval Language - Select
Data Manipulation Language - Insert, Update, Delete, Commit, RollBack
Data Definition Language - Create, Alter, Drop
Data Control Language - Grant, Revoke, Lock
테이블 생성
create table 테이블명 (컬럼1 데이터형, 컬럼2 데이터형, ….)
데이타 삽입
insert into 테이블명 (컬럼1,컬럼2,..) values (값1,값2,…)
데이타 수정
update 테이블명 set 컬럼명=value, …. where 조건
데이타 검색
select 컬럼명 from 테이블명
테이블 구조 보기
desc 테이블이름;
show columns from 테이블이름;
explain 테이블이름;
테이블에 컬럼 추가 삭제
alter table 테이블명 add 컬럼명 데이터형
alter table 테이블명 drop 컬럼명
결과값의 제한 LIMIT
LIMIT 절은 특정 인덱스 번호를 지정하여 몇 개의 결과값을 불러올 수도 있다.
Select * from employees order by salary desc LIMIT 2, 3;
mysql의 인덱스 번호는 0부터 시작한다.
그러므로 위의 select 명령은 급여가 높은순으로 정렬해서 세번째레코드부터해서 세개를 가져오라는 의미이다.\
오라클에서는 rownum을 사용해서 필요한 레코드를 가져올수 있다.
오라클에서는 1부터 시작
7. mysql의 자료형
정수형
자료형 비트 크기
tinyint 1 -128 ~ 127
smallint 2 -32768 ~ 32767
mediumint 3 -8388608 ~ 8388607
int(integer) 4 -2147483648 ~ 2147483647
Bigint 8 -2147483648 ~ 2147483647
실수형
자료형 비트 크기
float 4 -10^38 ~ 10^38-1
double(real, decimal) 8 -10^308 ~ 10^308-1
문자 자료형
자료형 설명
char(m) 1 ~ 255 개의 문자 저장
varchar(m) 1 ~ 255 개의 가변 길이 문자 저장
text 65535 개의 문자 저장
midiumtext 16777215 개의 문자 저장
longtext 4 GB 의 문자 저장
tinyblob 255 개의 binary 문자 저장
blob 65535 개의 binary 문자 저장
mediumblob 16777215 개의 binary 문자 저장
longblob 4 GB 의 binary 문자 지정
자료형 설명
date 년, 월, 일
datetime 년,월,일,시,분,초
time 시,분,초
timestamp 1970년 1월 1일 이후의 경과된 시간을 초단위로 표시
year 년 을 저장
'DataBase > MySQL' 카테고리의 다른 글
[본문스크랩] mysql 테이블 복구 (0) | 2010.04.24 |
---|---|
[본문스크랩] MySQL 최대 테이블 사이즈 변경 (0) | 2010.04.24 |
[본문스크랩] my_sql 유릴리티 설명 (0) | 2010.04.24 |
[본문스크랩] load data infile MySQL Dump (0) | 2010.04.24 |
[본문스크랩] 에러 유형과 그 대처 (0) | 2010.04.24 |