본문 바로가기

MySQL

MariaDB 설치 및 계정 관리

[1. Windows 에서 설치]

아래 공식 홈페이지에서 설치 파일을 다운 받은 후 설치한다.

https://mariadb.org/

 

디폴트 설정 값을 건들지 않았다면, heidisql 이라는 프로그램도 같이 설치된다.

설치 직후, 사용 가능한 계정은 관리자 root 만 존재하며, 여기서 root 계정의 비밀번호를 설정한다.

 

root 유저를 외부에서 접속 할 수 있는지 체크한다.

(보안을 위해서는 해당 설정은 하지 않는 것이 좋음)

 

문자열 처리를 위해 UTF-8 을 기본으로 설정한다.

 

maria db 를 윈도우 서비스에 등록하며, 

maria db 의 기본 포트는 3306 이다.

 

설치 후, 접속 포트 및 데이터가 저장 될 디렉터리 설정은  

C:\Program Files\MariaDB 10.6\data\my.ini 에서 변경 할 수 있다.

 

maria db 를 윈도우 서비스에 등록하였으므로, db 서버의 시작과 중단은 서비스 탭에서 제어 할 수 있다.

 

 

 

[2. DB서버 접속]

> mysql -h <host 주소> -P <포트번호{3306 일 경우 생략}> -u <user id> -p<암호>

ex)

> mysql -h 127.0.0.1 -u root -proot

또는

> mysql -h 127.0.0.1 -u root -p

password 입력 

 

이 외 다양한 옵션은 mysql --help 로 확인 가능

 

 

 

[3. 계정 조회]

> use mysql;

> select user, host from user;

Host 는 DB 서버에 User id 로 접속 가능 한 Host 를 의미한다.

"%" 는 모든 host 에서 접속가능한 것을 의미한다.

mariadb.sys 라는 계정은 로컬에서만 접속이 가능하다.

 

 

 

[4. 계정 생성]

> create user '<id>'@'<접속대역>' identified by '<pw>'

 

ex)

> create user 'elastic'@127.0.0.1 identified by 'elastic'

# elastic 이라는 user 는 로컬에서만 접속이 가능하며, pw 는 elastic

# 접속 시 127.0.0.1 을 명시해야 하며, localhost 로 명시할 경우 접속이 안됨.

# localhost 에 대해서 별도로 계정을 생성해주어야 함.

 

> create user 'kibana'@'%' identified by 'kibana';

# kibana 라는 user 는 모든 대역에서 접속이 가능하며, pw 는 kibana

 

> create user 'filebeat'@'192.168.0.%' identified by 'filebeat';

# filebeat 라는 user 는 ip 대역 192.168.0.x 에서 접속이 가능함. 

 

아래와 같이 추가된 계정을 확인 할 수 있다.

 

 

[5. 계정 권한 부여]

계정 생성 직후, 해당 계정으로 그 어떤 DB 도 조회 할 수 없으며,

해당 계정이 접근(조회, 수정, ...) 가능한 DB 에 대한 권한을 부여해야 한다.

 

> grant <권한> on <db 명>.<table 명> to '<user>'@'<host>'

> flush privileges; 

 

권한은 아래와 같이 존재한다.

all privileges
   모든 권한

select
   read 권한

insert, update, delete
   write 권한

 

권한 부여 후, flush 를 해주어야 반영된다.

 

ex)

> grant all privileges on mysql.user to 'elastic'@'127.0.0.1';

> grant select on mysql.* to 'kibana'@'%';

> flush privileges; 

 

 

 

[6. 계정 권한 조회]

> show grants for '<user>'@'<host>'

> show grants for current_user

 

 

 

[7. 계정 비밀번호 변경]

> alter user '<user>'@'<host>' identified by '<new pw>'

 

 

 

[8. 계정 삭제]

> drop user '<user>'@'<host'>

 

 

 

[9. Linux 에서 설치]

$ sudo apt install mariadb-server

$ sudo apt install mariadb-client

# mariadb-client 는 server 설치 시 함께 설치된다.

 

최초 접속은 아래와 같이 할 수 있다.

$ sudo mysql

 

===== 기타 설정 관련 =====

설정 파일 읽는 순서

1. /etc/mysql/mariadb.cnf

=> 전역 기본 설정

2. /etc/mysql/conf.d/*.cnf

=> 전역 옵션 설정

3. /etc/mysql/mariadb.cnf/*.cnf

=> MariaDB-only 옵션 설정

4. ~/my.cnf

=> 유저 옵션 설정

 

/etc/mysql/my.cnf

  • /etc/mysql/conf.d
    => 큰 의미 없는 듯.
  • /etc/mysql/mariadb.conf.d
    => 50-server.cnf
    ==> port, datadir, log_error 등 설정 가능
    ==> 기본 bind-address 가 127.0.0.1 이므로, 최초 실행 시 로컬에서만 접속이 가능 

 

===== datadir 변경 =====

$ sudo service mysql stop

$ sudo rsync -av /var/lib/mysql/ <변경 할 디렉터리>

=> /var/lib/mysql 로 명시하면 변경 할 디렉터리에 /var/lib/mysql 폴더가 복사되므로 주의

=> 이 후 설정 파일에 <변경 할 디렉터리>/mysql 로 하면 상관 없음.

=> 보통 소유자 및 그룹까지 같이 변경해 줌

 

$ mv /var/lib/mysql /var/lib/mysql.bak

=> backup 및 폴더 이름 변경

 

$ ls -ld <변경 할 디렉터리>

=> 소유자 및 그룹이 mysql 로 설정되었는지 확인

 

$ vim /etc/mysql/maraidb.conf.d/50-server.cnf 

=> datadir 값을 변경

 

$ sudo service mysql start

 

# 주의 사항: datadir 을 /home 내 경로로 변경할 경우 추가 설정이 필요

# sudo vim /usr/lib/systemd/system/mariadb.service

# ProtectHome=false

 

[ref]

https://velog.io/@gillog/MySQL-%EC%9C%A0%EC%A0%80-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0

https://jang2r.tistory.com/41

https://stackoverflow.com/questions/38529205/mariadb-cannot-start-after-update-warning-cant-create-test-file-home-mysql

'MySQL' 카테고리의 다른 글

MySQL, innodb_autoinc_lock_mode  (0) 2023.06.21
MySQL, SQL_SAFE_UPDATES  (0) 2023.06.15
MySQL. LAST_INSERT_ID  (0) 2023.06.15
mysql 공간 쿼리  (0) 2023.05.24
partition 에 대해서  (0) 2022.10.04