VMware-리눅스 DB서버(MariaDB) 2
이번 포스팅은 저번 MariaDB 포스팅에 이어서 DB관련 운영 방법에 대해서 포스팅해보도록 하겠습니다.
1.MariaDB 설정파일
먼저 MariaDB의 설정파일이 위치와 파일의 내용을 알아보겠습니다.
/etc/my.cnf.d/mariadb-server.cnf
해당 파일이 MariaDB의 설정 파일입니다. 이전 포스팅에서도 설정을 바꾼 적이 있습니다.
파일의 내용을 요약하면 데이터 저장 위치, 소켓 파일, 로그 파일 경로 등을 정의하고,
네트워크설정등을 알 수 있습니다. 이전 포스팅에서 외부에서 접속을 편하게 하기 위해서
bind-address= 부분을 0.0.0.0으로 설정하여 모든 네트워크에서 접속을 허용하였지만 해당 부분을 수정하여
특정 ip만 접속하도록 설정가능합니다.
2.CREATE
먼저 DB를 관리하기 위해서는 SQL언어 대해서 알고 있어야 합니다.
기본적으로 주의할 점은 이전에 간단하게 말했듯이 ;을 통해서 명령어의 끝을 표시해 줘야 명령어가 실행된다는 것입니다.
CREATE DATABASE databasename;
해당명령어는 가장 기초적으로 CRATE(생성명령어)로 DemoDataBase라는 이름의 데이터 베이스를 생성해 줍니다.
명령어를 통해서 새로운 데이터베이스가 생성된 것을 확인가능합니다.
CREATE명령어를 통해서 데이터베이스 안에 테이블도 생성이 가능한데
데이터 베이스안에 테이블을 생성하기 위해서는 먼저 해당 데이터베이스를 사용하겠다는 명령어인 'USE'를 사용해합니다.
USE DemoDataBase;
CREATE TABLE DemoTable(
num int AUTO_INCREMENT,
name varchar(50) not null,
email varchar(50),
primary key(num)
);
DemoTable라는 이름의 테이블이 생성하였습니다.
명령어에 대해서 살펴보면은
- 필드의 이름은 num이며 숫자형 데이터베이스로 선언하였고, AUTO_INCREMENT 옵션을 통해서 자동으로 숫자가 증가
- 필드 이름은 name이며 고정된 문자열 50자를 의미합니다. not null 옵션은 해당 값은 비어있지 않아야 한다입니다.
- email필드는 고정된 문자열 50자를 의미하고, 따로 옵션을 설정하지 않았습니다.
- primary key(기본 키)를 num으로 지정한다는 의미입니다.
primary key는 관계형 데이터베이스에서 중복되지 않는 값을 사용하여 테이블에서 각 행을 구분하는 역할입니다.
그리고 테이블이 제가설 정한 대로 제대로 만들어졌는지
SHOW와 DESCRIBE 명령어를 통해서 확인할 수 있습니다.
이미지를 확인해 보면 기존에 설정했던 옵션들이 제대로 적용된 것을 확인 가능합니다.
다음으로는 사용자 생성을 해보겠습니다.
CREATE USER 'username'@'host' IDENTFILD BY 'passwd';
해당 명령어는 ban이라는 사용자를 생성하는 명령어입니다.
ban은 사용자 이름을 의미하고, @뒤는 사용자의 출발지를 지정합니다
위에서 사용한 %의 경우는 모든 시스템에서 로그인을 허용합니다.
호스트유형 | 설명 |
% | 모든시스템에서 로그인 허용 |
172.168.91.100 | ip주소가 172.168.91.100에서의 로그인만을 허용 |
172.168.91.% | ip주소가 172.168.91.0/24 네트워크에 존재하는 시스템에서만 로그인을 허용 |
localhost | 로컬호스트에서의 로그인만을 허용 |
위 와 같은 표처럼 옵션이 있습니다.
그리고 IDENTIFILD BY ' '의 경우 ' '안에 있는 문자로 패스워드를 설정합니다.
이제 다시 제대로 사용자가 생성되었는지 확인해 보겠습니다.
SELECT User, Host, Password FROM mysql.user WHERE User = 'username';
사용자가 명령어대로 생성된 것이 확인 가능합니다.
3.ALTER
데이터 베이스 또는 테이블의 정보를 수정하려면 ALTER를 사용합니다.
ALTER TABLE tablename ADD fieldname option;
해당 명령어는 테이블에 새로운 필드를 추가해 줍니다.
ADD 뒤에 오는 문자는 필드이름이고 그 뒤에는 원하는 옵션을 적용할 수 있습니다.
필드를 추가했듯이 필드를 제거할 수도 있습니다.
ALTER TABLE tablename DROP COLUMN fieldname;
SQL에서는 삭제를 DROP으로 사용합니다.
그리고 추가적으로 DROP phone만으로도 필드가 삭제되는 것을 확인했습니다.
하지만 다른 버전에서 제거가 안될 수도 있고 오류가 생길 수도 있다고 하니,
DROP COLUMN을 사용하는 것이 바람직하다고 합니다.
테이블에 필드를 추가하고 제거하는 것을 알았으니 이번에는 이름을 수정하는 방법도 알아보겠습니다.
ALTER TABLE 'tablename' CHANGE 'oldefieldname' 'newfieldname' 'type option';
이번 명령어는 헷갈릴 수 있는 부분이 있어서 ' ' 사용해서 구분을 해주겠습니다.
실제 명령어를 적용할 때는 ' '를 지워주고 자신에게 맞는 명령어로 변경해서 사용하면 됩니다.
저 같은 경우는 아래처럼 num이라는 필드이름을 id로 변경해 주고 옵션은 기존 옵션 그대로 적용해 주겠습니다.
- ALTER TABLE DemoTable CHANGE num id INT AUTO_INCREMENT;
그리고 수정 과정에서 옵션 부분을 비우고 변경한다면 기존의 옵션이 삭제되고 빈 옵션으로 변경됩니다.
3.DROP
마지막으로 데이터베이스 또는 테이블을 삭제하는 법을 알아보겠습니다.
이전에 말했던 거처럼 SQL에서 삭제는 del이나 rm이 아니라 DROP을 사용합니다.
DROP 'DATABASE' or 'TABLE' name
위처럼 DATABASE 혹은 TABLE을 지정해 주고 이름을 적어준다면 삭제가 됩니다.
extable이라는 예시 테이블을 만들어서 삭제를 해보겠습니다.
이상으로 MariaDB에 관리 운영에 대한 두 번째 포스팅을 마치겠습니다.
다음 포스팅으로는 DB에 데이터를 조회, 삽입, 수정, 삭제하는 등의 데이터 조작에 관한 포스팅을 이어서 하도록 하겠습니다.
감사합니다.