본문 바로가기
IT개발/MySQL

MySQL 시작하기

by 시간기억자 2024. 11. 15.
반응형

MySQL 시작하기

MySQL 설치방법

  • 버전 선택 및 다운로드

 

ARM 과 x86 차이

1. ARM (Apple Silicon)
macOS 14 (ARM, 64-bit): 이 버전은 Apple의 M1, M2 칩과 같은 ARM 아키텍처를 사용하는 Mac에서 실행됩니다.
파일 이름: mysql-8.0.40-macos14-arm64.dmg
장점: ARM 아키텍처에 최적화되어 있어 성능이 더 좋고, 전력 효율성 또한 높습니다.

2. x86 (Intel)
macOS 14 (x86, 64-bit): 이 버전은 Intel 프로세서를 사용하는 Mac에서 실행됩니다.
파일 이름: mysql-8.0.40-macos14-x86_64.dmg
장점: 기존 Intel 기반 Mac에서 호환성이 보장됩니다.

* 선택 방법
Apple Silicon (M1, M2 등): ARM 버전을 다운로드하세요.
Intel Mac: x86 버전을 다운로드하세요.

 

  • 나는 Intel 버전이기 때문에 ‘macOS 14 (x86, 64-bit)’ 다운로드

  • 다운로드된 파일 더블클릭 후 설치
  • 설치과정중 ‘계속’이나 ‘동의’버튼을 눌러 쭉쭉 진행하면 되고, 중간에 root 사용자(관리자 계정)가 사용할 비밀번호 설정하는 부분이 뜨는데, 개인이 사용하고자 하는 비밀번호를 입력하고 ‘finish’ 버튼 누르면 됨



MySQL Workbench 설치방법

  • MySQL Workbench는 MySQL 데이터베이스를 관리하고 개발하기 위한 통합 환경(IDE)입니다. 주로 데이터베이스 설계, 관리, 쿼리 작성 및 데이터베이스와의 상호작용을 쉽게 하기 위해 사용됩니다.
    (Oracle의 SQL Developer와 비슷한 거라고 생각하면 됨)

  • https://dev.mysql.com/downloads/ 접속
  • ‘MySQL Workbench’ 클릭

 

  • 이 또한 자신의 mac 버전에 맞는 파일을 다운로드 하면 됨.

 

  • 그런데 별 생각없이 바로 뜨는 최신버전을 다운받아 설치하다 보니 버전 호환이 안되서 설치가 안된다는 이슈가 발생함.

 

  • 알고보니 내가 쓰는 맥북은 좀 오래되서 MAC OS 12대 버전이었는데, MySQL Workbench 최신 버전은 MAC OS 13대 버전 이상에서 설치가 가능한거였다.
  • 이를 해결하기 위해서는 다운로드 화면에서 ‘Archives’에 들어가 ‘Product Version’을 변경해가며 MAC OS 어떤 버전부터 사용이 가능한지 확인을 해야한다. 



  • 버전을 바꾸다 보면 아래와 같이 호환정보에 대한 메세지가 바뀌면서 뜬다.

 

  • 버전별 호환 메세지를 확인하며 나에게 맞는 버전을 선택해서 설치하니 설치가 잘 완료됨.




MySQL Workbench 시작하기

스키마생성

  • MySQL Workbench 실행
  • MySQL Connections에 ‘Local Instance 3306’ 클릭
  • MySQL 설치시 Root 사용자 비밀번호 지정했던 비밀번호를 입력후 접속

 

  • 이러면 기본적으로 관리자 계정으로 접속을 했다고 생각하면 되고, 실제 프로젝트에 사용할 새로운 스키마를 생성해줘야 한다.
  • 좌측 SCHEMAS 부분에서 마우스 우클릭 후 ‘Create Schema’ 클릭 (또는 상단에 ‘스키마 생성’ 아이콘 클릭)

 

  • Schema Editor에 각 항목 설정 후 ‘Apply’ 버튼 클릭하여 스키마 생성
    → Schema Name : 데이터베이스 이름 정의
    → Character Set : 데이터베이스에서 사용할 문자 인코딩 방식 설정
    → Collation : 문자열 비교 및 정렬 규칙 정의
  • Collation은 어떤게 좋은건지 잘 모르겠어서 일단 Default 값으로 놔둠
  • ‘Apply’ 버튼을 누르면 해당 스키마 생성에 대한 SQL문이 한번 더 뜨는데, 여기서도 ‘Apply’ 누르면 됨

 

  • 최종적으로 해당 스키마가 잘 생성되었다

 

계정생성 및 권한설정

  • Administration → ‘Users and Privileges’ 클릭 → ‘Add Account’ 클릭

 

  • 그런 다음 ‘Login’ 탭 부분이 활성화 되는데 필요한 정보를 입력 후 ‘Apply’ 버튼을 누르면 된다.

 

