전 포스팅인 세팅 [1] 에서 세팅이 끝났다면 이제 사용해야할 툴 을 다운로드 하여야 합니다.

 

필요하다면 generated 된 비밀번호를 변경하여야 합니다.

 

비밀번호 변경

mysql -u root -p 명령어로 로그인 시 비밀번호 ( generated - /var/log/mysqld.log ) 를 입력 후 해당 mysql은 8.0 버전 이기 때문에 로그인 후 mysql 선택시

 

mysql> use mysql;
No connection. Trying to reconnect...
Connection id:    11
Current database: *** NONE ***

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> 

 

와 같이 비밀번호를 변경해야 하는 문구가 발생합니다. 그래서 관련 내용을 찾기 위해 구글링을 해보았습니다.

1.  SET PASSWORD 

mysql> SET PASSWORD = PASSWORD('ppap1234!@');
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PASSWORD('ppap1234!@')' at line 1

정상적으로 되지않습니다.

2. ALTER 

mysql> ALTER USER'root'@'%' IDENTIFIED BY 'Ppap1234!@';
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

정상적으로 되지않았습니다.

 

해결

mysql> set password='Testpw12#$';
Query OK, 0 rows affected (0.01 sec)

FLUSH PRIVILEGES;

 

이제 변경도 완료 했기 때문에 아래와 같이 정상적으로 변경됨을 기대합니다.

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> 

위의 상태를 만들어 놓은 후 

 

DBeaver 

네 DBMS 관리 UI 툴로 제가 선택하게 된 툴입니다.

해당 설치를 위해서 https://dbeaver.io/ 로 이동 합니다.   메인 화면에서 Download를 선택 후  Windows Installer 

 

설치 후 실행 시 Mysql 선택

 

여러가지 세팅을 완료하고 접속을 하려고하면 "is not allowed to connect to this MySQL Server"  메시지가 발견된다.

포스팅 1에서 말씀 드렸듯이 NCP(NaverCloudPlatform)의 VM 을 사용하였습니다.  접속이 안되는 메시지 이기 때문에 1차적으로 ACG를 확인하여야 합니다. ( 공인 IP는 달려있는 상태입니다. ) 

 

테스트 용 및 Dev , Beta 환경이기 때문에 으로 일단은 0.0.0.0/0 의 3306 포트를 열어 놓았습니다. ( 위의 환경은 민간 Classic 환경입니다. ) -> 만약에 Prod 환경이라면 3306를 열지 않아도 BE를 통해서 DB를 조작하기때문에 상관이 없을 수 있습니다. 

--> ? 하지만 결과는 동작하지 않습니다. 

서버도 잘 떠있는데 말이죠 ... 여기서 이제 확인해야 할 것은 mysql 자체의 방화벽 설정입니다.

mysql 자체에서 허용을 해줘야 하는 부분인데 아무리 테스트여도 root로 열어주긴 싫기 때문에 ID를 새로 생성하였습니다.

// nstpmanager 계정 생성 
CREATE USER nstpmanager@'%' IDENTIFIED BY '비밀번호';

// nstpmanager 계정에 모든 IP허용
GRANT ALL ON *.* TO nstpmanager@'%';

 

그리고 DBeaver 에서 재시도

이부분은 간단합니다. 해당 Driver properties 에서 allowPublicKeyRetrieval 을 YES 로 허용해주면 됩니다.

 

 

완료 

 

 

** caching_sha2_password 오류에 대해서

아래의 SQL 구문을 통해서 DBeaver 접속을 해결하였지만 의문이 들긴 합니다.최신버전에서 sha2 방식을 사용한다면 해당 플러그인을 툴에서 지원하던지 해야되는데 접속을 위해서 DBMS에서 기존방식을 채택한다라 이부분도 나중에 확인해야 할 과제겠네요

 

 

안녕하세요 깍돌이입니다.

 

저ㅓㅓㅓㅓㅓㅇ말 오랜만에 글을 작성하는 거 같습니다. ㅜ

 

제품 릴리즈 배포하느라고 너무 바빴습니다. ( 변명 )  

 

사실 데모 시연을 하기 위해서 DB서버를 하나 세팅해놓아야 하는데 하는 일이 생겨서 남겨 놓으려고 합니다. 

 

