MySql이란?
서버를 구성하는 요소 중 데이터 베이스를 관리하는 시스템이다.
1. MySql 컴파일 설치를 위한 패키지 설치
사용된 코드
- /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를 사용하는 이유:
- cmake: makefile을 만들어주는 툴
- makefile: 빌드를 편리하게 해주는 일종의 빌드 스크립트
- makefile을 make 명령을 사용해서 실행한다.
- makefile은 incremental build 방식을 사용하기 때문에 사용한다.
- incremental build 방식: 우선 처음에는 모두 빌드를 해놓고, 그 이후 수정된 파일에 대해서는 그 소스파일과 연관된 것들만 빌드하여 시간을 줄여주는 빌드 방식
2. MySQL 다운로드
사용된 코드
- 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 설치
사용된 코드
- /usr/local $ sudo wget https://boostorg.jfrog.io/artifactory/main/release/1.73.0/source/boost_1_73_0.tar.gz
- /usr/local $ sudo tar xvfz boost_1_73_0.tar.gz
- /usr/local $ mkdir dir_mysql
- /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
- /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를 옮길 수 밖에 없었다
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
비밀번호를 입력하면 다음과 같이 출력된다
> 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. 설치를 진행하면서 느낀점:
- 명령 한 줄 잘못 적는 것이 엄청난 실수임을 깨달았다.
- 리눅스와 조금 더 가까워 진 것 같다.
- 개발자의 고충을 튜토리얼 정도나마 겪어본 것 같다.
'서버 & 네트워크' 카테고리의 다른 글
쿠키와 세션 (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 |
댓글