Back-End/MySQL

[MySQL] 설치 및 시작(MacOS 환경, DBeaver)

유자맛바나나 2021. 7. 13. 02:40

1. 터미널 실행 후 아래를 입력해 MySQL 설치

brew install mysql 

 

2.  설치 완료 후 설정

We've installed your MySQL database without a root password. To secure it run:
mysql_secure_installation → 보안 설정


MySQL is configured to only allow connections from localhost by default

To connect run:
mysql -u root → 터미널에서 root 계정으로 접속

To have launchd start mysql now and restart at login:brew services

start mysql Or, if you don't want/need a background service you can just run:
mysql.server start → 서버 시작

설치를 완료하면 위와 같은 문구가 나오는데 각 문구의 의미를 이해하고 서버 시작, 보안 설정 등을 해야한다

 

3. 서버 시작

mysql.server start 

 

4. 보안 설정

아래를 입력하여 보안 설정을 시작한다

mysql_secure_installation

 

4.1. root 계정 Password 설정

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: No

MySQL이 8버전으로 넘어오면서 새로운 password 정책이 생겼다. 과거와 같이 간단한 password 만 입력하는 정책을 사용하려면 No를 입력한 후 비밀번호를 설정한다.

 

4.2. 익명사용자 제거

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y

Y: 익명사용자는 MySQL 출입을 바로 허용하므로 삭제 권장

 

4.3. root 계정 원격 접속 차단

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y

Y: root 계정에 대해 원격 접속을 차단하고 localhost 로만 접속할 수 있도록 설정 권장

 

4.4. test db 삭제

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y

Y: test db 및 접속 정보 삭제 권장

 

4.5. 변경된 권한 적용

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

Y: 변경된 권한 바로 적용

 

5. DB, 계정 생성

5.1. root 계정으로 접속

mysql -u root -p

 

5.2. DB 생성

create database mydb;
show databases;

 

5.3. 계정 생성

create user 'myuser'@'localhost';

 

5.4. mydb의 모든 권한을 myuser 계정에 부여

5.4.1. localhost User 생성

grant all on devdb.* to 'devuser'@'localhost';

`localhost`에서만 접속 가능하도록 설정.

 

5.4.2. 외부접속 허용 User 생성

grant all on devdb.* to 'devuser'@'%';

외부 접속 허용하고 싶다면 `%`

 

 

6. DBeaver에서 접속

6.1. Connect to a database에서 MySQL 선택

 

6.2. DB 및 user 정보 입력

Database, Username, Password를 차례대로 입력한다

 

6.3. JDBC 설정 변경

 

8.0 버전부터 로컬 개발 시 보안 강화로 설정을 변경해줘야 한다

  • allowPublicKeyRetrieval: True
    Public Key를 서버에서 받아오는 것 True
  • useSSL
    데이터 암호화 인증 사용 False

6.4.  Test Connection 후 완료

좌측 하단에 Test Connection을 클릭하여 DB 연결에 문제가 없는지 확인 후 완료를 한다