MariaDB의 사용법에 관해 설명합니다.
본 글의 실습은 가상서버 WIN MAX64 win 2012 에서 진행되었습니다.
http://www.cloudv.kr/rew1/cloud/cloud_v_windows-2.1.html
MariaDB 설치 후 실행 방법
실행 방법은 대표적으로 2가지 방법이 있습니다.
실행 방법 1 – cmd를 이용한 MariaDB 실행
1) ‘시작’ 버튼을 눌러 검색에 ‘실행’ 을 검색하여 실행합니다. 윈도우 7 같은 형식의 운영체제의 경우 ‘시작’ 에서
‘실행’ 을 클릭합니다.
2) ‘실행’ 에서 cmd를 입력해 준 후 ‘확인’ 을 입력합니다.
3) cmd로 접속했다면 밑에 설명하는 명령어를 그대로 사용합니다.
– cd C:\Program Files\MariaDB 10.0\bin
– mysql -uroot -p
– Enter password : 설정한 비밀번호 입력 (설정 직후라면 이상태서 엔터)
4) 명령어를 사용해서 접속이 성공 했는지 확인합니다.
5) cd C:\Program Files\MariaDB 10.0\bin 로 이동해서 실행하려고 하는데 에러가나거나 MariaDB가 접속이
안될 경우 MariaDB의 경로를 확인합니다.
실행 방법 2 – 시작 메뉴에 있는 MariaDB 실행
1) ‘시작’을 눌러 ‘MySQL Client(MariaDB 10.0)’ 를 클릭합니다.
2) Enter password: 가 나오면 비밀번호를 입력하여 MariaDB를 구동합니다. MariaDB의 경우 설치를 하면 시작화면에
등록되어 있으므로 첫번째와 같이 복잡한 명령어를 사용하지 않고 사용하려면 시작을 통한 실행을 권장합니다.
유저 생성 – 일반 유저
1) 일반 유저를 생성 하기 전 create 명령어를 이용해 smile와 smile1이라는 DB 2개를 생성합니다.
2) DB smile의 권한을 갖는 일반 유저 smile를 생성 합니다. 명령어의 by ‘ ‘ 은 비밀번호를 적는 곳이니 참고합니다.
– grant all privileges on smile.* to smile@localhost identified by ‘1234’ with grant option;
3) quit를 사용하여 root 계정에서 나간 다음 유저 smile로 접속해서 use smile를 이용해 DB로 이동합니다. 그리고 난 후 1번에서 만든 DB smile1로 이동해 봅시다. 하지만 에러가 뜨며 이동이 되지 않을것입니다.
4) show databases;을 이용해서 Database를 확인해보면 분명 처음에 smile, smile1을 만들었는데 정작 나오는 것은 smile입니다. 이렇게 나오는 이유는 사용할수 있는 DB 권한을 smile로 줬기 때문에 표시되는 DB는 smile밖에
없는 것이며 smile 계정은 DB smile만 다룰 권한이 있는 것입니다.
유저 생성 – 모든 DB에 접속이 가능한 유저
2) root 계정에서 모든 DB의 접속 권한을 갖는 유저 smile1을 생성 후 quit로 나가서 smile1로 접속 합니다.
– grant all privileges on *.* to smile1@localhost identified by ‘1234’ with grant option;
– mysql -usmile1 -p
3) 접속 한 후 show databases;를 사용하여 database를 확인하면 생성한 DB smile하고 smile1이 보입니다.
이어서 use를 이용해 smile과 smile1로 이동합니다. smile1이 이렇게 여러 DB에 접근이 가능한 이유는 유저 생성시
privileges on *.* 부분의 권한을 *.*로 해서 모든 DB에 접근 권한을 줬기 때문입니다.
4) create database server;로 DB를 생성합니다. 마스터 유저가 아닌 일반 유저가 DB를 생성 할 수 있는 이유는
그룹 명령어에 ‘ all privileges ‘ 이라는 모든 명령어를 허용하게 했기 때문이며. 한 유저 에게 모든 명령어를 주기
싫다면 밑에 적은 명령어 같이 사용할수 있는 명령어를 따로 정하고 유저를 생성합니다.
– grant select, insert, update dbname.* to testuser@localhost identified by ‘password’;
유저 생성 – 모든 권한을 가지고 있는 슈퍼 유저
1) 슈퍼 유저는 root 유저와 같이 모든 권한을 가지고 있는 유저를 만드는 명령어를 사용하여 유저를 만듭니다.
– grant all privileges on *.* to smileserv@”%” identified by ‘1234’ with grant option;
2) 이 슈퍼 유저는 root 유저와 모든 기능이 같습니다. grant를 이용해 유저를 생성할 수 있으며 create로 DB를
생성할 수 있습니다. 이것으로 유저 생성에 관련된 설명은 끝났습니다.
여기서 다시한번 정리를 해보겠습니다.
smile이라는 단일 DB의 권한만 준 후 생성하는 유저 명령어
grant all privileges on smile.* to smile@localhost identified by ‘1234’ with grant option;
어떤 DB도 들어 갈 수 있고 DB를 생성 할수 있는 유저 명령어
grant all privileges on *.* to smile1@localhost identified by ‘1234’ with grant option;
root와 같은 모든 권한을 가지는 유저 명령어
grant all privileges on *.* to smileserv@”%” identified by ‘1234’ with grant option;
이런 명령어로 나뉘며 밑의 명령어는 유저 생성 시 참고합니다.
grant all privileges on *.* to smile1@localhost identified by ‘1234’ with grant option;
명령어 허용 허용할 DB 유저명 로컬호스트 비밀번호
설명 : 유저 smile1은 모든 명령어와 DB사용을 허용하며 비밀번호는 1234로 설정한다.
UPDATE 사용법 = 유저 비밀번호 변경
이번엔 update의 사용법에 관해 설명합니다. 위의 제목은 비밀번호 변경이라고 쓰여있지만 꼭 비밀번호 변경에만
사용 되는 것은 아니며. 테이블 내용 변환 에도 활용 할 수 있는 좋은 명령어입니다.
1) 비밀번호는 유저의 비밀번호를 update 를 이용해 변경하며 변경한 후 root 아이디로 접속해서 mysql로 이동합니다.
2) show tables; 를 사용해 리스트를 쭉 보면 맨 밑에서 user을 발견할 수 있습니다. 거기서 select를 이용해 바꿀
유저를 찾는습니다. 바꿀 유저는 미리 만들어둔 smile을 사용 합니다.
– select * from user;
3) user 테이블의 비밀번호를 변경 시켜준 후 flush privileges;를 이용해 적용 시킵니다. 그상태로 MariaDB에서 나간후
암호를 재설정한 smile로 바뀌기 전의 비밀번호를 한번 사용한후 접속이 되는지 상태를 확인 합니다.
-update user set password=password(‘2345′) where user=’smile’;
테이블 바꿀값 유저 행
flush privileges;
설명 : DB mysql의 테이블 user의 smile행에 있는 password의 값을 2345로 변경하고 적용한다.
4) 바뀌기 전의 비밀번호가 사용되지 않고 새롭게 바꾼 비밀번호로 접속 되는 화면을 확인할수 있습니다.
테이블 생성
주의 : 명령어의 사용법은 맞으나 테이블의 내용 등은 모두다 예시입니다. 그점을 확인하시면서 보시기 바랍니다.
1) 테이블을 만들기 위해 먼저 DB를 생성 합니다.
– create database smileserv;
2) DB smileserv로 이동하여 show tables; 를 사용해도 아직 테이블이 안 만들어져 있기 때문에 비어있습니다.
3) 밑의 명령어를 참고하여 create로 테이블을 간단하게 만들어봅시다.
– create table user ( name varchar(20), sex char(1), birthday date, phone varchar(16), email varchar(32) );
이름 성별 생일 핸드폰 이메일
설명 : 테이블 user을 만드는 동시에 테이블 안에 지정한 컬럼형을 가진 컬럼을 생성한다.
4) 만든 후 describe user;로 테이블의 컬럼이 잘 생성되었는지 확인합니다.
설명 : describe은 테이블의 구성을 보여주는 명령어다.
5) 이 테이블은 뼈대만 갖춰져 있는 테이블이다. 내용을 추가하기 위해 아래의 명령어를 이용하여 내용을 추가 시킨다.
테이블의 내용 순서대로 데이터를 집어넣을 경우
insert into user values (‘스마일’, ’02-1688-4879′ , ‘hong@tipsware.com’, ‘m’, ‘2002-06-13’);
테이블의 순서는 상관없이 데이터를 알맞게 집어넣을 경우
insert into user ( name, phone, email, sex, birthday ) values ( ‘스마일’, ’02-1688-4879′, ‘hong@tipsware.com’, ‘m’, ‘2002-06-13’ );
위의 자료를 참고하여 테이블 안에 자료를 하나 더 추가해줍니다.
insert into user ( name, phone, email, sex, birthday ) values ( ‘스마트’, ’02-1688-4889′, ‘smart@tipsware.com’, ‘m’, ‘2002-10-13’ );
설명 : user 테이블에 컬럼을 지정한 후 지정한 컬럼에 맞는 데이터를 집어넣는다.
6) 명령어로 스마트라는 자료를 추가하여 확인한 화면입니다.
테이블의 내용 변환
1) 스마트를 update문을 이용하여 내용을 바꾼다. 방법은 유저의 비밀번호를 변경할 때와 크게 다르지 않습니다.
밑의 명령어를 사용하고 확인하면 스마트가 스마트폰으로 변경된 것을 확인 할 수 있습니다.
유저의 비밀번호 변경때와 테이블의 내용 변경 비교
– update user set password=password(‘2345′) where user=’smile’;
– update user set name = ‘스마트폰’ where name=’스마트’;
테이블 이름 변경
1) alter를 이용해 DB smileserv 안에 있는 user를 human으로 교체한다.
– alter table user rename human;
설명 : 테이블 user의 이름을 rename을 이용해 human으로 교체한다.
테이블 컬럼 추가
1) alter의 기능은 테이블의 컬럼 추가 변경 등의 기능이 있습니다. 그중에 테이블 안에 blood 라는 컬럼을 추가 한다.
– alter tables human add column blood char(1) not null;
테이블명 컬럼명 컬럼형
설명 : 테이블 human에 char형의 blood 컬럼을 생성한다.
2) select * from human로 확인하면 blood가 추가 된 것을 확인할 수 있습니다.
1) alter 또는 insert로 테이블의 컬럼을 만드는 중 실수로 varchar이 들어가야 하는 속성 값을 int로 만들어서 속성 값을
잘못 주게 되는 경우가 있다. 이럴 경우 alter로 속성을 바꾼다.
– alter table human add column addr int(100) not null;
컬럼명 컬럼형
↓
2) 위 화면은 alter로 속성 값을 int에서 varchar로 변환하여 확인한 화면입니다.
– alter table human modify column addr varchar(100) not null;
테이블명 타입 변경 컬럼명 컬럼형
설명 : 테이블 human의 addr 컬럼형을 int에서 varchar로 교체합니다.
3) select * from human을 사용하여 blood와 addr의 데이터가 없는것을 확인한 화면입니다.
테이블 내용 추가
1) alter을 이용해 추가한 blood와 addr에 데이터를 update를 이용해 추가해봅시다.
– update human set blood = ‘B’ where name=’스마일’;
추가할 컬럼 데이터
– update human set addr = ‘ 가산동 ‘ where name=’스마일’;
추가할 컬럼 데이터
설명 : 스마일행의 blood와 addr에 B와 가산동을 추가한다.
2) 위의 방법도 내용을 수정하는 방법 중 하나다 이번엔 한번에 명령어를 설정하여 수정한다.
– update human set blood =’S’, addr =’야탑동’, phone =’010-1688-4879′ where name=’스마트폰’;
설명 : 스마트폰에 있는 blood, addr, phone에 S, 야탑동, 010-1688-4879를 추가한다.
3) select * from human; 으로 테이블을 확인하면 스마트폰의 수정된 블러드, 핸드폰 번호 주소를 확인할 수 있다.
테이블의 컬럼 삭제
1) alter은 테이블의 컬럼을 삭제할 수 있습니다. 삭제 시엔 drop를 같이 사용하며 이 명령어를 병용하여 방금 만든
blood와 addr을 삭제 시킵니다.
– alter table human drop column addr;
– alter table human drop column blood;
선택할 테이블 삭제할 컬럼
설명 : human 테이블의 addr과 blood를 삭제시킵니다. 삭제시킬때 안에 있던내용도 삭제됩니다.
DELETE와 DROP
여기서는 DELETE와 DROP에 관해 설명하며 이 명령어는 삭제를 담당하는 명령어입니다 이명령어는 이용시
삭제할 DB와 테이블을 자세히 확인하고 사용해야합니다. 잘못 삭제 하면 백업을 해놓지 않는이상 원래대로 되돌릴
방법이 없기 때문입니다.
1) DELETE
delete는 테이블 및 테이블의 행을 삭제할수 있는 명령어입니다. delete는 from과 where라는 조건문을 이용해 삭제를 진행합니다.
– delete from table_name;
테이블명
설명: 테이블 전체를 삭제한다. 테이블과 내용 모두 삭제된다.
– delete from talbe_name where column = ‘ 스마트 ‘;
테이블명 삭제할 열 삭제할 행
설명 : delete를 이용하여 테이블의 삭제할 열이 스마트라면 스마트 쪽의 행을 삭제한다.
– delete from talbe_name where height < 80;
테이블명 삭제할 열
설명 : 테이블의 체중 열의 값이 80보다 낮은 행을 삭제한다 .
2) DROP
drop는 DB 및 테이블을 삭제할수있는 명령어다. delete와 달리 테이블의 행만 삭제하는것은 불가능하며 delete와의 차이점은 DB를 삭제하는 것이 가능하며 유저의 삭제도 가능하다는 점이다.
– drop database db_name;
DB명
설명 : DB db_name를 삭제한다. DB안에 있는 내용이 모두 삭제되므로 주의한다.
– drop table table_name;
테이블명
설명 : 테이블 전체를 삭제한다. delete와 기능이 같다.
– drop user user_name@localhost;
유저명
설명 : 유저를 삭제한다.
[polldaddy rating=”7739789″]