728x90

준비물

mysql 설치 rpm 파일
Centos7버전 OS

root 유저 필요

 

 

설치방법

mysql 설치 다운로드 링크

https://www.mysql.com/products/community/

 

Download MySQL Community Edition 클릭

 

MySQL Community Server 클릭

 

OS glibc 및 bit에 맞는 바이너리 다운로드

 

리눅스 glibc 버전 확인

getconf -a | grep glibc

 

리눅스 비트 확인

 

22.06.13 기준 glibc는 테스트 밖에 존재하지 않아 2.12파일 다운로드하여 설치 함


유저 생성

useradd mysql
passwd mysql
mysql

 

디렉터리 생성

mkdir /mysql_engine
mkdir -p /mysql_dump/error
mkdir /mysql_data
mkdir /mysql_export
mkdir -p /mysql_data/mysql
mkdir -p /mysql_dump/binlog
mkdir -p /mysql_dump/relaylog

 

생성한 디렉터리 권한 변경

chown -R mysql. /mysql_engine
chown -R mysql. /mysql_dump
chown -R mysql. /mysql_data
chown -R mysql. /mysql_export

chmod -R 770 /mysql_engine
chmod -R 770 /mysql_dump
chmod -R 770 /mysql_data
chmod -R 770 /mysql_export

 

다운로드 파일 /mysql_engine에 옮긴 후 압축 해제

cd /mysql_engine
tar -Jxvf mysql-8.0.29-linux-glibc2.12-x86_64.tar.xz

 

vi /etc/my.cnf 설정파일 변경(실제 파일에 적용 시, #로 되어있는 주석은 모두 삭제 후 적용)

[client]                                                                            #mysql 8 버전에서는 client 소켓도 지정 필요
port=3306
socket=/mysql_data/mysql.sock

[mysqld]
user=mysql
authentication_policy=mysql_native_password

datadir=/mysql_data/data
port=3306
socket=/mysql_data/mysql.sock
pid-file=/mysql_data/mysqld.pid

server-id=1
log_error=/mysql_dump/error/mysql.err                              #에러 로그 위치
log_bin=/mysql_dump/binlog/mysql-bin                              #바이너리 로그 위치, replication 시 필수
relay-log=/mysql_dump/relaylog/relay-log
relay-log-index=/mysql_dump/relaylog/relay-log.index
relay_log_purge=0                                                               #MHA 구성 시 필수
sync_binlog=1
binlog_cache_size=1M                                                        #로그 캐시 사이즈, 필수 사항 아님
max_binlog_size=1G
binlog_expire_logs_seconds=86400

# Character set Config
character-set-client-handshake=FALSE
character-set-server=utf8mb4
init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8

 

설정한 파일 권한 변경 및 디렉터리 명 변경

chown -R mysql. /mysql_engine
chmod -R 775 /mysql_engine

chown mysql. /etc/my.cnf
chmod 644 /etc/my.cnf

mv mysql-8.0.29-linux-glibc2.12-x86_64 mysql

 

계정 변경 및 mysql 초기화

su - mysql
/mysql_engine/mysql/bin/mysqld --initialize --user=mysql

 

초기화 에러 확인

cat /mysql_dump/error/mysql.err

 

프로파일 설정(빨간색 부분만 추가)

vi ~/.bash_profile

PATH=$PATH:$HOME/.local/bin:$HOME/bin:/mysql_engine/mysql/bin

export PATH

alias mm='mysql -u root -p'

 

프로파일 적용

sh ~/.bash_profile

 

mysql 실행 및 서비스 확인

/mysql_engine/mysql/bin/mysqld_safe --user=mysql &
ps -ef | grep mysql

 

로그인, 로그인 시 비밀번호는 초기화 에러 확인 시 나왔던 정보 입력

/mysql_engine/mysql/bin/mysql -u root -p
혹은 mm(alias 설정한 이름)

 

root 비밀번호 변경

alter user 'root'@'localhost' identified by 'password1!';

 

설정 정보 확인

\s

 

mysql 보안 설치

exit
/mysql_engine/mysql/bin/mysql_secure_installation

 

추후 mha 설정을 고려한다면 LOW 설정을 권장함(mha시 비밀번호에 특수문자 있으면 정상 동작이 안됨)

 

보안 설정은 말 그대로 '보안'에 관한 설정이므로 본인 사항에 맞게 설정

 

DB 시작 및 종료 스크립트 생성, 필수는 아니나 편의성 측면에서 생성

vi /mysql_engine/mysql/bin/dbstartup
#/!/bin/bash
/mysql_engine/mysql/bin/mysqld_safe --user=mysql &
 
vi /mysql_engine/mysql/bin/dbshutdown
#!/bin/sh
/mysql_engine/mysql/bin/mysqladmin shutdown -u root -p
 
chmod 770 /mysql_engine/mysql/bin/dbstartup
chmod 770 /mysql_engine/mysql/bin/dbshutdown

 

기동 및 정지 테스트

dbshutdown
ps -ef | grep mysql
dbstartup
ps -ef | grep mysql

 

+ Recent posts