아래 링크에 접속하여 다운로드 할 MySQL 링크를 확인해줍니다.
https://www.mysql.com/products/community/
링크에 접속한 뒤 Download MySQL Community Edition을 클릭해줍니다.
CentOS에서 사용할 예정이므로 MySQL Yum Repository를 눌러줍니다.
자신의 OS에 맞게 다운로드 해줍니다 저는 CentOS 7을 사용하므로 두 번째 링크 입니다.
아래 MD5: 문자열 또한 복사해줍니다.
No thanks, just start my download. 버튼을 우클릭하여 링크를 복사 또는 다운로드 해줍니다.
구글에 md5 file checksum online 라고 검색하여 줍니다.
무결성 검사를 지원하는 웹페이지를 선택하여 들어가 주세요.
이곳은 제가 들어간 페이지 인데 Drop File Here 부분에 아까 다운로드 받은 파일을 넣어주면 MD5 해쉬 값을 알려줍니다.
https://emn178.github.io/online-tools/md5_checksum.html
아까 MySQL을 다운로드 할 때 보았던 MD5 의 해쉬값과 비교하여 동일한 해쉬값이 나왔다면 다운로드 받은 파일이 안전한 파일이라고 생각하시면 될 거 같습니다.
# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
# rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
위 링크는 No thanks, just start my download. 버튼을 우클릭하여 복사한 링크 입니다.
# yum update
# yum install mysql-server
설치 과정 생략
# vi /etc/my.cnf
[mysqld]
port=포트번호
[mysqld] 아래 포트를 추가해준다.
# firewall-cmd --permanent --zone=public --add-port=포트번호/tcp
success
# firewall-cmd --reload
success
# firewall-cmd --list-all
public (active)
ports: 포트번호/tcp
firewall-cmd --list-all 명령어를 입력했을 때 ports 부분에 자신이 추가한 포트번호가 있다면 성공적으로 등록한 것이다.
# service mysqld start
# systemctl enable mysqld
MySQL 8 버전은 설치시 초기 비밀번호가 설정된다.
Root로 로그인 하기 위해서는 해당 비밀번호를 설치시 확인하거나 또는 로그 파일에서 확인해야 한다
# cat /var/log/mysqld.log
'''
2022-04-09T13:18:34.486429Z 6 [Note] [MY-010454] [Server] A temporary password is
generated for root@localhost: eCWk*MbfH5Wp
'''
위 로그 파일 처럼 비밀번호를 확인할 수 있다.
# mysql -u root -p
Enter password: <임시비밀번호>
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.28
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> alter user 'root'@'localhost' identified by '변경할 비밀번호';
Query OK, 0 rows affected (0.07 sec)
mysql>
임시 비밀번호를 통해 root로 로그인을 한 뒤 비밀번호를 변경해주자.
mysql> alter user 'root'@'localhost' identified by 'PASSWORD';
해당 명령어를 입력하면 비밀번호를 변경 할 수 있다.
mysql> CREATE DATABASE 이름 default CHARACTER SET UTF8;
Query OK, 1 row affected, 1 warning (0.10 sec)
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| 이름 |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
CREATE DATABASE 이름 default CHARACTER SET UTF8; // 이름이란 DB생성
SHOW DATABASES; // 데이터 베이스 목록 확인
mysql> create user 'userid'@'%' identified by '비밀번호';
'userid'@ 뒷 부분에 '%'를 입력하면 외부 'localhost'를 입력하면 로컬에서만 사용이 가능하다.
mysql> grant all privileges on DB이름.* to '계정ID'@'%';
해당 계정에게 특정 DB의 모든 권한을 부여합니다.
모든 설정을 완료 했으니 외부 접속 테스트를 해봅시다.
참고로 MySQL 8 버전에서는 allowPublicKeyRetrieval 옵션 설정을 해줘야한다
DB툴에서 해당 옵션을 찾아 true로 바꾸어주자.
allowPublicKeyRetrieval=true
jdbc 주소는
jdbc:mysql://localhost:3306/database?allowPublicKeyRetrieval=true