728x90
반응형

오늘은 오랜만에 기록이다.

요즘 프리 바람의나라 서버를 개발하고 있는 탓에 DB가 필요하다. 웹에서는 DB가 거의 기본이다 싶었지만, 예전에 DB 개념이 거의 전무하다 싶을 때에는 파일 입/출력을 통해서 유저, 아이템 데이터 등을 관리했다. 

그 결과, 텍스트화 되어 있는 게임 데이터를 모두 메모리에 올려다 놓고 거기에 항목에 대한 엑세스까지 행해야하므로 메모리는 메모리 대로 씨피유는 씨피유 대로 박살났던 기억이 있다... ㅠㅠ

아무튼 웹 개발 일을 하면서, 아! 이래서 DB를 썼어야했구나! 아주 절실하게 느끼곤 하는데, 바로 그 DB를 설치해볼 것이다.

그것도 우분투 20.04에서 Maria DB 를 설치해보았다.
우분투 22.04에서 Maria DB를 다시 설치해 보았고, 대체로 동작하지만 몇몇 부분은 누락되는 부분들을 수정했다.

 

1. 간단하게 바로 설치

sudo apt install mariadb-server

매우 간단하다.

 

2. 설정

설정이 좀 중요하다.

sudo mysql_secure_installation

위의 명령어를 작성하면 여러 설정을 위한 질문들이 나온다

Change the root password? [Y/n] n
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

읽어보면 바로 알 수 있는 내용들이다. 굵은 글씨는 내가 설정한 내용들이다.

22.04 ) 윗 부분에 없는 질문들은 모두 Default 값으로 엔터만 눌러 넘어가도 문제 없다.

maria db 설정에 성공한 모습이다

3. Character Set 설정

문자 설정 매우 중요하다. 한글이 파괴되면 얼마나 슬프단 말인가. 영어만 입력을 해야하니.. 다음과 같이 하면 된다.

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

위 명령어를 쳐서 general -> unicode로 변경한다. 혹시 모르니까 기존 줄(106)은 주석을 쳐뒀다.

4. Port 변경

remote 가 붙는 경우가 대부분이므로, 포트 설정을 중요하다. 로컬이어도 포트는 사용되니 중요하다.

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

마찬가지로 위 명령어를 통해 port 항목의 값을 원하는 포트 번호로 수정한다.

설정 파일 구조가 조금 바뀌었지만 자신 있게 변경하면 문제없다.

5. 외부 접속 허용 설정

remote 가 아닌 local 에서 다음과 같이 실행한다.

sudo mysql -u root  # sudo 계정으로 접속

이 아래 부터는 maria db 명령을 치는 곳에다가 쳐야한다.(위 명령을 통해 접속했으므로)

----------------------------------------------------------------------------------------------------------------------------------------------------------------
설치 당시(2023-05-09) Maria DB 10.6.12 버전에서는 mysql_native_password 가 기본으로 설정 되어 있는 것 같다.... 그래서 점선 사이 부분은 사실 상 커맨드 치지 않아도 된다.
----------------------------------------------------------------------------------------------------------------------------------------------------------------

use mysql; 
SELECT User, Host, plugin FROM mysql.user; 
update user set plugin='mysql_native_password' where user='root';
flush privileges; 
select user, host, plugin from user; 

위 명령들을 치면 A 사진이 B 사진 처럼 바뀌어야한다. ( Plugin 부분 )

A사진
B사진

----------------------------------------------------------------------------------------------------------------------------------------------------------------

그리고! 다음 명령어로 유저 별로 외부 접속을 허용시켜주자! 

GRANT ALL PRIVILEGES ON *.* TO '아이디'@'%' IDENTIFIED BY '패스워드';   
FLUSH PRIVILEGES; 

갑자기 뜬금 없이 아이디가 shyoo 가 나와서 헤깔렸을 수 있는데.. 새로운 아이디 생성은 다음과 같이 CREATE USER 갈겨주면 해결된다.
CREATE USER 'USERID'; // 지정한 이름으로 아이디 생성
CREATE USER 'USERID'@'%' identified by 'PASSWORD';
// 지정한 이름으로 아이디 생성 및 외부 접근 허용(%), 비밀번호 설정까지 함께 진행한다.
FLUSH PRIVILEGES; 

그러니까 기존에 아이디가 존재했다면 GRANT 명령을, 아이디를 새로 생성하는 경우에는 CREATE USER 명령을 갈기면 된다.

6. 서버 허용 아이피 변경

접속을 시도했는데 이런 오류가 뜬다면 문제가 있는 것이다.

그럴 때에는 다음과 같이 한다.

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

위 명령을 작성 후 그림과 같이 한다.

 

7. 서비스 재시작

sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
--------------------------------------------------------------------
Maria DB 10.06.12 버전에서는 명령 스크립트 이름이 mariadb로 변경됐다.
sudo /etc/init.d/mariadb stop
sudo /etc/init.d/mariadb start

위 명령어를 통해 종료와 시작이 잘 이루어지는지 확인을 한다.

성공한 모습이다.

8. 확인

 

728x90
반응형

+ Recent posts