티스토리 뷰
반응형
MySQL 설치
1. 의존성 패키지 설치
$ apt-get update
$ apt-get install cmake
$ apt-get install libssl-dev
$ apt-get install libboost-all-dev
$ apt-get install libncurses5-dev libncursesw5-dev
2. MySQL Community Server 8.0.19 tar.gz 다운로드
$ cd /usr/local
$ wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.19.tar.gz
$ tar xvfz mysql-8.0.19.tar.gz
3. MySQL 설치
$ cd /usr/local/mysql-8.0.19
$ 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 Error at CMakeLists.txt:352 (MESSAGE): Please do not build in-source
- 원인 : 소스 디렉토리 내에 build를 위한 디렉토리를 추가 생성하고, 그 하단에서 작업을 진행하도록 권고하기 때문에 발생
- 해결과정
$ cd /usr/local/mysql-8.0.19
$ rm -f CMakeCache.txt
$ mkdir wonjumysql1
$ cd wonjumysql1
$ 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
- 생성하는 디렉토리 (wonjumysql1) 의 이름은 자유롭게 만들면 된다.
- cmake 명령에 '..' 을 추가해서 실행해야 한다.
4. MySQL 데이터베이스 초기화
공식문서에 의하면, MySQL 을 설치한 후 mysql 시스템 데이터베이스의 테이블을 포함하여 데이터 디렉토리를 초기화해야 한다.
(1) mysql 그룹 & 유저 생성
$ groupadd mysql
$ useradd -r -g mysql -s /bin/false mysql
명령어 설명
- groupadd mysql : mysql 이라는 그룹을 만들어서 관리
- useradd : 새로운 사용자를 추가
- -r : system account 생성
- -g : 어떤 그룹에 넣어놓고 관리할 것인지
- -s : 유저의 로그인 shell 지정
- 마지막에 기술한 mysql 이라는 이름으로 새로운 사용자를 추가
(2) mysql-files 디렉토리 생성
$ cd /usr/local/mysql
$ mkdir mysql-files
(3) mysql 사용자 및 그룹의 디렉토리 소유권 및 권한 설정
mysql-files 의 권한을 수정해주고, MySQL 을 설치한 디렉토리도 mysql 계정으로 권한을 수정해준다.
$ chown -R mysql:mysql /usr/local/mysql
$ chown mysql:mysql mysql-files
$ chmod 750 mysql-files
명령어 설명
- chown : change own의 줄임말로, 파일의 소유권자를 변경
- ex) chown [소유권자]:[그룹식별자] [소유권을 변경하고 싶은 파일명]
- mysql-files 라는 디렉토리의 소유권을 mysql 그룹의 mysql 이라는 유저에게 할당하겠다는 의미
- -R : 하위 디렉토리까지 모든 소유권을 할당
- chmod : change mode의 줄임말로, 파일 & 디렉토리의 사용권한을 변경
- ex) chmod [옵션] [모드] [파일]
- 750
- 소유자권한 : 읽기, 쓰기, 실행
- 그룹권한 : 읽기, 실행
- 전체권한 : 없음
(4) 기본 데이터베이스 생성
$ bin/mysqld --initialize --user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
명령어를 수행하면 아래와 같은 글이 나오며, 임시 비밀번호가 발급된다. (빨간색 네모)
- mysql 서버에 연결할 때 필요하므로 기억해놓자. (추후에 변경)
5. root 암호 초기화
(1) mysql 서버 실행
$ bin/mysqld_safe --user=mysql &
- & : 백그라운드에서 서버를 실행
$ ps -ef | grep mysqld
- MySQL이 실행되고 있는지 확인할 수 있다.
(2) 서버 연결
$ bin/mysql -u root -p
- 명령어를 입력하고, 아까 발급받았던 임시 비밀번호를 입력하면 mysql 서버에 진입할 수 있다.
(3) 비밀번호 변경
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';
(4) 서버 종료
$ bin/mysqladmin -u root -p shutdown
Reference
- https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization.html#data-directory-initialization-server-actions
- https://salix97.tistory.com/141?category=837576
반응형
댓글