코이팅

APM 소스 설치(수동 설치)방법 - MySQL 본문

Server

APM 소스 설치(수동 설치)방법 - MySQL

코이팅 2023. 1. 29. 11:14
728x90
반응형

1. APM 개념

  • A(Apache) : 웹서버
  • P(PHP) : 웹 프로그래밍 언어
  • M(MYSQL) : 데이터베이스

이 3가지가 연동되어 운영되도록 만든 환경을 APM이라고 합니다.
Apache와 MySQL이 PHP와 호환성이 좋기 때문에 주로 세 프로그램을 묶어 패키지 형태로 사용합니다.

2. MySQL이란?

MySQL은 세계에서 가장 많이 쓰이는 오픈 소스의 관계형 데이터베이스 관리 시스템(DBMS)입니다. 빠르고 유연하며 사용하기 쉬운 특징이 있습니다.

3. 소스(수동) 설치 이유?

APM을 설치하는 방법에는 패키지 관리자를 사용하여 패키지들을 설치하는 방법과, 직접 웹에서 압축파일을 받고 압축파일을 풀어 소스를 컴파일하여 설치하는 방법이 있습니다.

 

패키지 관리자를 사용하면 쉽게 설치할 수 있습니다. 하지만 우분투(Ubuntu)를 예로 들면 apt라는 리눅스 계열의 패키지 관리 명령어 도구가 있는데, 개인적인 목적이 아닌 회사에서 업무적인 목적이나 공공이 사용하는 경우에는 패키지 설치를 막을 수 있어서 소스설치를 한다고 합니다.

 

📌 소스설치 관례
/usr/local에 설치하는 것이 관례

1. 소스파일 내려받는다.
2. /configure로 설정
3. make로 컴파일
4. make install로 설치

4. MySQL 소스(수동) 설치 방법

 ✅ 개발환경

  • macOS Ventura 13.1
  • UTM
  • Ubuntu 20.04.5
  • MySQL 8.0.32

1) 우분투에 로그인하고 아래 사진의 빨간 박스 부분을 클릭합니다.

빨간 박스 부분 클릭

2) 검색창에 'terminal' 입력 후 2️⃣을 클릭합니다.

terminal 입력 후 클릭

그럼 아래 사진처럼 터미널 창이 열립니다.

터미널 창이 열린 모습

3) 필수 패키지를 설치합니다.

  • 소스설치 전, 필요한 패키지들을 먼저 설치합니다.
  • 아래 명령어들을 터미널에 입력해주세요.
  • Apache(아파치) 설치시 설치한 필수 패키지들은 제외하고 설치합니다.
$ sudo su // 비밀번호 입력
$ apt update
$ apt upgrade
$ apt install cmake
$ apt install libssl-dev
$ apt install libboost-all-dev
$ apt install libncurses5-dev libncursesw5-dev

4) 소스설치 파일을 다운로드 및 압축 해제 합니다.

$ sudo su
$ cd /usr/local
$ wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.32.tar.gz
$ tar xvfz mysql-8.0.32.tar.gz

💊 최신 버전 확인

아래 링크를 통해 확인을 하고 wget 다운로드 시 버전을 바꿔서 진행합니다.

https://dev.mysql.com/downloads/mysql/

 

MySQL :: Download MySQL Community Server

Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Debian Linux SUSE Linux Enterprise Server Red Hat Enterprise Linux / Oracle Linux Fedora Linux - Generic Oracle Solaris macOS Source Code Select OS Version: All Windows (x86

dev.mysql.com

최신 버전 확인

5) 소스를 설치합니다.

$ cd mysql-8.0.32
$ mkdir dir_mysql
$ cd dir_mysql
$ cmake \
.. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DSYSCONFDIR=/etc \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/mysql/boost
$ make
$ make test
$ make install
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
 : 설치 디렉토리 설정
-DMYSQL_DATADIR=/usr/local/mysql/data
 : MySQL data directory 설정
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock
 : Unix socket file 경로 설정, 서버가 소켓연결을 listen 할때 사용
-DMYSQL_TCP_PORT=3306
 : 서버가 TCP/IP 연결을 청취하는 포트 번호. default 는 3306
-DMYSQL_USER=mysql
  
-DDEFAULT_CHARSET=utf8
 : 서버 문자 세트. MySQL 은 기본적으로 utf8mb4 문자세트를 사용한다.
