DBMS/MariaDB MySQL

MariaDB Binary Install [마리아 수동설치 / 마리아 바이너리 설치]

Shirou_Techblog 2023. 6. 19. 14:52
반응형

관계형 데이터베이스 관리 시스템(RDBMS) MariaDB 설치를 위한 데이터베이스 환경과

configuration에 대한 설명을 상세하게 구분, 기술한다.

 

1. 설치 환경

  • OS Rocky 8
  • MariaDB 버전 선택
    MariaDB Server 10.5.X

2. MariaDB 설치 사전 준비사항

2.1 OS 계정 및 그룹

  • Group Name : mysql
    # groupadd -g 4000 mysql
  • User Name : mysql
    # useradd -u 4000 -g 4000 -d /home/mysql -m -s /bin/bash -c "Maria RDBMS Service" mysql

2.2 FileSystem 또는 디렉토리 환경

  • /maria : MariaDB Engine
  • /dblog : error log, slow log 등
  • /dbbinlog : Binary Log
  • /dbdata : 데이터파일
  • Command
    # mkdir /maria /dblog /dbbinlog /dbdata
    # mkdir /maria/tmp /dblog/slow /dblog/error
    # chown -R mysql.mysql /maria /dblog /dbbinlog /dbdata
이 블로그에서 사용되는 가상머신은 /data01, /data02를 사용할 것이며, 링크를 걸어 환경을 구성할 것이다.
# mkdir /data01/maria /data01/dbdata /data02/dblog /data02
/dbbinlog
# ln -s /data01/maria /maria
# ln -s /data01/dbdata /dbdata
# ln -s /data02/dblog /dblog
# ln -s /data02
/dbbinlog /dbbinlog
# mkdir -p /maria/tmp /dblog/slow /dblog/error

# chown -R mysql.mysql /data01 /data02
# chown -R mysql.mysql /maria /dblog /dbbinlog /dbdata

3 MariaDB 설치 진행

3.1 MariaDB Binary 파일 다운로드 및 OS 업로드

URL : https://mariadb.org/download/

MariaDB Server Version, Operating System, Architecture, Init System을 선택 후

Download 버튼을 클릭하여 파일 다운로드하여

OS /maria 위치에 업로드 한다.

3.2 Tar 파일 압축 해제

tar 파일을 해제하면, /maria 아래에 mariadb-10.5.XX-linux-systemd-x86_64디렉토리가 생성된다.

# cd /maria

tar -xvf mariadb-10.5.XX-linux-systemd-x86_64.tar.gz

3.3 심볼릭 링크 설정

이 과정은 생략해도 되며, 환경에 따라 변경하도록 하며 다음 단계에[서 경로를 조절 해주어야 한다.

# cd /maria

ln -s mariadb-10.5.XX-linux-systemd-x86_64 mariadb

다음과 같이 확인할 수 있다.

3.4 환경파일 설정

# vi /etc/profile

다음 내용을 추가한다.

export MARIADB_HOME=/maria/mariadb

export PATH=$PATH:$MARIADB_HOME/bin:.

 

Profile 변경내용 적용시킨다. [또는 재부팅]

# source /etc/profile

 

3.5 my.cnf 파일 수정

초기화 파라미터는 /etc/my.cnf가 기본경로이며, 기본경로로 설치를 권고한다.

기본 경로로 설정하지 않으면 각 클라이언트에서 my.cnf 경로를 설정해야 하므로, 일반적으로 /etc/my.cnf로 설정한다.

 [/etc/my.cnf]

OS 환경에 따라 변경될 수 있다.

파일이 없을 경우 root로 파일을 만들고 권한을 변경하도록 한다.\

# vi /etc/my.cnf

[client]
port   = 3306
socket = /maria/tmp/mysql.sock
default-character-set = utf8mb4
 
[mysqld]
###### General ######
user                   = mysql
port                   = 3306
socket                 = /maria/tmp/mysql.sock
basedir                = /maria/mariadb
datadir                = /dbdata
tmpdir                 = /maria/tmp
character-set-server   = utf8
collation-server       = utf8_general_ci
init_connect           = "set collation_connection=utf8_general_ci"
init_connect           = "set names utf8"
default-authentication-plugin=mysql_native_password
default-storage-engine = INNODB
#default-time-zone=Asia/Seoul
 
###### Other ######
max_connections                 = 1000
max_connect_errors              = 99999
max_allowed_packet              = 1024M
wait_timeout                    = 3600
interactive-timeout             = 3600
transaction_isolation           = REPEATABLE-READ
autocommit                      = FALSE
innodb_force_primary_key        = 0
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
log_bin_trust_function_creators = 1
skip-name-resolve
skip-host-cache
 
###### Session Memory ######
sort_buffer_size     = 1M
join_buffer_size     = 1M
read_buffer_size     = 1M
read_rnd_buffer_size = 1M
max_heap_table_size  = 128M
tmp_table_size       = 128M
 
 
###### MyISAM Engine ######
key_buffer_size        = 32M
myisam-recover-options = backup,force
 
 
###### InnoDB Engine ######
innodb_file_per_table           = 1
innodb_data_file_path           = ibdata1:100M:autoextend
innodb_data_home_dir            = /dbdata
innodb_write_io_threads         = 4
innodb_read_io_threads          = 4
innodb_io_capacity              = 200
innodb_thread_concurrency       = 0
innodb_max_dirty_pages_pct      = 90
innodb_stats_on_metadata        = 0
innodb_lock_wait_timeout        = 50
innodb_buffer_pool_size         = 1G
innodb_log_buffer_size          = 512M
innodb_log_file_size            = 2048M
innodb_log_files_in_group       = 6
innodb_open_files               = 8192
innodb_flush_log_at_trx_commit  = 1
innodb_flush_method             = O_DIRECT
innodb_print_all_deadlocks      = 1
innodb_doublewrite              = 1
 
###### Logging ######
#general_log              = 1
#general_log_file         = /dblog/general/mysql_general.log
slow_query_log            = 1
slow_query_log_file       = /dblog/slow/mysql_slow.log
long_query_time           = 1
log-error                 = /dblog/error/mysql_error.log
#binlog_expire_logs_seconds = 604800
## 7 (7*24*60*60) ##
 
 
###### Server Audit #####
#audit_log_file               = /dblog/audit/audit.log
#audit_log_policy             = LOGINGS, QUERIES
#audit_log_rotate_on_size     = 1G
#audit_log_connection_policy  = ALL
#audit_log_statement_policy   = ALL
 
 
###### Replication ######
server_id                       = 1
log-bin                         = /dbbinlog/mysql-bin.log
binlog_format                   = MIXED
#relay_log                      = /dblog/relay/mysql-relay.log
sync_binlog                     = 1
#replicate_do_db                =
#repl_semi_sync_master_enabled  = 1
#log_slave_updates              = 1
#read_only                      = 1
#skip-slave-start
 
[mysqldump]
quick
max_allowed_packet  = 1024M
default-character-set = utf8mb4
 
 
[mysqlhotcopy]
interactive-timeout  = 3600
 
 
[mysqld_safe]
open_files_limit  = 8192
 
 
[mysql]
default-character-set = utf8mb4

3.6 MariaDB 엔진 설치

$MARIADB_HOME/scripts/mysql_install_db --user=mysql

을 실행 후 정상적으로 설치가 되었다 다음과 같은 메시지를 확인할 수 있다.

- 내용 요약

두 개의 모든 권한 계정이 생성되었다.

root@localhost maria@localhost 계정이 만들어졌으며 패스워드는 없다.

필요시 연결하여 패스워드를 설정하도록 한다.

 

https://mariadb.com/kb에서 MariaDB 지식 베이스를 참조하십시오.

 

3.7 MariaDB 수동 기동 종료

  • MariaDB 수동 기동
    $MARIADB_HOME/support-files/mysql.server start
  • MariaDB 수동 종료
    $MARIADB_HOME/support-files/mysql.server stop
  • 기동 확인 및 로그 확인
    # ps -ef|grep mariadb
    기동되어 있는 프로세스를 확인 기동이 되지 않았다면
    /dblog/error/mysql_error.log 를 확인하여 기동 실패원인을 확인할 수 있다.

4. MariaDB 환경 설정

4.1 DB 접속

Rocky 8의 경우 Lib 파일 버전 문제로 접속시 에러가 발생할 것이다.

다음과 같이 링크를 걸어 조치한다.

# find / -name *libncurses*   >> 파일 찾기

# ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5

# ln -s /usr/lib64/libncursesw.so.6 /usr/lib64/libncursesw.so.5

# find / -name *libtinfo* >> 파일찾기

# ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5

예시)

 

4.2 최초 root 패스워드 변경

  • mariadb에 접속한다.
    $ mysql -uroot
  •  root 패스워드를 변경한다.
    mysql> alter user root@localhost identified by 'myadmin1!';
    Query OK, 0 rows affected (0.00 sec)
  • 패스워드 변경을 적용한다.
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
  • mysql 접속 종료
    mysql> quit
  • mariadb root 패스워드 확인 / 재접속
    $ mysql -uroot -p
    Enter password: 패스워드 입력[myadmin1!]

5. MariaDB systemctl 서비스 등록

기동 관련 스크립트 내용을 모두 찾아 변경 시 누락될 수 있으며 문제 발생시 에러 포인트를 찾기 여려울 수 있어 링크작업으로 대체 한다.

작업은 root 로 진행한다.

# ln -s /maria/mariadb /usr/local/mysql

 

서비스 파일 복사 및 설정

# cp /usr/local/mysql/support-files/systemd/mariadb.service /etc/systemd/system

[Link 작업이 되어있어야한다.]

$ vi /etc/systemd/system/mariadb.service

 

User=mysql

Group=mysql

고객사 환경에 따라 편집한다.

 

# systemctl daemon-reload

데몬리로드

# systemctl start mariadb

# systemctl state mariadb

# systemctl stop mariadb

 

반응형