Server/Local Server

6. 우분투(Ubuntu)에 MySQL 설치하기

seongduck 2022. 8. 7. 20:10

Ubuntu 20.04에 APM 소스 (수동) 설치하기 (MYSQL)


우선 Swap Memeory를 사용해야 한다.

Swap Memory란?

Swap Memory란 하드디스크의 일부 용량을 RAM처럼 사용할 수 있게 하는 방법입니다. 즉, 시스템에 RAM 용량이 부족해도 하드디스크를 활용하여 프로그램을 계속 실행시킬 수 있습니다.

예를 들어 A라는 컴퓨터에 설치된 RAM 용량이 2GB라고 가정해봅시다. A 컴퓨터에는 서버 프로그램을 구동하고자 하는데 필요한 RAM 용량이 3GB입니다. 서버를 구동하기 위해서 1GB의 RAM이 부족한 상황입니다.

이때 A에 2GB의 Swap Memory를 설정하면, 하드 디스크에서 2GB를 Swap Memory로 할당하고 A는 총 4GB(실제 RAM 2GB + Swap Memory 2GB)의 메모리로 무난하게 서버 프로그램을 구동시킬 수 있는 것이죠.

 

Swap Memory에는 크게 두 가지 단점이 존재합니다.

  1. 첫 번째로 하드디스크는 RAM에 비해 읽기/쓰기 속도가 현저히 느립니다. 따라서 Swap Memory를 과도하게 사용하면 컴퓨터가 현저히 느려질 수 있습니다.
  2. 두 번째로 Swap Memory는 읽기/쓰기 작업이 많이 발생하는데, 이는 하드디스크의 수명을 크게 줄일 수 있습니다. 따라서 메모리가 부족할 일이 크게 없다면 Swap Memory를 사용하지 않는 것이 바람직합니다.

 

우선 먼저 Swap file이 있으면 안되므로 확인하고 있으면 삭제해준다.

sudo swapon --show 
sudo swapoff -a #삭제

Swapfile을 이용하여 Swap 메모리를 설정할 수 있다.

sudo fallocate -l 8G /swapfile #swapfile이라는 이름으로 8GB를 만든다.

 

chmod 600 /swapfile #600dms root계정만 읽기/쓰기가 가능한 권한이다.

 

sudo mkswap /swapfile 
sudo swapon /swapfile #Swapfile로 Swap Memory를 활성화
sudo nano /etc/fstab #시스템을 재부팅해도 Swap이 적용되도록 한다. 이를 열고
/swapfile swap swap defaults 0 0 #텍스트 에디터에 이를 추가한다. # ctrl + x 로 나가기
free #잘 할당되어 있는지 확인해본다. 

필수 패키지 설치

& sudo su

/usr/local# apt-get update

/usr/local# apt-get install cmake

/usr/local# apt-get install libssl-dev

/usr/local# apt-get install libboost-all-dev

/usr/local# apt-get install libncurses5-dev libncursesw5-dev

 

/usr/local# apt-get install make

/usr/local# apt-get install gcc

/usr/local# apt-get install g++

/usr/local# apt-get install perl

 

소스설치 파일 다운로드 및 압축해제

/usr/local# wget <https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.19.tar.gz>

/usr/local# tar xvfz mysql-8.0.19.tar.gz
#apache와 동일하게 압축 파일을 다운받아 압축을 해제한다.

MySQL 설치

/usr/local/mysql-8.0.19/dir_mysql# cd ..

/usr/local/mysql-8.0.19# cd ..

/usr/local# cd src

/usr/local/src# sudo wget <https://boostorg.jfrog.io/artifactory/main/release/1.70.0/source/boost_1_70_0.tar.gz>

/usr/local/src# sudo tar xvfz boost_1_70_0.tar.gz

/usr/local/src# cd ..

/usr/local/mysql-8.0.19# mkdir dir_mysql (이름 아무거나 상관없음)

/usr/local/mysql-8.0.19# cd dir_mysql

/usr/local/mysql-8.0.19/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_70_0

/usr/local/mysql-8.0.19/dir_mysql# make #매우 오래걸린다 3시간정도...

/usr/local/mysql-8.0.19/dir_mysql# make install 

MySQL DB 초기화

1. MySQL 그룹 및 유저 생성

/usr/local/mysql-8.0.19/dir_mysql# groupadd mysql
/usr/local/mysql-8.0.19/dir_mysql# useradd -r -g mysql -s /bin/false mysql

2. 디렉토리 생성

/usr/local# cd mysql
/usr/local/mysql #mkdir mysql-files #(아무이름이나 상관없다,(

3. 권한주기

/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

에러

Can't connect to local MySQL server through socket~~~

 

  • Can't connect to local MySQL server through socket

재시작 해보자

ps -A|grep mysql
sudo pkill mysql
ps -A|grep mysql
service mysql restart

 

이거마저 안되면 그냥 패키지 설치하자

 

mysql 설치 와 기본 설정 (on Ubuntu)

Ubuntu에 mysql을 설치해 보겠습니다. 언제나 그렇듯이 Ubuntu 버전부터 살펴보겠습니다. $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.2 LTS Release: 18...

dejavuqa.tistory.com


4. 서버 접속

/usr/local/mysql# mysql -u root -p
sudo /usr/bin/mysql -u root -p