[MySQL] 설치 및 접속

2022. 3. 26. 17:18BE/DB

 

맥북에서 데이터베이스를 돌리기 위해 mySQL을 설치할 것이다.

 

설치하기 앞서 egoing님의 database강의를 듣고 남긴 메모를 올리겠다.

 


DataBase

(2022-03-24 egoing 생활코딩 참고)

 

데이터베이스의 본질

input & output

  • input -> create, update, delete로 나눌 수 있다.
  • output -> read

CRUD

  • Create
  • Read
  • Update
  • Delete

file vs database

File -> Spreadsheet -> Database

 

File

  • 데이터가 중복 저장될 가능성이 있다.
  • 데이터의 일관성이 훼손될 수 있다.
  • 데이터의 정의와 프로그램의 독립성 유지가 불가능하다.
  • 데이터의 양과 종류가 많아지면 작업의 효율이 떨어진다.

-> 구조적으로 데이터를 정리할 필요가 생김.

 

Spreadsheet

  • File이 가진 문제점을 해결할 수 있었다.
  • 데이터를 공유하는 것이 어렵다.
  • 동시에 접근할 수 없다.

Database

  • 동시성 제어
  • 작업을 자동화할 수 있다.

 

 


 

MySQL 설치

 

install

 

homebrew를 이용한다.

brew update

brew search mysql

brew install mysql

 

원하는 버전이 있으면 brew install mysql@version_you_want 없고 그냥 최신 버전은 mysql만 입력하면 된다.

 

설치 완료 후 서버 실행

 

mysql.server start // 서버 시작
mysql.server stop // 서버 종료
mysql.server status // 서버 상태 출력

 

자세히 살펴보면 아래에 이렇게 적혀있다.

 

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 -uroot

To restart mysql after an upgrade:
  brew services restart mysql
Or, if you don't want/need a background service you can just run:
  /opt/homebrew/opt/mysql/bin/mysqld_safe --datadir=/opt/homebrew/var/mysql

설치 직후라 root계정의 password가 설정되어있지 않다.

 

password 설정을 원하면 mysql_secure_installation

 

password 설정 없이 실행을 원하면 mysql -uroot

 

초기 설정

 

password 설정을 진행한다.

mysql.server start

mysql_secure_installation

 

sql server를 start 해주지 않으면 error가 발생한다.

 

Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

 

정상적으로 절차를 밟았다면 password 설정에 관한 몇 가지 질문을 한다.

 

 

1. 비밀번호의 복잡도

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?

yes는 복잡한 비밀번호를 no를 간단한 비밀번호를 설정할 수 있다.

 

 

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?

원한다면 YES를 입력하면 됩니다. 별일 없으면 yes.

 

 

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?

보안상의 이유로 root의 원격 접속을 금지할지 묻는다.

 

로컬에서 개발 공부를 목적으로 하기에 yes를 선택했다.

 

 

4. 테스트 데이터베이스 삭제

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?

yes. test database는 삭제해도 문제없다.

 

 

 

5. 변경된 권한을 적용

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

yes를 입력해서 적용하면 된다.

 

ALL done!

 

mySQL 접속

 

mySQL을 터미널을 통해 접근한다고 가정하면

mysql.server start

// 로컬 DB 접속
mysql -u root -p  
// user = root, password 입력

// 원격 DB 접속 hostname:3306
mysql --protocol=tcp -h 'hostname' -P 3306 -u [username]  -p [database-name]

-p만 입력하면 password를 입력하라고 한다.

 

이 과정이 싫다면 -p password입력 한 번에 할 수 있다.

 

그래도 보안을 위해서 두 번에 나눠서 입력하기를 권장한다.

 

mysql>를 볼 수 있다면 접속에 성공한 것이다.


 

mysql 기본 명령어

 

mysql> status // 현 상태 출력

mysql> exit // mysql 나가기

'BE > DB' 카테고리의 다른 글

[DB] DML  (0) 2022.04.07
2022-04-06 Database_3  (0) 2022.04.07
[MySQL] 스키마 & 테이블  (0) 2022.04.05
2022-03-31 DataBase_2  (0) 2022.03.31
2022-03-16 DataBase_1  (0) 2022.03.16