MYSQL의 경우 웹서버 운영시 DB연결을 위해서 반드시 필요한 모듈로 이번편에서는 설치에대해서만 간단하게 알아보고 설정에 대해서는 추후 다시 알아보도록 하자.

 

설치의 경우 yum을 이용하여 설치 가능하나 Centos 7에서는 mysql 이 아닌 mariadb 로 설치가 되는점 참고바란다.  mariadb에 대해 자세히 알아보고 싶다면 아래 블로그를 참고하기 바란다. 

 
[Database] MySQL과 MariaDB 무엇이 더 좋을까?
MySQL 90년대 중반에 개발된 MySQL은 시장에서 사용할 수 있는 최초의 오픈 DB중 하나이며 가장 널리 사용되고 있는 관계형 데이터베이스 관리 시스템(RDBMS: Relational DBMS)이다. MySQL은 단순 쿼리 처리 성능..
loosie.tistory.com/366
 
 

 

※참고 - 22.09.02

기존 웹 서버에 mariadb 를 업그레이드 하였는데 이후에 메일 서버가 작동을 안해서 보니 postfix 와 dovecot-mysql 가 삭제되는 현상이 있었다. 

 

종속성인지 모르겠으나 yum.log 를 보니 아래와 같이 되어있었다. 물론 아래 데몬 및 모듈은 높은 버전을 삭제해야하니 제거되는게 맞다.

Aug 29 21:03:38 Erased: 1:mariadb-libs-5.5.68-1.el7.x86_64
Aug 29 21:03:32 Erased: 1:mariadb-server-5.5.68-1.el7.x86_64
Aug 29 21:03:34 Erased: 1:mariadb-5.5.68-1.el7.x86_64
Aug 29 21:03:35 Erased: perl-DBD-MySQL-4.023-6.el7.x86_64

 

하지만 밑에 dovcot-mysql 패키지와 postfix 데몬은 다시 설치해줄것도 아니면서 왜 삭제를 하는지 정확하게 모르겠다. 검색해보면 종속성 때문에 삭제된다고 하는데 정말 난감하다. 

Aug 29 21:03:35 Erased: 1:dovecot-mysql-2.2.36-8.el7.x86_64
Aug 29 21:03:37 Erased: 2:postfix-2.10.1-9.el7.x86_64

 

물론 데몬만 삭제되고 설정은 그대로 남아있어서 다시 설치하긴했는데 postfix 같은 경우 설치시 기존 설정 파일을 덮어쓰기 때문에 백업이 필요하여  했는데 디렉토리 명을 postfix.bak로 하였더니 설치후에 보니 해당 디렉토리의 기존 파일도 삭제를 해버리는게 아닌가..(이건 정말 이유를 알고싶다), 암튼 다행히 디렉토리 안에 설정파일 백업해 둔게 많아서 짜집기 해서 맞추긴했는데 백업 이후에 세팅한 값은 알 수가 없다.. 

 

모듈이나 패키지 설처시 yum -y 로 설치한 내 잘못도 있긴하지만 아무도 이런 내용은 명시를 해놓지 않는다. 아무튼 설치전 서버가 신규로 설치된 서버가 아닐 시 반드시 모듈 확인하고 설치하길 바란다. 

 

 

yum 저장소에 mariadb 추가 

yum 저장소의 경우 우리가 의존성 패키지를 설치할때 yum 명령어를 쓰게 되는데 이때 설치에 필요한 환경 구성들을 정의해 놓은 파일정도로 이해하면 된다.  

 

우선 vi 편집기를 통해 mariadb 저장소 파일을 추가해보자

[root@localhost ~]# vi /etc/yum.repos.d/mariadb.repo

 

파일 내용의 경우 아래와 같이 설정해 주면 된다.  (참고로 여기서 mariadb 버전은 10.8을 설치하기 때문에 다른 버전이 필요할 경우 baseurl 을 원하는 버전으로 변경해 주기 바란다. )

[mariadb]
name = MariaDB
baseurl = https://tw1.mirror.blendbyte.net/mariadb/yum/10.8/centos7-amd64
gpgkey=https://tw1.mirror.blendbyte.net/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1

 

 

mariadb 설치 및 부팅 시 서비스 등록

yum 을 이용하여 아래의 명령어로 설치가 가능하다. 

[root@localhost ~]# yum -y install MariaDB

 

설치가 완료되면 서비스를 시작해 준다. 

[root@localhost ~]# systemctl start mariadb

 

정상 설치가 되었는지 아래 명령어로 버전정보를 확인해보자 (설치한 버전이 뜨면 정상 설치가 된것이다. 만약 아래와 같이 버전 정보가 아닌 에러가 뜬다면 그때부턴 고생길이 시작일 수 있다..)

[root@localhost ~]# mariadb --version
mariadb  Ver 15.1 Distrib 10.8.4-MariaDB, for Linux (x86_64) using readline 5.1

 

그다음 아래의 명령어를 통해 부팅시 자동으로 실행되도록 해준다. 

[root@localhost ~]# systemctl enable mariadb

 

 

mysql 에서 root 비밀번호 설정하기

최초 설치를 한 후 반드시 root 비밀번호를 설정해 주어야한다.  아래 명령어를 통해 mysql 을 root 로 접속해 보자

[root@localhost ~]# mysqladmin -u root

 

접속 후 mysql 쿼리문을 아래와 같이 실행하여 변경해 준다. password 는 반드시 사용할 비밀번호를 입력해준다. 

MariaDB [mysql]> use mysql;
Database changed

MariaDB [mysql]> SET PASSWORD FOR 'root'@'localhost' = PASSWORD("password");
Query OK, 0 rows affected (0.001 sec)

MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.001 sec)

MariaDB [mysql]> \q

 

 

mysql 기본설정 

운영서버로 사용하기위해선 많은 설정등이 필요하지만 이번편에서는 간단한 기본설정까지만 보도록 하자.

 

이전에는 mysql 설정 시 /etc/my.cnf 에서 모두 설정하였지만 버전이 올라감에 따라 include 로 분리되어 있는 것을 확인가능하다. 아래 명령어를 통해 include 되는 파일들을 확인 가능하다. 

[root@localhost ~]# cd my.cnf.d/
[root@localhost my.cnf.d]# ll
-rw-r--r--. 1 root root  763  8월 10 21:00 enable_encryption.preset
-rw-r--r--. 1 root root  232  8월 10 21:00 mysql-clients.cnf
-rw-r--r--. 1 root root 1080  8월 10 21:00 server.cnf
-rw-r--r--. 1 root root  120  8월 10 21:00 spider.cnf

 

파일을 수정할때는 가독성을 위해 전부 삭제하고 진행할 예정이니 /etc/my.cnf 파일을 한번 백업하고 진행하자 

[root@localhost ~]# cp /etc/my.cnf /etc/my.cnf.bak

 

일단 설정할 파일인 my.cnf 파일만 열어서 아래와 같이 언어셋을 수정해준다. 참고로 아래는 기본적으로 설정되는 값이니 서버 환경구성이 다를  경우 구글 검색을 통해 직접 설정이 필요하다. 

[root@localhost ~]# vi /etc/my.cnf

 

파일을 열고 내용을 전부 지운 후 아래의 내용으로 설정해 준다. ( vi 명령어를 연후 키보드 숫자 100 dd 를 입력해 주면 현재 포커스(커서) 위치로부터 100줄이 삭제된다.)

[mysqld]
default_storage_engine=innodb

init-connect='SET NAMES utf8mb4'
lower_case_table_names=1
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci


[client]
port=3306
default-character-set = utf8mb4

[mysqldump]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

 

수정이 완료되었다면 mariadb 를 재시작해준다. 

[root@localhost ~]# systemctl restart mariadb

 

mysql 에 접속하여 status 명령어를 통해 정상적으로 설정한 언어셋이 적용되었는지 확인해보자 (root 에서는 설정에 따라 mysql 접속시 비밀번호가 필요없다.)

[root@localhost ~]# mysql -uroot
MariaDB [(none)]> status
--------------
mysql  Ver 15.1 Distrib 10.8.4-MariaDB, for Linux (x86_64) using readline 5.1

Connection id:          3
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server:                 MariaDB
Server version:         10.8.4-MariaDB MariaDB Server
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
UNIX socket:            /var/lib/mysql/mysql.sock
Uptime:                 1 min 48 sec

Threads: 1  Questions: 4  Slow queries: 0  Opens: 17  Open tables: 10  Queries per second avg: 0.037
--------------

 

정상적으로 반영이 되었다면 위와 같이 설정한 언어셋 utf8mb4가 적용되어있을 것이다. 

 

 

참고사이트
 
[Linux] CentOS7에 MariaDB 설치하기
안녕하세요. 이번에는 CentOS7에 MaraDB 설치 및 설정에 대한 포스팅을 진행하겠습니다. MariaDB는 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)이다. MySQL과 동일한 소스 코드를 기반으로 하며, GPL v2..
bamdule.tistory.com/59
 
MySQL character set 확인 및 변경
언제나 한글 깨짐 문제로 인한 캐릭터 셋 확인 및 변경 작업이 많다. 일단 DB에 저장된 한글이 클라이언트에서 안 보이는 경우는 클라이언트의 인코딩 값을 변경해서 조치를 할 수 있다. 그러나 저장 당시의 인코..
bstar36.tistory.com/307