-
Ubuntu 20.04에 APM소스 설치 - MySQL 설치 (2/3)Study/Server 2021. 7. 2. 03:53
Apache 설치에 이어 이번엔 MySQL을 설치해볼 것이다.
아래는 아파치 설치하는 글이다.
2021.07.01 - [소프트스퀘어드/server] - Ubuntu 20.04에 APM소스 설치 - Apache2 설치 (1/3)
Ubuntu 20.04에 APM소스 설치 - Apache2 설치 (1/3)
이전에 설치한 apm은 알고보니 소스 설치(수동 설치)가 아니라 패키지 설치였다. 이번에는 apm소스를 수동으로 설치할 것이다. 이는 tar.gz로 된 파일을 make를 통해 컴파일하여 설치하는 것이다. 마
wormblog.tistory.com
1. 패키지 설치
$ 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
cmake는 소스파일을 파싱하여 의존관계를 파악하여 자동으로 Makefile들이 작성되도록 돕는다.
libssl-dev는 SSL(Secure Sockets Layer) 개발에 필요한 라이브러리와 헤더파일, lisbboost-all-dev는 Boost 라이브러리이다.
libncurses5-dev는 ncurses 라이브러리이고 ncurses에 한글을 출력하고싶을 경우 libncursesw5-dev 패키지도 포함한다.
2. MySQL Community Server 설치
2021년 7월 기준 가상 최신 버전인 8.0.25로 설치한다.
/usr/local# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.25.tar.gz /usr/local# tar xvfz mysql-8.0.25.tar.gz
3. MySQL 설치써진 순서대로 하다보면 오류가 발생하니 읽어보고 순서 잘 정해서 할 것..reference (cmake 사용 참조)https://dev.mysql.com/doc/refman/8.0/en/source-configuration-options.html/usr/local/mysql-8.0.25# mkdir hazelmysql /usr/local/mysql-8.0.25# cd hazelmysql /usr/local/mysql-8.0.25/hazelmysql# 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
위와 같은 오류가 발생했다.cmake의 버전이 낮아서 발생하는 오류같아 현재 cmake의 버전을 확인해보니 3.16.3이였다.아래 홈페이지에서 찾아보니 현재 cmake의 최신 버전은 3.20.5이였다. 호다닥 이를 설치해주었다. 근데 매우매우 오래 걸렸다😭😭/usr/local# wget https://github.com/Kitware/CMake/releases/download/v3.20.5/cmake-3.20.5.tar.gz /usr/local# tar xvfz cmake-3.20.5.tar.gz /usr/local# cd cmake-3.20.5 /usr/local/cmake-3.20.5# ./bootstrap /usr/local/cmake-3.20.5# make /usr/local/cmake-3.20.5# sudo make install
설치 이후 cmake의 버전을 확인이 보니 3.20.5 버전으로 잘 설치된 것을 확인할 수 있다.이제 다시 cmake 컴파일을 해보도록 하자.아직도 같은 오류가 발생한다. CMakeCache.txt를 삭제하고 다시 컴파일해보았다./usr/local/mysql-8.0.25# rm -rf CMakeCache.txt /usr/local/mysql-8.0.25# cd hazelmysql /usr/local/mysql-8.0.25/hazelmysql# 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
새로운 오류가 발생하였다...하......boost 버전의 문제인 것 같아 2021년 7월 기준 최신 버전인 1.76.0을 설치해주었다./usr/local# cd mysql /usr/local/mysql# wget https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.tar.gz /usr/local/mysql# tar xvfz boost_1_76_0.tar.gz
그리고 -DWITH_BOOST=/usr/local/mysql/boost 를 -DWITH_BOOST=/usr/local/mysql/boost_1_76_0으로 바꿔주었다.뭘 해도 오류가 뜬다. 화가 나서 MySQL의 버전을 바꾸어 설치했다..너무 오류가 많이 떠 3. MySQL 설치 부터 다시 할 것이다.
3. MySQL 설치
reference (cmake 사용 참조)
https://dev.mysql.com/doc/refman/8.0/en/source-configuration-options.htmlmysql 디렉토리 안에 새로운 디렉토리를 하나 만들어 그 안에서 컴파일해주도록 한다.
/usr/local/mysql-8.0.25# mkdir hazelmysql /usr/local/mysql-8.0.25# cd hazelmysql /usr/local/mysql-8.0.25/hazelmysql# 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
위 옵션들을 이용해 컴파일해주면 다음과 같은 오류가 발생한다.
읽어보니 boost를 설치하기 위한 링크에 오류가 있어 설치가 되지 않아 발생하는 문제인 것 같았다.
그래서 오류에서 권장하는 boost 버전을 /usr/local/mysql/boost 경로에 수동설치해주었다.
/usr/local/mysql/boost# wget https://boostorg.jfrog.io/artifactory/main/release/1.73.0/source/boost_1_73_0.tar.gz /usr/local/mysql/boost# tar xvfz boost_1_73_0.tar.gz
이후 다시 cmake 해준다.
/usr/local/mysql-8.0.25/hazelmysql# 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 후 놀다오는 것을 추천한다.
(중간에 하다가 너무 오래 걸리길래 화나서 메모리를 4096MB로 바꿨다..)
/usr/local/mysql-8.0.25/hazelmysql# make /usr/local/mysql-8.0.25/hazelmysql# make install
4. 설정 및 실행
4-1. 데이터베이스 초기화
/usr/local/# cd mysql /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
/usr/local/mysql/bin# ./mysqld --initialize --user=mysql \ > --basedir=/usr/local/mysql \ > --datadir=/usr/local/mysql/data
이렇게 초기화해주면 원래 여러 문구가 뜨고 mysql 임시 비밀번호도 뜬다.
근데 내 우분투에선 아무것도 뜨지 않았다... 그래서 비밀번호 없이 MySQL에 접속하여 비밀번호를 변경해주었다.
/usr/local/mysql/bin# ./mysqld_safe --skip-grant-tables $ /usr/local/mysql/bin# ./mysql -u root -p # Enter눌러서 접속 mysql> use mysql; mysql> update user set authentication_string=null where user='root'; mysql> select authentication_string from user; mysql>flush privileges; mysql> exit /usr/local/mysql/bin# ./mysql -u root mysql> alter user 'root'@'localhost' identified with mysql_native_password my '원하는 비번'; mysql> exit /usr/local/mysql/bin#./mysql -u root -p
마지막 코드 입력 후 mysql 서버 접속을 위한 Enter password가 뜨면 그때 설정한 비번을 입력하여 접속할 수 있다.
mysql 설치 확인 서버 종료는 다음 명령어를 통해 할 수 있다.
/usr/local/mysql/bin# ./mysqladmin -u root -p shutdown
4-2. MySQL 서비스 등록 (자동 실행)
MySQL 서비스를 등록해놓으면 서버가 실행될 때, mysql이 자동 실행된다.
/usr/local/# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld /usr/local/# vi /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/usr/local/mysql/databasedir, datadir 뒤에 경로 추가
/usr/local# update-rc.d mysqld defaults
4-3. service 명령어
/usr/local# service mysql start // 서버 시작 /usr/local# service mysql stop // 서버 종료 /usr/local# service mysql restart // 서버 재시작 /usr/local# service mysql status //서버 상태 확인. 나갈 땐 q
4-4. 환경 설정
/usr/local/# vi /etc/my.cnf
[mysqld]
bind-address=0.0.0.0
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data위의 내용을 my.cnf 파일에 작성하면 ps -ef | grep mysqld 명령어 실행 시 옵션에 port가 추가된 것을 확인할 수 있다.
reference
https://velog.io/@oyeon/Ubuntu-20.04-Mysql-8.0.19-소스-설치컴파일-설치-수동-설치'Study > Server' 카테고리의 다른 글
AWS 서버 구축 - MySQL 외부에서 접속하기, phpMyAdmin (2/3) (0) 2021.07.10 AWS 서버 구축 - Linux + Nginx PHP MySQL (1/3) (0) 2021.07.10 Ubuntu 20.04에 APM소스 설치 - PHP 설치 (3/3) (0) 2021.07.02 Ubuntu 20.04에 APM소스 설치 - Apache2 설치 (1/3) (0) 2021.07.01 Ubuntu 20.04에 APM 설치하기 (0) 2021.07.01