티스토리 뷰

반응형

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

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함