MySQL 8.0 구성

EnoSoup·2021년 7월 23일
0

MySQL

목록 보기
1/1
post-thumbnail

구축 방법

설치

# rpm Repo 다운로드
$ wget http://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm

# Repo 설치
$ sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm

# Mysql 설치
$ sudo yum -y install mysql-community-server

# datapath 변경방법
1. 최초 설치 후 my.cnf default 상태에서 mysqld 실행/종료
$ sudo systemctl start mysqld
$ sudo systemctl stop mysqld

2. 새로운 디렉터리 생성
$ sudo mkdir /data
$ rsync -av /var/lib/mysql /data/
$ chown -R mysql:mysql /data/mysql

3. my.cnf 수정
$ sudo vi /etc/my.cnf
[mysqld]
#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
datadir=/data/mysql
socket=/data/mysql/mysql.sock

3. mysqld 실행
$ sudo systemctl start mysqld
$ netstat -nltp
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      -
tcp6       0      0 :::22                   :::*                    LISTEN      -
tcp6       0      0 :::33060                :::*                    LISTEN      -
tcp6       0      0 :::3306                 :::*                    LISTEN      -
tcp6       0      0 :::111                  :::*                    LISTEN      -

4. mysql 비밀번호 확인 및 접속
$ sudo cat /var/log/mysqld.log | grep -i "password"
[MY-010454] [Server] A temporary password is generated for root@localhost: B(,2Gmszgktg
$ mysql -u root -p
Enter:
error!! sock error 발생!!

5. mysql.sock error 조치방법
## mysql.sock 파일을 찾을 수 없어서 원본 mysql.sock을 심볼릭 링크를 걸어줘야함
$ sudo ln -s /var/lib/mysql/mysql.sock /data/mysql/mysql.sock

6. mysqld 실행 및 접속
$ sudo systemctl start mysqld
$ mysql -u root -p
Enter:
mysql>

설정

# mysql 8.0 사용 시 비밀번호 정책 변경
mysql> set global validate_password.policy=low;
mysql> set global validate_password.length=4;
mysql> set global validate_password.mixed_case_count=0;
mysql> set global validate_password.number_count=0;
mysql> set global validate_password.special_char_count=0;

# Mysql 유저생성 및 권한부여
mysql> CREATE USER 'test'@'%' IDENTIFIED BY '1234';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';
mysql> flush privileges;

# Mysql 유저삭제 방법
mysql> drop user '사용자'@'localhost';

# innotop 설치
$ wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/innotop/innotop-1.9.1-1.fc19.noarch.rpm
$ sudo yum -y install innotop-1.9.1-1.fc19.noarch.rpm

# innotop DBD-connector 업데이트
$ wget https://lefred.be/wp-content/uploads/2019/06/perl-DBD-MySQL-4.044-1.el7_.x86_64.zip
$ unzip perl-DBD-MySQL-4.044-1.el7_.x86_64.zip
$ sudo yum -y install perl-DBD-MySQL-4.044-1.el7.x86_64.rpm
### DBD-connector 관련자료 : https://lefred.be/content/perl-mysql-8-0/

# innotop 실행
$ innotop -h 127.0.0.1 -u root -p 1234

docker-compose 설치방법

# AWS EC2 DATE 설정
$ sudo rm -f /etc/localtime
$ sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

# docker-compose.yml 작성
$ sudo vi docker-compose.yml
mysql-server:
  image: mysql:8.0.17
  container_name: mysql-server
  hostname: mysql-server
  restart: always
  labels:
    - "name=mysql"
    - "mode=standalone"
  network_mode: host
  ports:
    - 3306:3306
  environment:
    - MYSQL_ROOT_PASSWORD=1234
    - MYSQL_USER=test
    - MYSQL_PASSWORD=1234
  volumes:
    - /usr/local/docker/mysql/initdb:/docker-entrypoint-initdb.d/:ro
  # mysql /datadir 생성 후 PATH 추가
    - /datadir:/var/lib/mysql:rw
    - /usr/local/docker/mysql/config/conf.d:/etc/mysql/conf.d
    - /etc/localtime:/etc/localtime:ro

# docker-compose.yml dir에서 커맨드 실행
$ docker-compose up -d

# ps 확인
$ docker-compose ps
Name                   Command               State                 Ports
------------------------------------------------------------------------------------------
mysql   docker-entrypoint.sh --cha ...   Up      0.0.0.0:3306->3306/tcp, 33060/tcp

docker-compose MySQL 설정

# Mysql 접속
$ docker exec -it 컨테이너id /bin/bash
$ mysql컨테이너] mysql -u root -p
enter: "password 입력"

# Mysql 유저생성 및 권한부여
mysql> CREATE USER 'test'@'%' IDENTIFIED BY '1234';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';
mysql> flush privileges;

# Mysql 유저삭제
mysql> drop user '사용자'@'localhost';
profile
Cloud Engineer@Plateer. 클라우드 상에서 엔지니어링을 재미있게 하는 엔지니어입니다.

0개의 댓글