mysql_8_기본설정사항

MySQL 8 기본 설정사항

  • /app/mysql 경로에 zip 방식으로 설치한 경우
  • DATA경로는 /app/mysql_data 라고 가정

/etc/my.cnf 파일 생성

[mysqld]

### 이전버전 인증 플러그인 사용
default-authentication-plugin=mysql_native_password

datadir=/app/mysql_data
socket=/tmp/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/app/mysql/mysqld.pid

### 대소문자 구분 비활성화
lower_case_table_names=1

### Password validation (반드시 초기 구성 완료 후 활성화)
#validate_password.length=8
#validate_password.mixed_case_count=0
#validate_password.number_count=0
#validate_password.policy=LOW
#validate_password.special_char_count=0

### slow query
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
log_slow_rate_limit = 1
log_slow_verbosity = query_plan
log_slow_admin_statements
# slow_query_log = 1(사용), 로그파일 위치는 /var/log/mysql/mysql-slow.log
# long_query_time = 2 (수행시간이 2초 넘는 쿼리를 수집)

### tunning 
max_connections = 250
#max_connect_errors=10000
#wait_timeout = 28800
#group_concat_max_len=4M
#skip_name_resolve
#performance_schema_hosts_size=0
#host_cache_size=0


# EOF

먼저 systemd용 /usr/lib/systemd/system/mysqld.service 스크립트 파일을 생성한다.


[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql

# Have mysqld write its state to the systemd notify socket
Type=notify

# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0

# Start main service
ExecStart=/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf $MYSQLD_OPTS 

# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql

# Sets open_files_limit
LimitNOFILE = 10000

Restart=on-failure

RestartPreventExitStatus=1

# Set environment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1

PrivateTmp=false

이후 권한을 설정해준다.

chmod 644 /usr/lib/systemd/system/mysqld.service
systemctl enable mysqld.service

추가적으로 PATH환경변수 등록을 위해 아래와 같이 /etc/profile.d/mysql.sh 파일을 생성해준다.

export PATH="/app/mysql/bin:$PATH"
user$ sudo ./mysqld \
--defaults-file=/etc/my.cnf \
--initialize \
--user=mysql \
--lower_case_table_names=1 \
--basedir=/app/mysql \
--datadir=/app/mysql_data
로그인하면 댓글을 남길 수 있습니다.
  • mysql_8_기본설정사항.txt
  • 마지막으로 수정됨: 2023/09/21 05:15
  • 저자 koov