application을 설치할 때, 보통 yum install ${application} 으로 설치할 것이다.
나는 이 때 두 가지 큰 단점이 있다고 본다.
- sudo가 필요하다.
- 일반 계정으로 application을 제어하기 어렵다.
그래서 나는 보통 application을 yum으로 설치하는 것보다 소스를 다운로드 받아 직접 빌드 및 설치하는 것을 선호 한다.
아래는 이번에 설치한 MariaDB를 설치한 과정이다.
1. mariadb 다운로드
$ sudo wget https://mirror.wtnet.de/mariadb//mariadb-10.5.11/source/mariadb-10.5.11.tar.gz
2. 필요 패키지 설치
$ sudo yum -y install gcc gcc-c++ libtermcap-devel gdbm-devel iconv flex gmp ncurses-devel cmake.x86_64 libaio libtermcap-devel gdbm-devel iconv flex gmp ncurses-devel cmake.x86_64 libaio zlib-devel gmp-devel gnutls-devel
3. (선택) cmake 설치
- Makefile을 만들기 위함
- make & make install 이 가능하다면 패스해도 무방함
$ sudo wget [https://cmake.org/files/v3.3/cmake-3.3.2.tar.Z](https://cmake.org/files/v3.3/cmake-3.3.2.tar.Z)
$ sudo tar -xzvf ./cmake-3.3.2.tar.Z
$ cd cmake-3.3.2
$ sudo ./bootstrap
$ sudo make
$ sudo make install
4. mariadb 설치
$ mkdir mariadb-build
$ sudo cmake ../mariadb-10.5.11
-DWITH\_READLINE=1
-DWITH\_SSL=bundled
-DWITH\_ZLIB=system
-DDEFAULT\_CHARSET=utf8
-DDEFAULT\_COLLATION=utf8\_general\_ci
-DENABLED\_LOCAL\_INFILE=1
-DWITH\_EXTRA\_CHARSETS=all
-DWITH\_ARIA\_STORAGE\_ENGINE=1
-DWITH\_XTRADB\_STORAGE\_ENGINE=1
-DWITH\_ARCHIVE\_STORAGE\_ENGINE=1
-DWITH\_INNOBASE\_STORAGE\_ENGINE=1
-DWITH\_PARTITION\_STORAGE\_ENGINE=1
-DWITH\_BLACKHOLE\_STORAGE\_ENGINE=1
-DWITH\_FEDERATEDX\_STORAGE\_ENGINE=1
-DWITH\_PERFSCHEMA\_STORAGE\_ENGINE=1
-DINSTALL\_SYSCONFDIR=${app-path}/mariadb/etc
-DINSTALL\_SYSCONF2DIR=${app-path}/mariadb/etc/my.cnf.d
-DMYSQL\_TCP\_PORT=13306
-DCMAKE\_INSTALL\_PREFIX=${app-path}/mariadb
-DMYSQL\_DATADIR=${data-path}/mariadb
-DMYSQL\_UNIX\_ADDR=${app-path}/mariadb/socket/mysql.socket
$ sudo make
$ sudo make install
5. 설정 수정
- my.cnf 파일 수정
\[mysqld\] basedir=${app-path}/mariadb datadir=${data-path}/mariadb
- 에러로그
log-error = ${log-path}/mariadb/error/error.log
- 바이너리 로그
log-bin=${log-path}/mariadb/binary/binary.log binlog\_cache\_size=2M # 로그 캐시 사이즈
max\_binlog\_size=512M # 로그 최대 사이즈
expire\_logs\_days=7 # 보관 기관
- DB 사용자 설정하기 ( script )
./scripts/mariadb-install-db --defaults-file=${app-path}/mariadb/etc/my.cnf
6. 서비스 등록 및 DB 시작하기
- 서비스 파일 작성
$ sudo touch /etc/systemd/system/mariadb.service
- 서비스 등록
sudo systemctl enable mariadb.service sudo systemctl start mariadb.service
7. 추가 DBMS 내부 작업
- 첫 설치 후에는 root 계정으로 비밀번호 없이 접근한다.
sudo ./mysql -u root
- 불필요 계정을 삭제하고, 사용할 아이디와 비밀번호를 생성해준다.
delete from mysql.user where User ='삭제할 아이디';
delete from mysql.db where User ='삭제할 아이디';
flush privileges;
grant all privileges on _._ to '${ID}'@'localhost' identified by '${PASSWORD}';
기타 : 심볼릭 링크 걸기
- 이렇게 심볼릭 링크를 걸어주게 되면, 버전을 업그레이드 할 때 해당 링크만 연결 / 해제하며 운영할 수 있다.
$ sudo ln -s ${app-path}/mariadb-10.5.11 ${app-path}/mariadb
반응형
'개발 > 서버 플랫폼' 카테고리의 다른 글
root 계정 없이 서비스 운영하기 (0) | 2021.10.01 |
---|---|
setuid, setcap을 활용하여 root 계정 없이 서비스를 운영하는 방법 (0) | 2021.09.28 |
Centos7 방화벽 사용하기 (0) | 2021.01.18 |
pyenv 사용하기 (0) | 2020.07.22 |
Docker에 Hadoop올리기 (0) | 2020.07.18 |