1차 그룹프로젝트가 끝나고 내가 얼마나 부족한 지 알 수 있었다.
모래성이 무너질듯 불안하게 쌓여가고 있었는데, 그 모래성이 무너지지않도록 다시 한 번 처음부터 차근차근 정리해볼 생각이다.
사실 장고 초기세팅에관해서는 [Django] westagram (1) - 처음 셋팅하기 와 [Django] 그룹 프로젝트를 위해 장고 기본적인 세팅하기 를 참조하면 된다.
기본적인 가상환경 설치 및 필요한 패키지 설치, requirements.txt 만들기와 MySQL 연동하기 등 방법에 대해서 간단하게 쓰여져있다. 하지만 그중에서 자세하게 기억이 안나는 MySQL 부분을 중점적으로 다시 한 번 정리하고자 한다.
brew
로 설치하면 굉장히 편하다.brew install mysql
#mysql 최신버젼이 설치된다.
brew search mysql
# 자신이 설치할 mysql 명칭 확인하기
brew install mysql@5.5
# 버젼 5.5 mysql이 설치된다.
설치가 완료되었다면 brew list
명령어로 설치 목록을 확인할 수 있다.
mysql.server start
mysql_secure_installation
위 명령어를 치면 총 6가지의 질문이 나온다.
아래 선택사항은 현재 자기가 필요한 상황에 Y/N을 선택하자.
mysql -u root
처럼 -u
옵션이 필요하다.mysql
처럼 -u
옵션이 불필요하다.모든 질문에 대해서 대답하면 All done!
이라는 메세지가 뜰것이다.
파이썬에서 mysqlclient
라는 라이브러리를 통해서 MySQL과 DB를 연동시킬 수 있다.
pip install mysqlclient
데이터베이스에 이모티콘 데이터를 넣기위해서는 기본적인 UTF-8 charset만으로는 저장할 수 없다. 그래서 DB를 만들 때, utf8mb4를 설정해줘야한다.
CREATE DATABASE 데이터베이스이름 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci
위 명령어를 해석하자면 데이터베이스이름 이라는 데이터베이스를 생성하는데 기본 문자 세트를 utf8mb4로 지정하고 정렬 방식은 utf8mb4_general_ci로 생성하십시오
가 된다.
show variables like 'character_set%';
명령어를 쳐보면 utf8mb4
설정이 된 것을 볼 수 있다.
여기서 'utf8mb4_general_ci' vs 'utf8_unicode_ci' 에 대한 글 및 characterset 과 collation 에 대한 글을 따로 작성하였으니 참고하자.
DB를 생성한 후 장고와 MySQL을 연결하면서 OPTION으로 charset과 collation을 따로 선언해줘야한다. 연결 방법에 대해서는 [Django] 그룹 프로젝트를 위해 장고 기본적인 세팅하기 도 참고하자.
DATABASES = {
'default' : {
'ENGINE': 'django.db.backends.mysql',
'NAME': '데이터베이스명',
'USER': '데이터베이스 접속 계정명',
'PASSWORD': '데이터베이스 접속 패스워드',
'HOST': '데이터베이스 주소',
'PORT': '포트 번호',
'OPTIONS': {'charset': 'utf8mb4'},
'TEST': {
'CHARSET': 'utf8mb4',
'COLLATION': 'utf8_general_ci'
}
}
}
$ mysql -u root -p
$ Enter password:
# root 아이디로 패스워드 입력해서 로그인하겠다는 명령어!
정상적으로 로그인되었다면 쉘이 mysql>
로 변환된다.
status;
명령어를 입력하면 mysql의 db 상태를 확인할 수 있다.
여기서 characterset
을 주의깊게 봐야한다. 잘못 설정되있다면 한글이 깨지는 등 문제가 생길 수 있기때문이다. MySQL은 기본적으로 서버 characterset이latin1
으로 설정되있기 때문에 DB 생성시에 값을 지정해줘야한다.
혹시라도 characterset 설정이 utf8
계열이 아니라면 설정을 바꿔줘야한다.
brew services start mysql
쉘에서 나가기는 exit
또는 quit
명령어를 치면 된다.
그리고 MySQL 서버 종료 명령어는 mysql.server stop
이다.
brew 명령어로 설치한 MySQL을 깔끔하게 삭제하는 방법에 대해서 알아보자.
sudo rm -rf /usr/local/var/mysql
명령어를 치고 비밀번호를 입력하라고 하면 자신의 Mac 비밀번호를 입력하면 된다.
그리고 나머지 파일들까지 삭제하기 위해 아래 명령어들을 입력하자.
sudo rm -rf /usr/local/bin/mysql
sudo rm -rf /usr/local/Cellar/mysql
삭제가 완료된 후 brew list
명령어로 설치 목록을 확인하면 mysql이 사라진 걸 확인할 수 있을것이다.
참고 사이트들
mysql database 이모티콘 설정(utf8mb4)
[Django] Django-mysql 연동 및 django에서 mysql 삭제방법 정리