이때까지는 데이터베이스를 장고에서 제공하는 ORM을 통해서만 사용 해왔었는데요, 알고 제대로 써야겠다고 생각하여 기초부터 공부해려고 합니다.
본 포스팅은 유튜브 생활코딩님의 데이터베이스 강좌를 보고 정리한 내용입니다.
1. MySQL의 구조
관계형 데이터베이스는 엑셀과 같은 스프레드시트에 데이터를 저장합니다 즉 표에 정보가 저장된다는 말인데요.
표(Table)가 많아진다면?
-
정리될 필요성이 생김(파일에서 디렉토리가 필요한 상황이 생기는것과 같음) MySql에서는 서로 연관된 표들을 그루핑해서 연관되어있지 않은 표들과 구분짓는 폴더가있는데 이를 database라 칭합니다.
-
Schema(database)는 표들을 그루핑할때 사용되는 일종의 폴더와 같습니다.
-
Schema 는 서로 연관된 데이터들을 그루핑 해준다는 것을 기억해줍시다.
-
반면에 PostgreSQL에서는 이를 Mysql에서의 database는 Schema라고 불리우며 PostgreSQL 에서 database는 schema의 상위 개념입니다. Postgres에서의 database는 Mysql 에서는 database server과 같습니다. 헷갈릴 수 있으니 유의합시다.
그림으로 보면 아래와 같습니다.
2. DB 사용의 장점
데이터베이스는 자체적인 안전 체계가 있기에 데이터를 안전하게 보관할 수 있습니다
권한 기능이 있어, MySQL에 여러사람들을 등록할 수 있고 특정 롤을 지정해줄 수 있습니다.
3. MySQL 서버 접속
brew를 통해서 처음 mysql을 설치하면 root에 password가 설정되어있지 않은데 이를 설정해봅시다
- 먼저 MySQL은 멈춰있어야 합니다. 아래 커맨드를 입력해 종료해 줍시다.
$ brew services stop mysql
- 그다음 mysql을 안전모드로 실행합니다.
$ sudo mysqld_safe --skip-grant-tables
- 터미널을 하나 더 열고 password를 초기화해줍니다.
mysql -u root UPDATE mysql.user SET authentication_string=null WHERE User='root'; FLUSH PRIVILEGES; exit;
- 마지막으로 새로운 비밀번호를 설정해주면 끝입니다.
mysql -u root ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';
- 비밀번호와 함께 서버접속 하기
$ mysql -u root -p Enter password: <yourpassword>