-2-
Mysql 설치
목차
설치과정
1. Mysql 설치 전 setting
$ 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
> 컴파일 설치를 위한 기본 package들을 설치하여준다
$ /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
> wget을 통해 Mysql-8.0 버전의 압축파일을 다운받은 후 해당 압축파일을 풀어준다.
2. Mysql 설치
$ /usr/local/mysql-8.0.19# rm -f CMakeCache.txt
$ /usr/local/mysql-8.0.19# mkdir millimysql
> 버전이 바뀌면서, Source Directory내에 빌드를 위한 Directory를 추가 생성하여, 그 Directory에서 작업하도록 강제 권고 되어 오류가 발생하므로, 아래에 millimysql(이름은 제한 없음) 디렉토리를 새로 만들어주었다.
$ /usr/local/mysql-8.0.19/millimysql# 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
> 새로만든 directory 내에서 cmake .. 을 사용하여, cmake 작업을 수행하여준 후, make 및 make install을 하여준다.
> 이 때, Swap 공간이 부족하면, 메모리 공간 에러가 발생 할 수 있으므로 주의하여준다.
$ /usr/local/mysql/boost# wget http://downloads.sourceforge.net/project/boost/boost/1.70.0/boost_1_70_0.tar.gz
$ /usr/local/mysql/boost# tar xvfz boost_1_70_0.tar.gz
> 이 때 boost file이 제대로 깔리지 않을 경우, 다음 directory로 이동하여 다시 다운받아 주어야 한다.
> 성공적으로 cmake가 되었음을 확인 할 수 있다.
$ /usr/local/mysql-8.0.19/millimysql# make
$ /usr/local/mysql-8.0.19/millimysql# make install
> 그 후 make 및 make install 작업을 하여 준다.
3. Mysql 설정 및 실행
$ /usr/local/# cd mysql
$ /usr/local/mysql# mkdir mysql-files
> mysql-files directory를 만들어 준 후, 각 파일들에 대한 권한을 바꿔 주어야 한다.
$ /usr/local/# adduser mysql
> 이 때 Mysql은 DB의 소유권이 mysql로 지정되어야 있어야 하는데, mysql user가 없다면 오류가 나게 된다. 따라서 잘못된 사용자라는 오류가 발생한다면 mysql 이라는 이름으로 계정을 하나 만들어 준다.
$ /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
> mysqld는 Mysql 서버로, 백그라운드에서 돌아가고 있는 프로세스이다. Mysql 서버는 Mysql database와 table을 포함하는 data directory에 대한 access를 관리하여 준다.
--basedir: base directory의 주소를 뒤의 /usr/local/mysql로 하여준다.
--datadir: data directory의 주소를 뒤의 /usr/local/mysql/data로 하여준다.
이 때 랜덤한 문자열로 이루어진 파란색 박스 안의 temporary password가 발급된다.
> 이 때 발급받은 것은 임시비밀번호이므로 비밀번호를 변경해주어야 후에 사용 가능하다.
4. 서버 실행 및 종료
$ /usr/local/mysql/bin# ./mysqld_safe --user=mysql &
> 백그라운드로 서버를 실행시켜주면, 해당 프로세스의 ID를 볼 수 있게 된다.
$ ps -ef | grep mysqld
> ps 명령어를 통해 현재 수행중인 프로세스를 확인하면 mysqld 서버가 돌아가고 있는 것을 확인 할 수 있다.
$ /usr/local/mysql/bin# ./mysql -u root -p
> 위에서 발급받은 임시 비밀번호를 통해 mysql server에 연결 할 수 있게 된다.
$ /usr/local/mysql/bin# ./mysqladmin -u root -p shutdown
> shutdown을 통해 서버를 종료 시킬 수 있다.
> 이 때 ps -ef | grep mysqld 를 통해 mysql 프로세스가 종료됨을 확인하며 서버가 종료된 것을 확인 할 수 있다.
5. Mysql 서비스 등록
$ /usr/local/# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
$ /usr/local/# vi /etc/init.d/mysqld
> 자동실행을 등록하여, 서버가 실행 될 때, 자동으로 mysql 또한 실행 되도록 하여줄 수 있다.
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
> mysqld 파일의 basedir과 datadir 뒤에 다음과 같은 경로를 추가해 주어야 한다.
$ /usr/local# update-rc.d mysqld defaults
> mysqld 서비스를 등록하는 명령어이다.
$ /usr/local# service mysql start
$ /usr/local# service mysql stop
$ /usr/local# service mysql restart
$ /usr/local# service mysql status //서버 상태 확인. 나갈 땐 q
> 위의 service 명령어를 통해, mysql 서버를 간단하게 키고, 끄고, 조회할 수 있게 된다.
$ /usr/local/# vi /etc/my.cnf
> my.cnf 파일을 수정하여 환경 설정을 수정해 줄 수 있다.
[mysqld]
bind-address=0.0.0.0
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
> 위의 내용을 추가해주면 ./mysqld_safe --user=mysql & 실행 시 옵션에 port가 추가되는 것을 확인 할 수 있게된다.
참조링크
1. https://kldp.org/node/80531
3. https://jirak.net/wp/cmake-error-for-mysql-8-0-15-please-do-not-build-in-source/
'Back End > Server' 카테고리의 다른 글
[Server] AWS Server 구축 (Nginx + PhP + MySQL) -1 (0) | 2021.07.08 |
---|---|
[Server] AWS를 통한 Server 대여 및 WinSCP 연결 (0) | 2021.07.08 |
[Server] Bitnami를 통한 Local 서버 구축 및 외부 연결 (0) | 2021.07.06 |
[Server] Ubuntu 20.04 APM(Apache2,PhP,Mysql) 소스 설치 -3 (0) | 2021.07.05 |
[Server] Ubuntu 20.04 APM(Apache2,PhP,Mysql) 소스 설치 -1 (0) | 2021.07.02 |