1. Login Name (로그인 이름)
의미: 데이터베이스에 접속하기 위한 사용자 계정의 이름을 지정합니다. 이 이름은 MySQL 서버에서 사용자를 식별하는 데 사용됩니다.
특징: 동일한 이름으로 여러 계정을 생성할 수 있으며, 각 계정은 서로 다른 호스트(서버)에서 연결할 수 있습니다. 예를 들어, 같은 로그인 이름을 가진 사용자가 각각 다른 IP 주소에서 접속할 수 있도록 설정할 수 있습니다.

2. Authentication Type (인증 유형)
의미: 사용자 인증 방식을 선택합니다. 일반적으로 "Standard"를 선택하면 기본 비밀번호 기반 인증 방식이 사용됩니다.
선택 옵션:
Standard: 기본적인 비밀번호 인증 방식입니다. 비밀번호를 사용하여 사용자를 인증합니다.
MySQL에서는 다른 인증 방법도 제공할 수 있지만, 일반적인 경우에는 "Standard"를 선택하면 됩니다.

3. Limit to Hosts Matching (호스트 제한)
의미: 이 사용자 계정이 연결할 수 있는 호스트를 제한하는 규칙을 설정합니다. 이 항목은 보안성을 높이는 데 도움이 됩니다.
특징:
%: 모든 호스트에서 연결 가능함을 의미합니다.
_: 단일 문자 대체를 위한 와일드카드입니다. 예를 들어, host_1은 hostA1, hostB1 등과 같은 호스트를 포함합니다.
특정 IP 주소나 도메인 이름을 입력하여 해당 위치에서만 사용자가 접속할 수 있도록 제한할 수 있습니다.

예시
Login Name: my_user
Authentication Type: Standard
Limit to Hosts Matching: 192.168.1.% (이 경우, 192.168.1.0부터 192.168.1.255까지의 모든 IP에서 연결 가능)

 

 

  • 그 다음에는 Administrative Roles 탭으로 넘어가서 필요한 권한설정을 해줄텐데, 일단 모든 권한을 부여하겠다.


1. Administrative Roles (관리 역할)
Administrative Roles는 사용자가 데이터베이스 서버에서 수행할 수 있는 관리 작업의 권한을 설정하는 부분입니다. 이 역할은 주로 데이터베이스 관리와 관련된 권한을 부여합니다. 일반적으로 제공되는 역할은 다음과 같습니다:

DBA (Database Administrator): 데이터베이스 관리자의 권한을 부여합니다. 이 역할을 가진 사용자는 모든 데이터베이스와 테이블에 대한 모든 권한을 가집니다.
Backup Admin: 데이터베이스를 백업하고 복원할 수 있는 권한을 부여합니다.
Replication Admin: 데이터베이스 복제와 관련된 작업을 수행할 수 있는 권한을 부여합니다.
Role Admin: 사용자 역할을 관리할 수 있는 권한을 부여합니다.
User Admin: 사용자 계정을 생성, 수정 및 삭제할 수 있는 권한을 부여합니다.
이러한 역할을 설정함으로써, 특정 사용자에게 필요한 권한만을 부여하여 데이터베이스의 보안을 강화할 수 있습니다.

2. Schema Privileges (스키마 권한)
Schema Privileges는 사용자가 특정 스키마(데이터베이스)에 대해 수행할 수 있는 권한을 설정하는 부분입니다. 각 스키마에 대해 다음과 같은 권한을 설정할 수 있습니다:

SELECT: 테이블에서 데이터를 조회할 수 있는 권한.
INSERT: 테이블에 데이터를 추가할 수 있는 권한.
UPDATE: 테이블의 데이터를 수정할 수 있는 권한.
DELETE: 테이블의 데이터를 삭제할 수 있는 권한.
CREATE: 테이블이나 기타 객체를 생성할 수 있는 권한.
DROP: 테이블이나 기타 객체를 삭제할 수 있는 권한.
INDEX: 인덱스를 생성하고 삭제할 수 있는 권한.
ALTER: 테이블 구조를 변경할 수 있는 권한.
GRANT: 다른 사용자에게 권한을 부여할 수 있는 권한.
이 권한은 사용자가 특정 스키마 내에서 어떤 작업을 수행할 수 있는지를 결정합니다. 예를 들어, 특정 사용자에게 데이터 조회 권한만 부여하고, 데이터 수정이나 삭제 권한은 주지 않으면, 해당 사용자는 데이터를 안전하게 조회할 수 있지만, 데이터에 대한 영향을 미치지 않게 됩니다.

결론
Administrative Roles: 사용자가 데이터베이스 서버에서 수행할 수 있는 관리 작업의 권한을 설정합니다.
Schema Privileges: 사용자가 특정 스키마 내에서 수행할 수 있는 작업의 권한을 설정합니다.
이 두 가지 설정을 통해 데이터베이스의 보안을 강화하고, 사용자에게 필요한 최소한의 권한만을 부여하여 시스템의 안전성을 높일 수 있습니다. 

 

반응형

댓글