MySQL 8.0 설치 (Real Mysql 8.0)
Real MySQL 8.0을 공부하며 첫 단계인 MySQL 설치 방법에 대해 정리하려 합니다. 책에서는 간단하게 UI를 통해 설치하는 방법에 대해 자세히 나와 있어 Linux환경에서 커뮤니티 버전을 Binary 파일을 이용하여 설치하는 방법에 대해 정리했습니다.
설치 방법
-
Binary 설치 파일 다운로드
# 다운로드 할 경로에 접근 $ cd /usr/local # binary 파일 다운로드 (8.0.21 버전) $ wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz # 다운로드 파일 확인 $ ll mysql-8.0* -rw-r--r-- 1 root root 347814208 Jun 17 2020 mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz
-
압축 해제 및 보안을 위한 OS 계정, 그룹 추가
# tar 명령어를 사용하여 압축해제 $ tar -xvf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz # mysql 그룹 & USER 그룹 추가 $ groupadd mysql $ useradd -r -g mysql -s /bin/false mysql > **옵션 의미** > -r: 시스템 계정 생성 , -g: 세로운 그룹명 -s 새로운 계정의 로그인 Shell > /bin/false: FTP접속 불가, SSH 접속불가 > **mysql 계정 생성 이유** > EC2에 있는 DB 데이터에 불특정 OS계정이 접근하지 못하도록 별도의 계정을 생성하여 보안적으로 관리하기 위함입니다. # Soft Link 연결 $ ln -s mysql-8.0.21-linux-glibc2.12-x86_64 mysql
-
MySQL 서버 디렉토리 경로 설정 (Config 정리)
## config 파일 생성 $ vi /etc/my.cnf [mysqld] user=mysql basedir=/usr/local/mysql datadir=/data/mysql socket=/data/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 #replication log-bin=/bin_log/mysql-bin server-id=1 #character_set collation-server = utf8mb4_unicode_ci character-set-server = utf8mb4 skip-character-set-client-handshake [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/mysql_data/mysql.pid [client] socket=/data/mysql.sock # include all files from the config directory !includedir /etc/my.cnf.d
-
Config 경로 생성
# Data 디렉토리 (/data/mysql) $ mkdir -p /data/mysql $ chown -R mysql.mysql /data # pid 디렉토리 (/mysql_data) $ mkdir -p /mysql_data $ chown mysql.mysql /mysql_data # Bin_log 디렉토리 (/data/bin_log) $ mkdir -p /bin_log $ chown -R mysql:mysql /bin_log
-
MySQL 설치 & 기동
#설치파일 경로 접속 $ cd /usr/local/mysql #Mysql Install (Config 파일 미세팅 시, 경로 지정 옵션 필요) $ /usr/local/mysql/bin/mysqld --initialize-insecure #MySQL 기동 $ /usr/local/mysql/bin/mysqld_safe &
[Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the –initialize-insecure option
- –initialize-insecure 옵션으로 Root 계정이 비밀번호가 없어, 보안 상 경고가 나오지만, 비밀번호는 차후에 생성 예정
-
MySQL 명령어 설정 & 접속
# Mysql 명령어를 Location 관계없이 사용할 수 있도록 설정 $ sudo vi /etc/profile # 맨 하단으로 이동하여 아래 내용 추가 export DB_HOME=/usr/local/mysql export PATH="$PATH:/usr/local/mysql/bin" # 해당 내용 저장 후 아래 명령어 실행 $ source /etc/profile # Mysql 접속 mysql -uroot
접속 에러 발생 시 해결 방법
- error while loading shared libraries: libncurses.so.5
- error while loading shared libraries: libtinfo.so.5
# 에러메시지에 출력된 파일 형식과 다른 버전이 있는지 탐색 $ cd / $ find | grep libtinfo # Soft Link를 통해 해당 에러메시지 파일 대신 결과로 도출된 파일 바라보도록 설정 ## 결과창에 다음과 같은 경로로 나왔다고 가정 (/usr/lib64/libtinfo.so.6) $ ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5 $ ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5
-
root 비밀번호 설정
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '[비밀번호]'; Query OK, 0 rows affected (0.00 sec)