OS는 Centos 7.8 

DBMS는 Mysql 8.0.xx버전을 사용할 생각입니다.

개발 플랫폼 Node.js를 사용합니다.

 

 

OS

Centos 7.8 은 설치가 되어있다는 가정하에 작성하겠습니다. 저는 NCP(NaverCloudPlatform)에 있는 Centos 7.8을 사용하였습니다.

 

DBMS

Mysql을 설치하기 위해서는 사이트를 접속해야 되니 아래의 사이트로 접속합시다.

https://www.mysql.com/downloads/

 

MySQL :: MySQL Downloads

Contact MySQL  |  Login  |  Register The world's most popular open source database MySQL.com Downloads Documentation Developer Zone MySQL Enterprise Edition includes the most comprehensive set of advanced features and management tools for MySQL. MySQL

www.mysql.com

Enterprise는 기업용이기 때문에 유료 형태로 제공이 됩니다. 우리는 무료 버전을 써야 하기 때문에

밑에 있는 Community Download를 클릭합시다.

 

Centos의 경우 YUM Repo를 사용하기 때문에

 

 

MySQL Yum Repository를 선택합니다.

 

그리고 Centos 7버 전이기 때문에 7 버전에서 Download 버튼을 클릭합니다.

 

 

Download버튼을 누르면 ~ 로그인을 해야 된다 뭐 이런 이야기가 나오는데요

 

하실 필요는 없으시고  No thanks, just start my download -> 우클릭 -> 링크 주소 복사 (E)

하고 

 

나의 VM으로 접속하셔서

 

 

wget [복사한 링크  붙여 넣기]  후 Enter 시 위와 같이 mysql repo 작업을 하는 rpm 이 다운로드되고

 

rpm -ivh mysql80-community-release-el7-3.noarch.rpm 

을 입력하여 레포를 설정합시다.

 

작업 후 확인을 위해서 

cat /etc/yum.repos.d/mysql-community.repo를 확인해 봅시다

 

 

 

우리의 Centos에 mysql 8.0을 깔기 위한 repository 작업이 끝났습니다.

yum -y install mysql-server로  해당 레포를 가지고 설치를 시작해봅시다.

 

설치 완료 후 mysql이라고 명령어를 검색하게 되면

 

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock ' (2) 에러가 발생합니다.

mysql 이 시작되기 않았기 때문인데요

 

아래의 명령어로 실행 , 활성화, 상태를 확인해봅시다

 

sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo systemctl status mysqld

 

 

mysql_secure_installation라는 걸 통해서 보안설정을 하라는 다른 포스팅도 있고 그런데요 저는 8.0을 설치했기 때문에 따로 할 필요는 없어 보입니다.

 

 

 

mysqld -uroot -p

 

입력하시게 되면 root 비밀번호를 입력하여야 하는데 

?? 설정한 적이 없기 때문에 비밀번호를 알 수가 없습니다.

 

그러기 때문에 대부분 비밀번호 입력 없이 엔터를 치시면 접속이 된다고 하였지만

 

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

 

-> 저는 접속이 되지 않았습니다. ㅜ

 

일단 접속을 하기 위해서

 

vi /etc/my.cnf 파일에

 

skip-grant-tables를 입력하고 저장합니다.

 

 

그리고 systemctl restart mysqld

mysql -u root -p 비밀번호 무시하고 엔터 

 

 

접속 성공!!

 

 

------> 위의 과정은 모든 게 잘못된 과정이었습니다. 

 

Repo 까진 정상이었고 설치 시에 mysql-server가 아니라 

mysql-community-server로 설치하여야 합니다.

(5.6 이후로는 무료 버전에 community 가 붙는다고 합니다. )

 

yum -y install mysql-server              ----- > ( X ) 

yum -y install mysql-community-server ---->( O ) 

 

설치 완료 후

 

systemctl start mysqld

mysql -u root -p 시 비밀번호는

 

vi /var/log/mysqld.log

로그에 들어가면 password 가 generator 되어있습니다.

 

해당 비밀번호를 가지고 접속하시면 됩니다.

 

진짜 접속 성공!!

 

 

 

+ Recent posts