로그인 시 매번 sudo를 하는 것도 귀찮으므로 아래와 같이 설정
mysql > use mysql;
mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
mysql > FLUSH PRIVILEGES;
사실 패스워드를 ''(빈칸)으로 설정하는 것이라 실행하면 패스워드 입력하는 항목이 뜬다. 거기서 그냥 엔터 다시 눌러주면 되는 것
mysqlserver는 이미 설치한 것으로 가정한다.
장고 가상환경에서 바로 mysqlclient을 설치하려고 하면
# 우분투에서 mysqlclient 설치시 오류가 발생한다.
# 아래와 정확히 같지는 않더라도 egg_info어쩌고 하는 오류가 발생.
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-zbw18e9_/mysqlclient/
# 또는 (맥?)
/bin/sh: 1: mysql_config: not found
# 이때
sudo apt-get install libmysqlclient-dev
# 다시
pip install mysqlclient
mysql> create database django_insta character set utf8mb4 collate utf8mb4_general_ci;
Query OK, 1 row affected (0.01 sec)
프로젝트 폴더 가장 위의 settings.py
를 보면
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
데이터베이스 관련 항목이 있다. 이를 수정해야 하는데, 우선 settings.p
y에서는 나와서 manage.py
파일이 위치한 곳에 my_settings.py
파일을 생성한다. 파일명은 편한대로 하자.
이 안에
DATABASES = {
'default' : {
'ENGINE': 'django.db.backends.mysql', [1]
'NAME': 'django_insta', [2]
'USER': 'root', [3]
'PASSWORD': 'password', [4]
'HOST': 'localhost', [5]
'PORT': '3306', [6]
}
}
이 항목을 붙여넣기 하는데 나머지는 그대로 둬도 되지만 [2]는 mysql의 데이터베이스 이름, [3]은 mysql의 계정 ID, [4]는 mysql의 비밀번호는 자신이 설정한 것으로 바꾼다.
방금 확인했던 settings.py
에서 파일 위쪽에 import가 있는 곳에 import my_settings를 삽입하고, DATABASE항목의 중괄호와 그 안의 내용을 다 지우고 DATABASES=my_settings.DATABASES와 같이 바꾼다.
python manage.py migrate
을 실행해 변경사항을 적용해준 후 다시 mysql에 들어가 테이블을 확인하면 테이블이 적용되어 있을 것이다.
연동하기 전에 데이터를 작성하면 그건 mysql에 반영이 안되는 듯하다. 가져올 수 있을지도 모르지만 아직 방법을 모르겠다.