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
그런데 이 과정에서 에러가 난다.
"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
- google 검색을 통해 인터넷에서 boost_1_70_0.tar.gz 다운로드
- whereis boost → boost가 어디에 설치되어야 하는지 찾는다.
- mv 명령어를 통해 boost파일의 위치를 수정해준다
- 압축을 풀어준다.
$ 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개 발견되었지만 무시하고 설치했다.
설치하는 데 꽤 오랜시간이 걸렸지만, 정상적으로 설치되었다 !
- 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 서버를 종료한다.
cmake 부분에서 온갖 버전의 boost를 다운받아보기도 하고, 여러가지 설정들도 건들어보는 등 많은 시간이 소요되었다😭 그만큼 모든 설치와 설정을 마쳤을 때 뿌듯함을 배로 느낄 수 있었다.
'Back-end > Server' 카테고리의 다른 글
[Network] REST API 설계하기 (0) | 2021.08.14 |
---|---|
[Server] APM 소스설치 - 1. Apache (2) | 2021.07.22 |