nonneng.ee
Daeun-rithm
nonneng.ee
전체 방문자
오늘
어제
  • 분류 전체보기 (51)
    • Back-end (17)
      • Server (3)
      • Database (3)
      • Spring (9)
      • Node.js (1)
    • Book (1)
      • 이펙티브 자바 (0)
      • 대규모 시스템 설계 (1)
    • Algorithm (1)
      • Greedy, Implementation (6)
      • Dynamic Programming (5)
      • Data Structure (3)
      • Sorting (2)
      • Concept (1)
    • TIL (11)
    • Software (3)
      • Design Pattern (3)
    • Computer Science (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • node js
  • 아이템6
  • Java
  • Postman
  • 이펙티브 자바
  • 자바
  • APM
  • 에러
  • 백준
  • 컴파일설치
  • 아이템 25
  • 구동원리
  • Restful API
  • DP
  • 우분투
  • 가상머신
  • JPA
  • Spring
  • 아이템8
  • 브루트포스
  • 구현
  • 수동설치
  • 파이썬
  • jwt
  • 아이템 23
  • 아이템9
  • MySQL
  • API
  • 서버
  • 소스설치

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
nonneng.ee

Daeun-rithm

[Server] APM 소스설치 - 2. MySQL
Back-end/Server

[Server] APM 소스설치 - 2. MySQL

2021. 7. 30. 20:09

MySQL 소스설치

가상머신 우분투 환경에서 Apache 2.4.46 설치에 이어서 mysql 8.0.19를 설치하였다.

💡 1. 필수패키지 설치

MySql 수동설치에 필요한 패키지

  • CMake
  • GNU make → apt-get으로 설치됨
  • GCC(C 컴파일러) → apache를 설치과정에서 설치됨
  • C++ or C99 컴파일러 → gcc가 설치됨
  • SSL library
  • Boost C++ libraries
  • ncurses library
  • Perl → 이미 설치됨
$ apt-get update
$ apt-get install cmake
$ sudo apt-get install gcc g++  # 이미 최신버전이라고 뜬다.
$ apt-get install libssl-dev  # ssk library
$ apt-get install libboost-all-dev  # boost c++ libraries
$ apt-get install libncurses5-dev libncursesw5-dev  # ncurses library

💡 2. MySQL 8.0.19 다운로드

$ wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.19.tar.gz
$ tar xvfz MySQL-8.0.19.tar.gz
$ cd /usr/local/mysql-8.0.19 
$ mkdir <DIRNAME> # mysql-8.0.19에 새로운 디렉토리를 파준다.
$ cd <DIRNAME> 
$ 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

그런데 이 과정에서 에러가 난다.

1

"HTTP response code said error" CMake Error at cmake/boost.cmake:229

you can try downloading 링크가 나오지만 막혀있었다.

→ firefox 를 통해 boost_1_70_0.tar.gz 파일을 직접 다운받은 후, 경로를 알맞게 옮겨주었다.

$ whereis boost
$ mv boost_1_70_0.tar.gz /usr/local/src
$ tar xvfz boost_1_70_0.tar.gz
  1. google 검색을 통해 인터넷에서 boost_1_70_0.tar.gz 다운로드
  2. whereis boost → boost가 어디에 설치되어야 하는지 찾는다.
  3. mv 명령어를 통해 boost파일의 위치를 수정해준다
  4. 압축을 풀어준다.
$ 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

위의 cmake ..\ 코드들을 다시 입력하고 make & make test

make test에서 오류가 1개 발견되었지만 무시하고 설치했다.

2

설치하는 데 꽤 오랜시간이 걸렸지만, 정상적으로 설치되었다 !

  • mysql -u root -p : mysql 실행 → 입력창이 mysql>로 바뀐다.
  • exit : mysql 종료

💡 3. MySQL 환경설정

mysql 그룹 및 유저 생성

$ groupadd mysql
$ useradd -r -g mysql -s/bin/false mysql

mysql-files 디렉토리 생성

$ cd /usr/local/mysql
$ mkdir mysql-files

권한 설정

$ chown -R mysql:mysql /usr/local/mysql
$ chown mysql:mysql mysql-files
$ chmod 750 mysql-files
  • 디렉토리 사용자 및 그룹 소유권을 mysql사용자, mysql 그룹에 부여하고, 디렉토리 권한또한 적절하게 설정한다.
  • chown : change-own → 파일의 소유권자를 변경
  • -R : 하위 디렉토리까지 모든 소유권을 할당
  • chmod : change-mode → 대상 파일과 디렉토리의 사용권한을 변경
  • 750 : 소유자, 그룹, 전체 권한을 적절하게 설정

기본 데이터베이스 설정

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

데이터 디렉토리를 초기화하는 과정이다. 위의 명령어를 입력하면 root@localhost password 라는 문구가 뜨는데, password부분이 임시 비밀번호이다.

💡 4. 비밀번호 초기화

$ bin/mysqld_safe --user=mysql &
  • mysqld_safe : mysql 실행
  • & : 백그라운드에서 프로세스 실행
$ bin/mysql -u root -p

아까 기억해둔 임시 비밀번호를 입력하면 mysql서버에 연결할 수 있다.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';

root-password부분에 원하는 비밀번호를 넣어 새로 설정할 수 있다.

$ bin/mysqladmin -u root -p shutdown

mysql 서버를 종료한다.

3

cmake 부분에서 온갖 버전의 boost를 다운받아보기도 하고, 여러가지 설정들도 건들어보는 등 많은 시간이 소요되었다😭 그만큼 모든 설치와 설정을 마쳤을 때 뿌듯함을 배로 느낄 수 있었다.


참고 : https://salix97.tistory.com/141?category=837576

'Back-end > Server' 카테고리의 다른 글

[Network] REST API 설계하기  (0) 2021.08.14
[Server] APM 소스설치 - 1. Apache  (2) 2021.07.22
    'Back-end/Server' 카테고리의 다른 글
    • [Network] REST API 설계하기
    • [Server] APM 소스설치 - 1. Apache
    nonneng.ee
    nonneng.ee

    티스토리툴바