본문 바로가기
서버 & 네트워크

리눅스 환경에서 AMP소스설치(2) MySQL 8.0.25

by 자바지기 2021. 9. 6.
반응형

MySql이란?

서버를 구성하는 요소 중  데이터 베이스를 관리하는 시스템이다.

1. MySql 컴파일 설치를 위한 패키지 설치

사용된 코드

  1. /usr/local$ apt-get update
  2. /usr/local$ apt-get install cmake
  3. /usr/local$ apt-get install libssl-dev
  4. /usr/local$ apt-get install libboost-all-dev
  5. /usr/local$ apt-get install libncurses5-dev libncursesw5-dev

cmake를 사용하는 이유:

  • cmake: makefile을 만들어주는 툴
  • makefile: 빌드를 편리하게 해주는 일종의 빌드 스크립트
  • makefile을 make 명령을 사용해서 실행한다.
  • makefile은 incremental build 방식을 사용하기 때문에 사용한다.
  • incremental build 방식: 우선 처음에는 모두 빌드를 해놓고, 그 이후 수정된 파일에 대해서는 그 소스파일과 연관된 것들만 빌드하여 시간을 줄여주는 빌드 방식

2. MySQL 다운로드

사용된 코드

  1. usr/local# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.25.tar.gz
  2. /usr/local# tar xvfz mysql-8.0.25.tar.gz

 


3. MySQL 설치

사용된 코드

  1. /usr/local $ sudo wget https://boostorg.jfrog.io/artifactory/main/release/1.73.0/source/boost_1_73_0.tar.gz
  2. /usr/local $ sudo tar xvfz boost_1_73_0.tar.gz
  3. /usr/local $ mkdir dir_mysql
  4. /usr/local/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/src/boost_1_73_0
  5. /usr/local/dir_mysql $ make & make test & make install

처음에는 1, 2번 명령어를 제외하고 명령어들을 사용했는데 오류가 발생하였다.

에러 메세지에서 boost_1_73 을 다운받으라는 내용과 함께 다운로드 링크를 출력했는데 이 링크에서 forbidden 403 에러가 발생했다.

따라서 구글링을 통해 https://boostorg.jfrog.io/artifactory/main/release/1.73.0/source/boost_1_73_0.tar.gz 링크 주소를 찾았고 이 주소에서 다운로드 받았다

다운로드 받는 도중 용량부족으로 인한 에러가 발생했다.

용량을 20GB로 설정해놨었는데 C드라이브에 저장하여 최대 20GB까지 밖에 설정이 안됐다.

따라서 D드라이브로 Working directory를 옮길 수 밖에 없었다

20GB -> 100GB 용량 늘리기 성공

 


4. MySQL DB 초기화

(1) 그룹 지정 

  • /usr/local/dir_mysql$ groupadd mysql
  • /usr/local/dir_mysql$ useradd -r -g mysql -s /bin/false mysql

group과 user를 추가했다.

각각의 옵션은 다음을 나타낸다.

-r: system account

-g: 그룹 지정

-s:  user의 로그인 shell


(2) 디렉토리 생성 후 권한주기

  • /usr/local/mysql $ mkdir mysql-files
  • /usr/local/mysql$ chown -R mysql:mysql /usr/local/mysql
  • /usr/local/mysql$ chown mysql:mysql mysql-files
  • /usr/local/mysql$ chmod 750 mysql-files

 

(3)기본 DB 생성

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

비밀번호가 출력되었다.

 


5. 서버 시작

  • /usr/local/mysql $ bin/mysqld_safe --user=mysql &
  • /usr/local/mysql $ ps -ef | grep mysqld
  • /usr/local/mysql $ bin/mysql -u root -p

비밀번호를 입력하면 다음과 같이 출력된다

bin/mysql -u root -p 사용 후 출력결과

> alter user 'root'@'localhost' identified by '새로운 비밀번호'; 

명령어를 통하여 새로운 비밀번호로 지정하였다.

 


6. 서버 종료

ctrl + z

 

 


7 .MySQL 서비스 등록

서버가 실행될 때 MySQL이 실행된다.

  • /usr/local/mysql $ sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
  • /usr/local/mysql $ sudo vim /etc/init.d/mysqld

vim으로 파일을 mysqld 파일을 열어서 

basedir=

datadir=

으로 되어있는 부분을

 

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

위와 같이 수정한다.

 

그 후 서비스를 등록한다.

  • /usr/local/mysql $update-rc.d mysqld default

서버를 재시작하면 mysql이 자동적으로 실행되어 있음을 알 수 있다.


 

8. 설치를 진행하면서 느낀점:

  1. 명령 한 줄 잘못 적는 것이 엄청난 실수임을 깨달았다.
  2. 리눅스와 조금 더 가까워 진 것 같다.
  3. 개발자의 고충을 튜토리얼 정도나마 겪어본 것 같다.
반응형

'서버 & 네트워크' 카테고리의 다른 글

쿠키와 세션  (0) 2021.09.10
WAS와 웹 서버의 차이  (0) 2021.09.08
리눅스 환경에서 AMP소스설치(3) PHP 7.4.21  (0) 2021.09.07
리눅스 환경에서 AMP소스설치(1) Apache 2.4.46  (0) 2021.09.06
서버란?  (0) 2021.09.06

댓글