夜はプリズムのファンタジ

Database/MySQL(MariaDB)

MySQL(MariaDB) DB 생성 및 접속

Ju Hyun AN 2023. 10. 30. 23:19

 

오늘은 DB를 생성하고 접속하는 방법에 대해서 알아볼 것이다.

 

개인적으로는, MySQL Workbench를 사용하지만, 앞으로는 콘솔창을 통해서 진행 할 것이다.

 

간혹, 익숙한 프로그램에 문제가 생긴다거나, GUI를 사용하는 환경이 아닌 경우에서 대처 능력이 떨어지기 때문이다.

 

우선, 앞서 포스팅한 내용과 같이 MySQL DBMS의 설치가 끝났다면, 이어서 MySQL 폴더의 bin 경로환경 변수(path)에 추가 해주도록 한다.

(환경 변수 위치는, 제어판 → 시스템 및 보안 → 시스템 → 왼쪽 탭 '고급 시스템 설정' → 시스템 속성 하단에 있다.)

 

나는 MariaDB를 사용하고 있기 때문에, MariaDB를 보게 될 것이다. (하지만, MySQL과 다른점이 거의 없다.)

 

 

나의 경우, MariaDB를 사용하고 있을뿐, bin폴더 경로를 넣어주는 것은 동일하다. (JDK도 그러했죠...)

 


 

DB(DataBase) 생성하기

 

 

⑴. 우선, 콘솔창(cmd)에서 다음 명령어를 실행한다.

...> mysql -uroot -p

mariaDB는 아래 명령어도 가능하다.
...> mariadb -uroot -p

→ 해석하자면, u는 user, p는 password의 약자로서 즉, user가 root인 DBMS로 접속하겠다는 의미가 된다. 이것은 앞서 DBMS를 설치하는 과정에서 설정했던, root 계정을 의미한다. 

 

⑵. 이후, 엔터(Enter)를 입력하게 되면, password 입력 단계로 이동하게 되는데, DBMS 설치 과정에서 설정 했던 password를 입력하면 된다.

 

 

최상위 root 계정을 통해 DBMS에 접속하는 과정이다.

 

 

⑶. 위 과정이 끝나면, MySQL 모니터(monitor)로 진입하게 된다. (MariaDB의 경우, MariaDB 모니터)

 

 

모니터로 들어온 상태이다.

 

 

MySQL모니터로 입장하게 되면, 위 MariaDB [(none)]> 부분이 그냥 mysql> 로 되어있을 것이다.

 

MariaDB의 경우는 연결된 DB명을 노출시켜주기 때문에, 괄호가 추가된 것일 뿐, 차이는 없다.

 

⑷. 이제 아래 명령어를 입력하여, DB를 생성하도록 하자. (DB이름 부분에 실제 사용할 DB이름을 적는다.)

mysql> create database DB이름;

MariaDB[(none)]> create database DB이름;

 

 

Ex.) 만약, DB이름이 connectdb라고 한다면, 아래와 같은 결과를 보았을 것이다. 되도록 OK까지 확인하도록 하자

 

 

⑸. DB(DataBase) 생성이 완료되었다. 제대로 생성되었는지는 아래 명령어를 통해서 확인이 가능하다.

mysql> use DB명;

Mariadb[(none)]> use DB명;

 

만약, 생성이 안되었거나 이름을 잘 못 입력한다면, 당연히 아래와 같은 Error가 동일하게 발생할 것이다.

mysql> use DB명;
ERROR 1049 (42000): Unknown database 'DB명'

MariaDB[(none)]> use DB명;
ERROR 1049 (42000): Unknown database 'DB명'

 

반대로, 문제가 없다면, 'Database changed' 문구와 함께, 알아서 변경된다. MariaDB 경우는, (none)으로 표기 되던 부분이 접속된 DB명으로 변경되는 것을 볼 수 있을 것이다.

 


 

 DB(DataBase) 접속하기

 

 

1. 사용자 생성하기

 

DB를 생성했으니, 접속하기 위한 사용자를 생성하겠다.

 

매번 최상위 사용자인 root 계정을 사용하기엔 부담이 있기에 적당한 권한을 가진 사용자를 생성해두는 것이 좋다.

 

여기서는 위에서 생성한 DB에 접속이 가능한 사용자를 생성할 것이기 때문에 당연히 해당 수준의 권한 레벨을 맞춰 줘야 한다.

 

기본적으로, 권한을 부여하는 SQL 함수는 GRANT이다. 해당 함수를 사용하여, 사용자 계정에 권한을 부여해 줄 것이다. 

 

⑴. 아래와 같이 입력하여, 해당 DB에 접근할 수 있는 계정을 생성해보자.

> grant all privileges on db이름.* to 계정명@'%' identified by '비밀번호';

> grant all privileges on db이름.* to 계정명@'localhost' identified by '비밀번호';

> flush privileges;

위 SQL문을 보면, 첫 번째 라인과 두 번째 라인이 다른 것을 알 수 있다.

 

차이점은, 접근 가능한 클라이언트 규모의 차이이다. 아래에 좀 더 상세히 설명하였다.

 

 계정명@'%' : 해당 계정이 모든 클라이언트에서 접근 가능하다.
 계정명@'localhost' : 해당 계정이 localhost(본인 pc)에서만 접근 가능하다. 

 

즉, 상황에 따라서 하나만 사용해도 되고, 전부 사용해도 문제는 없다. (해당 순서대로 꼭 입력해야 하는 것은 아니다!)

 

그 밖에 DB이름 다음에 나오는 '*'모든 권한을 의미한다.

 

즉, 위 SQL에서는 생성중인 계정에 대해 DB에 대한 모든 권한을 부여(grant)하고 있는 것이다.

 

완료 했다면, 대략 이런 비슷한 화면을 보고 있을 것이다.

 

 

계정명과 비밀번호를 부여한다.

 

 

 

2. 생성한 사용자로 접속하기

 

사용자도 생성되었으니, 해당 사용자로 직접 DB에 접속해보자.

 

⑴. 우선, 콘솔창(cmd)에서 다음 명령어를 실행한다.

> mysql -h호스트명 -u계정명 -p DB명

Ex.) > mysql -h127.0.0.1 -uhomeuser -p homedb

 

콘솔창(DBMS 모니터 x)에서 위와 같이 명령어를 입력 한다면, 맨 처음 root 계정으로 접속했을 때와 같은 순서를 거치게 된다. (사용할 계정하고 DB만 변경 된 것이기 때문)

 

아래와 같이 정상적으로 접속되면, DBMS 모니터(monitor)로 이동된다.

 

 

MariaDB는 접속된 DB명이 뜨게 된다.

 

 

정상적으로 접속이 되었는지 확인을 위해, DBMS version을 조회하는 쿼리문을 하나 날려보도록 하자.

mysql> select version();
MariaDB[(DB명)]> select version();

 

 

문제가 없다면, 아래와 같이 쿼리문이 잘 작동할 것이다.

 

 

DBMS version을 조회하는 쿼리문

 

 

오늘은 DB(DataBase)의 생성 부터, 사용자 생성과 접속까지 알아보았다.

 

공부를 통해 알아가는 중이라, 부족한 점을 많이 느끼는 중이다. 더욱 열심히 해야겠다...ㅠ

 

 


 

 

이 블로그는 개인이 혼자 공부해가며 내용을 정리하는 용도로 활용되고 있습니다.

잘못된 지식이나 이론을 게시하지 않도록 주의하고 있습니다.

 

'Database > MySQL(MariaDB)' 카테고리의 다른 글

MySQL DBMS 다운로드 및 설치  (0) 2023.10.30