반응형
1. 개요
- ubuntu20.04 또는 22.04 서버에 mysql8버전을 설치해보자.
- MySQL 8은 대중적인 오픈 소스 관계형 데이터베이스 관리 시스템인 MySQL의 최신 버전입니다. 2018년 4월에 출시되었으며 이전 버전에 비해 몇 가지 새로운 기능과 개선 사항이 포함되어 있습니다.
2. Mysql5 vs Mysql8
- MySQL 8에는 MySQL 5에 비해 몇 가지 향상된 기능과 새로운 기능이 포함되어 있습니다. MySQL 5와 MySQL 8의 주요 차이점은 다음과 같습니다.
- JSON 지원: MySQL 8은 JSON 데이터 유형에 대한 기본 지원을 포함하고 JSON 데이터 작업을 위한 기능을 제공합니다. MySQL 5에는 이 기능이 포함되어 있지 않습니다.
- 창 함수: MySQL 8에는 개발자가 현재 행과 관련된 일련의 행에 대해 복잡한 분석 쿼리를 수행할 수 있는 창 함수에 대한 지원이 포함되어 있습니다. MySQL 5에는 이 기능이 포함되어 있지 않습니다.
- 향상된 보안: MySQL 8에는 암호 정책 적용과 같은 향상된 보안 기능과 연결에 SSL(Secure Socket Layer) 암호화를 사용하는 기능이 포함되어 있습니다. MySQL 5에는 이러한 기능이 포함되어 있지 않습니다.
- Atomic DDL(Atomic Data Definition Statements): MySQL 8을 사용하면 전체 데이터베이스를 잠그지 않고도 데이터베이스 스키마를 변경할 수 있으므로 유지 관리를 위한 다운타임이 줄어듭니다. MySQL 5에는 이 기능이 포함되어 있지 않습니다.
- 성능 개선: MySQL 8에는 InnoDB 스토리지 엔진에 대한 개선 사항과 더 빨라진 쿼리 실행 시간이 포함되어 있습니다. MySQL 5는 비교할 때 성능이 좋지 않을 수 있습니다.
- 그룹화 세트: MySQL 8은 GROUPING SETS에 대한 지원을 도입하여 SQL 쿼리에서 보다 복잡한 GROUP BY 절을 허용합니다.
- 문자 집합 지원: MySQL 8은 기본적으로 utf8mb4 지원을 포함하여 추가 문자 집합 지원을 제공합니다.
3. Mysql 설치하기
- 아래쉘을 따라해보자.
# 패키지 업데이트
$ sudo apt-get update
# 최신mysql설치
$ sudo apt-get install mysql-server
# 설치된 버전확인
$ sudo mysql --version
# root 계정으로 접속하기
$ sudo mysql -u root -p$
- sudo mysql -u root -p 입력하면 비밀번호 입력화면이 나온다. 처음에는 그냥 Enter입력후 접속한다.
4. 계정생성 및 권한부여
- 아래내용대로 따라해보자.
- MySql 8.0이상은 패스워드 규칙이 caching_sha2_password authentication 이다.
- caching_sha2_password 은 sha256_password와 동일하나 서버 캐싱을 이용한다.
- caching_sha2_password 를 사용하려면 SSL을 사용하거 RSA 보안을 적용한 비밀번호 연결이 필요하다
- 그래서 mysql_native_password를 사용하자.
# mysql 데이터베이스
mysql > use mysql
# root계정 비밀번호
mysql > alter user 'root'@'localhost' identified with mysql_native_password by 'root123!';
# arckwon 계정생성
mysql > create user 'arckwon'@'%' identified by 'arckwon123!';
# root권한부여
mysql > grant all privileges on *.* to arckwon@'%' with grant option;
# 비밀번호 mysql_native_password 설정
mysql > alter user 'arckwon'@'%' identified with mysql_native_password by 'arckwon123!';
# 변경내역적용
$ flush privileges;
- 계정마다 alert 명령어로 mysql_native_password를 적용해도되고 아래처럼 전역으로 설정해도 된다.
[mysqld]
default_authentication_plugin=mysql_native_password
5. 외부접속설정
- mysqld.cnf 수정
# mysqld.cnf 접속
$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
# bind-address 설정
# 기존 127.0.0.1 에서 0.0.0.0 으로변경
$ bind-address = 0.0.0.0
- 방화벽 기본포트 3306 OPEN
# 방화벽 설정
$ sudo ufw allow out 3306/tcp
$ sudo ufw allow in 3306/tcp
# 재시작
$ sudo service mysql restart
6. 실행/종료 명령어
- 아래와 같다.
sudo service mysql start
sudo service mysql restart
sudo service mysql stop
sudo service mysql status
7. 접속확인
- 개인적으로는 워크브렌치말고 sqlyog를 사용한다.
반응형
'데이터베이스 > mysql' 카테고리의 다른 글
[Mysql] 함수(function) 생성예제 및 실행권한 (0) | 2023.04.06 |
---|