728x90
우분투에 MySQL을 바이너리(Generic Binaries) 파일로 설치하는 방법
요구사항
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04 (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
MySQL 설치
libaio 패키지 확인
dpkg -l | grep libaio
$ dpkg -l | grep libaio
ii libaio1:amd64 0.3.112-13build1 amd64 Linux kernel AIO access library - shared library
libaio 패키지가 없으면 설치 진행
apt-cache search libaio
$ apt-cache search libaio
libaio-dev - Linux kernel AIO access library - development files
libaio1 - Linux kernel AIO access library - shared library
apt install -y libaio1
MySQL 사용자 및 그룹 생성
groupadd -g 999 mysql
useradd -r -g mysql -u 999 -s /bin/false -c "MySQL Server" mysql
바이너리 파일 다운로드
설치 경로 이동
cd /usr/local
바이너리 다운로드
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.30-linux-glibc2.12-x86_64.tar
압축 해제
tar xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar
tar xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz
심볼릭 링크 생성
ln -s mysql-8.0.30-linux-glibc2.12-x86_64 mysql
MySQL 디렉토리 권한 설정
- MySQL 디렉토리에 대한 소유권을 mysql 사용자 및 그룹으로 변경합니다.
cd mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files
728x90
MySQL 데이터 디렉토리 초기화
- 데이터 디렉토리를 초기화하고 MySQL 서버의 루트 계정에 대한 임시 비밀번호를 생성합니다.
bin/mysqld --initialize --user=mysql
$ bin/mysqld --initialize --user=mysql
2022-10-20T10:36:50.759143Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.30-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.30) initializing of server in progress as process 62230
2022-10-20T10:36:50.768094Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-10-20T10:36:51.797459Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2022-10-20T10:36:53.213663Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: y&j1di7st<Xa
bin/mysql_ssl_rsa_setup
MySQL 서버 시작(startup)
bin/mysqld_safe --user=mysql &
$ bin/mysqld_safe --user=mysql &
[1] 62282
mysqld 데몬 확인
ps -ef | grep -v grep | grep mysql
$ ps -ef | grep -v grep | grep mysql
root 62282 61830 0 19:38 pts/5 00:00:00 /bin/sh bin/mysqld_safe --user=mysql
mysql 62351 62282 0 19:38 pts/5 00:00:07 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=testdb.err --pid-file=testdb.pid
cp support-files/mysql.server /etc/init.d/mysql.server
PATH 환경 변수 설정
- MySQL 명령어를 쉽게 실행할 수 있도록 PATH 환경 변수를 설정합니다.
export PATH=$PATH:/usr/local/mysql/bin
mysql default my.cnf 파일 추출
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-boost-8.0.30.tar.gz
tar xfz mysql-boost-8.0.30.tar.gz
my.conf 파일 생성
vim /usr/local/mysql/my.cnf
[mysqld]
disable-log-bin = 1
skip-name-resolve = 1
performance-schema = 0
local-infile = 0
mysqlx = 0
bind-address = [IPs removed]
default-storage-engine = InnoDB
open_files_limit = 200000
max_allowed_packet = 256M
sql_mode = "STRICT_TRANS_TABLES,ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
innodb_dedicated_server = 1
innodb_buffer_pool_instances = 48
innodb_log_buffer_size = 64M
innodb_read_io_threads = 12
innodb_write_io_threads = 12
innodb_stats_on_metadata = 0
innodb_file_per_table = 1
max_connections = 500
thread_cache_size = 128
table_definition_cache = 65536
table_open_cache = 65536
wait_timeout = 10
connect_timeout = 5
interactive_timeout = 30
tmp_table_size = 128M
max_heap_table_size = 128M
read_buffer_size = 256K
join_buffer_size = 1M
sort_buffer_size = 512K
read_rnd_buffer_size = 512K
slow-query-log = 1
long_query_time = 2
slow_query_log_file = /usr/local/mysql/data/mysql_slow_query.log
log-error = /usr/local/mysql/data/testdb.err
MySQL 데이터 디렉토리 초기화
bin/mysqld --defaults-file=/usr/local/mysql/my.cnf --initialize --user=mysql
bin/mysql_ssl_rsa_setup --defaults-file=/usr/local/mysql/my.cnf
MySQL 서버 시작(startup)
bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf --user=mysql &
mysqld 데몬 확인
ps -ef | grep -v grep | grep mysqld
참고URL
- https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html
- MySQL 8 sample config (my.cnf example) and tuning : https://haydenjames.io/mysql-8-sample-config-tuning/
- Installing the MySQL 5.7 Binary Package : https://dev.mysql.com/doc/mysql-secure-deployment-guide/5.7/en/secure-deployment-install.html
728x90
'리눅스' 카테고리의 다른 글
[kubernetes] kubectl get 명령 (0) | 2022.10.21 |
---|---|
우분투에서 rc-local(rc.local) 서비스를 활성화하는 방법 (0) | 2022.10.21 |
[kubernetes] 쿠버네티스 kubectl config 설정 (0) | 2022.10.20 |
[Mac] virtualbox command (0) | 2022.10.19 |
MacOS에서 VNC 클라이언트를 설정하기 (0) | 2022.10.19 |