티스토리 뷰
아래와 같이 설치 해보시면 됩니다.
▶필요사항
OS : Redhat 계열 Linux 64bit
메모리 : 4GB 이상
CPU : 4core 이상
디스크 : 필수 2개 파티션(엔진/데이터 영역)
엔진영역(/mariadb 또는 /mysql) : 5GB
데이터영역(/data) : 산정된 예상 데이터량의 약 150% 필요
▶설치파일 준비
버전 선택은 기본적으로 아래와 같은 룰을 적용
*메이저 버전은 가장 최신 버전의 한 단계 전 버전으로 선택
- 다운로드
*마이너 버전은 가장 최신 버전으로 선택
설치 시점에 가장 최신 버전의 percona tool-kit 과 percona xtrabackup도 함께 설치한다
▶MySQL 엔진 설치
1. mysql 사용자 생성 및 비밀번호 지정
useradd mysql -d /mysql
passwd mysql
2. 필수 디렉토리 생성 및 정리
mkdir -p /mysql/sktest
mkdir -p /mysql/sktest/script
mkdir -p /data/sktest
mkdir -p /data/sktest/datadir
mkdir -p /data/sktest/tmpdir
mkdir -p /data/sktest/logdir
mkdir -p /data/sktest/logdir/old_err
mkdir -p /data/sktest/logdir/old_slow
mkdir -p /data/sktest/binlog
mkdir -p /data/sktest/relaylog
mkdir -p /data/sktest/binary_backup
chown -R mysql:mysql /mysql
chown -R mysql:mysql /data
rm -rf /mysql/lost+found
rm -rf /data/lost+found
3. mysql 설치 파일 준비
mv /tmp/mysql*.tar.gz /mysql/sktest
chown mysql:mysql -R /mysql/sktest
4. mysql 계정으로 변경
su - mysql
export DBNM=sktest
cd sktest
5. 설치 파일 압축풀기
export MY_VER=`find -name 'mysql*.tar.gz' | tr '/' '\n' | tail -1 | sed 's/.tar.gz//g'`
export XBACK_VER=`find -name '*xtrabackup*.tar.gz' | tr '/' '\n' | tail -1 | sed 's/.tar.gz//g'`
export PTOOL_VER=`find $FILELOC -name '*toolkit*.tar.gz' | tr '/' '\n' | tail -1 | sed 's/.tar.gz//g'`
tar xvfz ${MY_VER}.tar.gz
tar xvfz ${XBACK_VER}.tar.gz
tar xvfz ${PTOOL_VER}.tar.gz
6. 설치 파일 백업
mv *.tar.gz /data/sktest/binary_backup/backup
7. 표준 디렉토리 명칭으로 심볼릭 링크 생성
ln -s ${MY_VER} instance
ln -s ${XBACK_VER} xtrabackup
ln -s ${PTOOL_VER} toolkit
8. /data/sktest/my.cnf 설정 편집
vi /data/sktest/my.cnf
[mysqld]
my.cnf 설정 방법
port = 3306
socket = /tmp/mysql.sock
user = mysql
server-id = 1
basedir = /mysql/sktest/instance
datadir = /data/sktest/datadir
tmpdir = /data/sktest/tmpdir
character-set-server = utf8
collation-server = utf8_bin
default_storage_engine = InnoDB
#autocommit = 0
#skip-name-resolve
#skip-external-locking
event-scheduler = 0
sysdate-is-now
performance_schema = on
back_log = 100
max_connections = 500
max_connect_errors = 100
thread_cache_size = 10
table_open_cache = 2048
wait_timeout = 86400
max_allowed_packet = 32M
max_heap_table_size = 128M
tmp_table_size = 128M
sort_buffer_size = 256K
join_buffer_size = 256K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
query_cache_type = 0
query_cache_size = 0
query_cache_limit = 0
transaction_isolation = READ-COMMITTED
#plugin-load = auth_socket=auth_scket.so
#thread_concurrency = 6
thread_stack = 240K
### InnoDB Specific options #
innodb_data_file_path = ibdata1:10M:autoextend
innodb_file_per_table = 1
innodb_buffer_pool_size = 1G
innodb_log_buffer_size = 32M
innodb_log_file_size = 32M
innodb_log_files_in_group = 4
innodb_open_files = 1024
innodb_autoextend_increment = 256
innodb_fast_shutdown = 1
#innodb_use_sys_malloc = 32M
innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_flush_log_at_trx_commit = 2
innodb_flush_method=O_DIRECT
innodb_io_capacity = 1000
innodb_concurrency_tickets = 24
innodb_thread_concurrency = 16
innodb_commit_concurrency = 0
innodb_change_buffering = 'all'
#innodb_additional_mem_pool_size = 16M
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
### MyISAM Specific options ###
key_buffer_size = 64M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 4G
myisam_repair_threads = 1
#myisam_recover=BACKUP
ft_min_word_len = 4
### Loging options ###
log-bin=/data/sktest/binlog/bin.log
binlog_cache_size = 2M
max_binlog_size = 512M
expire_logs_days = 7
general_log = 0
slow_query_log = 1
long_query_time = 2
slow_query_log_file = /data/sktest/logdir/slow.log
log_error = /data/sktest/logdir/error.log
general_log_file = /data/sktest/logdir/general.log
▶참고사항
sktest : 직접 DB명으로 고쳐서 사용
user : MySQL을 기동할 OS계정명. mysql을 사용하지 않는다면 바꿀것
server-id : 리플리케이션 슬레이브로 사용될 경우 1보다 큰 숫자를 차례로 사용(master-slave 구조에서 동일한 server-id 사용하면 안됨)
plugin-load : MySQL을 사용할 경우는 auth_socket=auto_socket.so 으로 변경
innodb_buffer_pool_size : 물리 메모리의 50% 정도로 설정
innodb_log_buffer_size, innodb_log_file_size : 물리 메모리의 1/64 정도로 설정
skip_log_bin : 백업 설정이 필요하거나, 리플리케이션 마스터로 사용될 경우 log_bin = /data/sktest/binlog/binlog 로 변경
위 설정 사항들은 매우 일반적인 값들로 채워져 있으니, 환경에 맞게 수정해서 사용!
▶mysql 계정의 .bash_profile 수정
echo '' >> ~/.bash_profile
echo export DBNM=sktest >> ~/.bash_profile
echo export PATH=/mysql/sktest/instance/bin:/mysql/sktest/xtrabackup/bin:/mysql/sktest/toolkit/bin:'$PATH' >> ~/.bash_profile
echo alias cdmy=“’cd /mysql/sktest/instance’” >> ~/.bash_profile
echo alias cdsp=“’cd /mysql/sktest/scripts’” >> ~/.bash_profile
echo alias cddt=“’cd /data/sktest/datadir’” >> ~/.bash_profile
echo alias cdlog=“’cd /data/sktest/logdir’” >> ~/.bash_profile
echo alias showerr=“’cat /data/sktest/logdir/error.log’” >> ~/.bash_profile
source ~/.bash_profile
▶데이터베이스 초기화
cdmy
[5.6 이하]
./scripts/mysql_install_db --defailts-file=/data/sktest/my.cnf
[5.7 이상]
./mysqld --initialize --user=mysql --basedir=/mysql/sktest/instance --datadir=/data/sktest/datadir/
▶초기 설정 및 운영 스크립트 추가
1.데이터베이스 기동 스크립트 작성
cat > /mysql/sktest/scripts/startup.sh
<#!/bin/sh
source ~mysql/.bash_profile
cd /mysql/sktest/instance
./bin/mysqld_safe --defaults-file=/data/sktest/my.cnf &
EOF
2.데이터베이스 중단 스크립트 작성
vi /mysql/sktest/scripts/shutdown.sh
<#!/bin/sh
source ~mysql/.bash_profile
cd /mysql/sktest/instance
./bin/mysqladmin shutdown -uroot -p
EOF
3.데이터베이스 접속 스크립트 작성
cat > /mysql/sktest/scripts/conn.sh <
#!/bin/sh
source ~mysql/.bash_profile
cd /mysql/sktest/instance
./bin/mysql -h localhost -uroot -p
EOF
4.로그파일 보관주기 관리용 스크립트 작성
cat > /mysql/sktest/scripts/logrotate.sh <
#!/bin/sh
source ~mysql/.bash_profile
cd /mysql/sktest/instance
DATE=`date -d '-1 days' +'%Y%m%d'`
mv /data/sktest/logdir/error.log /data/sktest/logdir/oldlog/old_error/error_${DATE}.log
mv /data/sktest/logdir/slow.log /data/sktest/logdir/oldlog/old_slow/slow_${DATE}.log
./bin/mysql -h localhost -ulogrotate -e "flush logs"
find /data/sktest/logdir/oldlog/old_error -name '*.log' -ctime +180 -exec rm -f {} ';'
find /data/sktest/logdir/oldlog/old_slow -name '*.log' -ctime +180 -exec rm -f {} ';'
EOF
5.데이터베이스 기동 & 중단 & 재기동(DB 구동 테스트 겸 스크립트 테스트)
sh startup.sh
ps -ef | grep mysqld
sh shutdown.sh
Enter password: (초기엔 암호 없음-그냥 엔터, 5.7 이상에서는 설치시 errorlog에서 암호 확인)
ps -ef | grep mysqld
sh startup.sh
6.사용자 스키마, 권한 초기 설정
./bin/mysql -h localhost -uroot -p << EOF
drop database test;
delete from mysql.user where host not in ('localhost');
delete from mysql.user where user not in ('root');
create database sktest;
create user 'sktest'@'localhost';
grant all privileges on sktest.* to 'sktest'@'localhost';
update mysql.user set password=password('passwd') where user='sktest';
create user 'mysql'@'localhost' identified with auth_socket;
grant all privileges on *.* to 'mysql'@'localhost';
flush privileges;
commit;
exit
EOF
alter user 'root'@'localhost' identified by '1q2w3e4r%T';
7.접속 테스트
- 위에 설정한 계정 정보로 로그인 잘 되는지 확인.
<<OS계정 mysql에서 DB계정 mysql로 암호 없이 접속>>
./bin/mysql -h localhost -umysql
exit
<>
./bin/mysql -h localhost -uroot -p
<>
select user,host,password from mysql.user
show databases;
exit
8.crontab 등록 및 스크립트 테스트
<<스크립트 잘 수행되는지 확인>>
/bin/sh /mysql/sktest/scripts/logrotate.sh
ls /data/sktest/logdir/*
<>
$ crontab -e
1 0 * * * /bin/sh /mysql/sktest/scripts/logrotate.sh
'9. Mysql' 카테고리의 다른 글
2. [MySQL] 기본 명령어 익히기 (0) | 2020.04.18 |
---|---|
8. [MySQL] mysql 데이터샘플 밀어 넣기 & 백업복구 (0) | 2020.04.18 |
9. [MySQL]Workbench & DA# 모델링 그리기 (0) | 2020.04.18 |
7. [MySQL] MySQL 리플리케이션 UUID 관련 에러 (0) | 2020.04.15 |
5. [MySQL]리플리케이션 방법 (0) | 2020.04.15 |
- Total
- Today
- Yesterday
- (InstantClient) 설치하기(HP-UX)
- 우분투
- 5.4.0.1072
- 스토리지 클레스
- 버쳐박스
- 오라클 인스턴트클라이언트(InstantClient) 설치하기(HP-UX)
- 튜닝
- 트리이스
- [오라클 튜닝] instance 튜닝2
- 앤시블
- 오라클 트러블 슈팅(성능 고도화 원리와 해법!)
- 오라클 홈디렉토리 copy 후 startup 에러
- ORACLE 트러블 슈팅(성능 고도화 원리와 해법!)
- 코로나19
- 여러서버 컨트롤
- CVE 취약점 점검
- directory copy 후 startup 에러
- ubuntu
- MSA
- 테라폼
- startup 에러
- 커널
- 설치하기(HP-UX)
- 키알리
- 쿠버네티스
- [오라클 튜닝] sql 튜닝
- K8s
- Oracle
- 오라클
- pod 상태
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |