1. 디비 접속법
● 설치폴더 -> 빈폴더의 마이에스큐엘로 접속함
● 암호설정시 접속법(아이디가 root, 비번이1234 일 경우)
mysql -u root -p Enter
다음 암호입력
2. 기본 쿼리문장
● 디비보기 : show databases;
● 디비만들기 지우기 : create database dbname, drop database dbname;
● 디비사용하기 : use dbname;
● 테이블보기 : show tables;
● 테이블만들기 : create table tablename(fild type(len),...);
● 테이블지우기 : drop table tablename;
● 필드 구성 보기 : desc table name;
● 데이터 추가하기 :insert into (table 명) values ( , , );
● 데이터 지우기 : delete from (table 명) where (field명) = ‘ ’;
● 중복하지 않게 하나씩 증가시키기 : (id smallint primary key auto_increment)
3. Root 사용자 비밀번호 변경하기
● mysql>use mysql
>update user set password=password("원하는비밀번호“) where user='root';
이렇게 하면 우선 처리내역이 밑에 뜬다.
● Flush 해주기 (안해주면 비밀번호가 바뀌지 않는다. 방법은 두가지)
가. mysql 접속 상태에서 Flush 하기
mysql>flush privileges;
위와같이 입력하면 Flush 되었다고 나온다. 그러면 비밀번호 변경 완료!!
나. mysql 접속을 끊고 밖에서 Flush 하기
c:\mysql\bin>mysqladmin -u root -p flush-privileges
Enter password : <-이렇게 뜨면 바뀌기 전 비밀번호 입력하면 된다.
입력하고 엔터쳐도 별 반응 없다 반응없으면 된거고 삐 소리나면 안된것!!
(c.f) 위에 다른 사용자 비밀번호를 변경하려면 root에 다른 사용자 ID집어 넣을것!
4. Grant 를 사용하여서 계정 만들기
● 관리자를 추가하기 위한 Grant 사용 (Root와 동일 한 사용자)
mysql>GRANT ALL PRIVILEGES ON *.* to (추가하려는 ID)@localhost IDENTIFIED BY '(원하는 패스워드)' WITH GRANT OPTION;
+) (추가하려는 ID)@"%" - 외부 접근 가능
주의!! : 위에서 ID와 PW의 가로는 쓰면 안 됨. 문장에서 구분하기 좋으라고 해 놓은 가로임!!
● 일반 사용자에게 자신의 db(mydb)에 관한 모든 권한 부여하기.
mysql>GRANT ALL PRIVILEGES on mydb.* to user@localhost IDENTIFIED BY 'password';
* user에다가 원하는 사용자 ID 집어넣고 password에 원하는 pw 집어 넣으면 됨.
(c.f) MySQL version 5.0 alpha user privileges list.
5. Select 문을 이용한 Data 검색.
● 기본검색 - 테이블 안의 레코드 전체를 보여줌
mysql>select * from 테이블명; <- 이건 기본적인 지정테이블 안의 모든 내용을 보
● 조건검색(where) - 테이블안의 레코드중 지정한 조건에 맞는 값만 검색
mysql>select * from 테이블명 where 필드명=‘조건값’;
->지정 필드에서 조건 지정 값만 출력.
mysql>select * from 테이블명 where 필드명=‘조건값’ && 필드명=‘조건값;’
->and를 이용 두가지 이상 조건 값을 줄 수 있다.. 두가지 조건을 다 만족하는 값만 검색한다.
5.0 이상 버전에서는 and라고 쳐도 되지만 이전 버전에서는 && 라고 써야한다. 관리자가
때에 따라 이전버전을 사용할 수도 있으므로 && 기호로 사용하는 습관을 기르자.
mysql>select * from 테이블명 where 필드명=‘조건값’ || 필드명=‘조건값’;
->or를 이용 두가지 이상 조건 값을 줄 수 있다.. 두가지중 하나만 만족해도 검색한다.
5.0 이상 버전에서는 or라고 쳐도 되지만 이전 버전에서는 || 라고 써야한다. 관리자가
때에 따라 이전버전을 사용할 수도 있으므로 || 기호로 사용하는 습관을 기르자.
mysql>select * from 테이블명 where 필드명 like "%찾을문자“;
->위에 “%찾을문자“는 여러 가지가 들어갈 수 있다. % 위치에 따라서 달리 검색한다.
mysql>select * from 테이블명 where 필드명 regexp "^[jJ]";
->위조건 만족하는 필드명 중에서 첫글자가 j 또는 J로 시작하는 레코드를 검색해서 출력.
-> . - 문자 하나를 나타냅니다.
* - 앞에 나온 문자의 0개 이상 반복합니다.
^ - 문자열의 처음을 나타냅니다.
$ - 문자열의 끝을 나타냅니다.
[,] - 괄호 안의 문자열 일치를 확인합니다.
{,} - 반복을 나타냅니다.
● 정렬하기(order by) - 테이블안의 레코드를 검색하여서 지정된 값으로 정렬하는 법
mysql>select * from 테이블명 where 필드명=‘조건값’ order by 필드명 정렬방법;
정렬방법에는 asc 와 desc 이렇게 두가지가 있다. asc(ascend:오름차순), desc(descend:내림차순)
● 여러개의 테이블에서 검색하여 정렬하기
mysql>select * from 테이블1 a, 테이블2 b where a.name=b.name order by a.name asc;
테이블1을 a라고 임의로 지정, 테이블2 를 b 라고 임의로 지정 후 조건에서 a의 name과 b의 name
이 같은 값만 a의 name을 기준으로 하여서 오름차순 정렬하여서 보여줘라. 이런 명령!
● 여러개의 테이블에서 원하는 필드를 골라 검색하여 순서대로 정렬하기.
mysql>select a.name, b.phone, a.age from 테이블1 a, 테이블2 b, where a.name=b.name order by a.name desc;
● count(*)를 사용해서 레코드 개수 보기.(카운트 사용시 조건을 주려면 꼭 group by를 써야한다.)
mysql>select count(*) from 테이블명; <-테이블안의 레코드 계수를 세어서 보여준다.
● group by 를 사용하여서 정렬하기
mysql>select name,count(*) from members group by name;
이렇게 하면 name필드에 중복된 숫자를 파악하여 어떤 name 몇 개 어떤 name 몇 개, 이렇게 출력
mysql>select name,age,count(*) from members group by name, age;
위 내용이랑 비슷한데 이름과 나이가 같은 레코다 몇 개인지 보여주는 select 문이다.
풀어 설명하면 이름이 XX고 나이가 YY인 사람이 몇 명~ 이런식으로...gg
6. 테이블의 지우기와 수정하기.
● delete를 이용하여 테이블 지우기
● delete from 테이블명;
해당 테이블을 삭제합니다.
● alter 와 add 를 이용하여 테이블에 열 추가 하기.
mysql>alter table 테이블명 add 열명 자료형태;
테이블에 열을 추가 시킨다.
● alter 와 drop 을 이요하여 테이블에 열 삭제하기.
mysql>alter table 테이블명 drop 열명;
테이블의 열 한 개를 다 지워버린다.
● delete를 이용하여 특정레코드 삭제하기.
mysql>delete from 테이블명 where 열명=‘레코드명’;
위에 where 값에 해당하는 레코드만 삭제한다.
● update를 이용하여 레코드 수정하기.
mysql>update 테이블명 set 열명=‘레코드명’ where 열명=‘레코드명’;
위에 지정한 테이블에서 where조건에서 지정한 열의 해당 레코드에서, set한 열명의 값을 지정한
레코드 값으로 수정한다. 이해 안되도 잘보면 보인다.
단, 오직 update는 레코드나 값만을 수정한다. 필드이름이나 테이블 이름은 수정이 불가능하다.
===========================================================================================
===========================================================================================
7. mysql 의 백업과 데이터 복구.
● isamchk 사용하기
#isamchk 옵션 테이블명
mysql의 경우 대부분 isamchk를 돌릴정도의 심각한 오류는 발생하지 않는다. 하지만 기계는 언제나
예고없이 문제를 일으키므로, 꼭 알아두어야할 UTIL 이다.
● isamchk 옵션
#isamchk - : help로 다양한 옵션들을 확인하자.
#isamchk 테이블명 : 해당테이블의 에러를 점검합니다. 상당한 부분까지 점검함.
#isamchk -e 테이블명 : 해당 테이블의 모든 데이터를 점검해 줍니다.
-i 옵션을 추가하면 통계까지 같이 보여 줍니다.
#isamchk -r-q 테이블명 : 해당 테이블의 에러를 쉽고 빠르게 복구해줍니다.
● 이 같이 isamchk 를 통하여서 많은 에러로부터 데이터와 테이블을 복구 할 수 있다.
help 를 사용하여서 더 많은 옵션을 꼭 확인 하여야 한다.
● 필자 : 솔직히 실행을 못해보았다. 이상하게 안된다. 어떻게 써야하는지 몰라서 안했으니.....안다면..
나에게도 가르쳐 줬으면 좋겠다. ...
● mysql 에서의 백업하기
c\mysql\bin>mysqldump -h 호스트명 -u 유저명 -p 데이터베이스명 > 백업되어질 파일명
mysql의 백업의 경우는 user/local/mysql/bin 안에 있는 mysqldump를 이용하는 방식이다.
위와 같이 외부명령이다. 즉 mysql안에서 사용하면 안되는 명령이므로, 밖에 local에 나와서 사용
할 수 있도록 하자. 위의 명령을 내리면 Enter pw 창이 나오면 입력하고 Enter!! 치면..끝!!
● mysql 에서의 롤백하기
c\mysql\bin>mysql -h 호스트명 -u 유저명 -p 데이터베이스명 < 백업파일명
위의 명령 또한 외부 명령이다. local에서 실행 할 수 있도록 하자. 그리고 또한 pw창이 나오니
입력하고 엔터....
● 위의 백업에서 중요한 점은 백업을 하면 데이터베이스 전체를 백업 하는 게 아니라는 것이 중요한 점이다. mysqldump 를 실행하면 기본적으로 지정한 데이터베이스 안의 테이블만 백업을 하고, 롤백을 한다는 소리다. 즉, 꼭 데이터베이스의 이름을 기억하여서 롤백 하기전에 mysql안에 들어가서 데이터베이스를 만들어 놓고, 후에 롤백하여서 그 동일한 위치에 저장 될 수 있도록 하자!!!
●
1. 실행시 프로그램(프로세서,데몬) 차원에서 옵션을 이용한 설정법
-O max_connections=1000
2. mysql 환경설정파일을 수정하여 시작시마다 자동설정하는 방법
- max_connections=1000