-DDEFAULT_COLLATION=utf8_general_ci
 : 서버 데이터 정렬
-DSYSCONFDIR=/etc
 : my.cnf 옵션 파일의 디렉토리 설정
-DWITH_EXTRA_CHARSETS=all
 : 추가로 지원할 언어 설정
이 아래로는 
데이터베이스에서 데이터를 작성, 읽기, 업데이트하는데 사용하는 소프트웨어 모듈. 
-DWITH_INNOBASE_STORAGE_ENGINE=1 :
-DWITH_MYISAM_STORAGE_ENGINE=1 : 
-DWITH_ARCHIVE_STORAGE_ENGINE=1 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1  
-DWITH_MEMORY_STORAGE_ENGINE=1 
-DWITH_READLINE=1
 : readline 지원여부 
-DWITH_BOOST=/usr/local/mysql/boost
 : boost 위치 경로
-DENABLED_LOCAL_INFILE=1
 : SQL 파일을 로드하게 해주는 기능을 켠다. (활성화1, 비활성화 0 또는 명령을 주지 않음) 
-DENABLE_DOWNLOADS=1
 
-DDOWNLOAD_BOOST=1 

 

굉장히 오래 걸렸습니다... 인내심을 가지고 기다려야 합니다.🥲 (기다리는 동안 롤토 3판 돌림..)

 

make test 실행할 때 생기는 에러

찝찝... 일단 다음 단계로..🤔
(make test 과정에서 Error가 발생했지만 make install 과정에서는 문제 생기지 않아 그대로 진행하였습니다.)

5. MySQL 설정하기

1) MySQL 그룹 및 유저를 생성합니다.

👉🏻 경로 : /usr/local/mysql-8.0.30/dir_mysql 

  • -r : System Account
  • -g : 그룹 지정
  • -s : user의 로그인 shell
$ groupadd mysql
$ useradd -r -g mysql -s /bin/false mysql

2) 디렉토리를 생성합니다.

cd /usr/local/mysql
mkdir mysql-files

3) 권한을 부여합니다.

  • chown : 파일의 소유자 변경
  • -R : 하위 디렉토리까지 소유권 할당
  • chmod : 사용권한을 변경
$ chown -R mysql:mysql /usr/local/mysql
$ chown mysql:mysql mysql-files
$ chmod 750 mysql-files

3) 기본 DB를 생성합니다.

$ bin/mysqld --initialize --user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

💡 임시 비밀번호

기본 DB 생성을 완료하면 아래와 같이 임시 비밀번호가 생성됩니다. 나중에 입력해야하므로 기록해둡니다.

6. MySQL 서버 실행 및 종료

1) MySQL 서버를 실행합니다.

  • 서버 실행(& 명령어를 통해 백그라운드에서 프로세스를 실행)
/usr/local/mysql $ bin/mysqld_safe --user=mysql &

  • ps -ef | grep mysqld 명령어로 MySQL 이 실행되고 있는지 확인할 수 있습니다.
$ ps -ef | grep mysqld

2) 서버에 연결하여 로그인합니다.

  • 임시 비밀번호를 통해 로그인을 진행합니다.
  • 비밀번호 변경 후 로그인을 진행할 때는 변경된 비밀번호로 로그인합니다.
/usr/local/mysql $ bin/mysql -u root -p
Enter password: 비밀번호 입력

로그인 성공 화면

3) 비밀번호를 변경합니다.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '원하는 비밀번호';

4) MySQL 서버 종료방법

$ bin/mysqladmin -u root -p shutdown
Enter password: 비밀번호 입력

서버 종료 성공화면

7. MySQL 서비스 등록

  • 서비스를 등록하면 서버가 실행되었을 때, MySQL이 자동으로 실행됩니다.

1) 서비스를 등록합니다.

$ sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
$ sudo vi /etc/init.d/mysqld
  • mysqld 파일의 basedir과 datadir 뒤에 경로를 추가합니다.
  • basedir=/usr/local/mysql
  • datadir=/usr/local/mysql/data

입력 화면

아래 명령어를 입력하여 mysqld 서비스를 등록합니다.

$ update-rc.d mysqld defaults

mysqld 서비스를 등록하고 다시 시작해보면 자동으로 서버시작이 되어있음을 확인할 수 있습니다.

$ reboot
$ ps -ef | grep mysqld

성공 화면!

 

728x90
반응형
Comments