Django와 함께 Mysql 사용 준비하기
2018년 05월 23일mysql 다운로드
알아두기
2018.05.23 현재 Django에서 mysql을 쓰기 위해 사용하는 mysqlclient 패키지가 mysql 8.0 버전에서는 ‘my_bool’ 에러가 발생하면 정상적으로 동작하지 않는다. 따라서 이 오류가 발생하고 mysqlclient 라이브러리도 mysql 8.0에 대응하지 않고 있다면 8.0 이상이 아닌 5.7 이하를 설치해야 이 오류를 피할 수 있다.
데이터베이스 접속
mysql -u root -p
데이터베이스 생성
create database testdb;
사용자 생성
create user 'testuser'@'localhost' identified by 'mypassword';
사용자 보기
select user, host from user;
사용자 삭제
drop user 'testuser'@'localhost';
권한 부여
grant all privileges on testdb.* to 'testuser'@'localhost';
권한 보기
show grants for 'testuser'@'localhost';
인코딩 설정 확인
show variables like 'char%';
or
status
인코딩 변경
set character_set_client = utf8;
특정 데이터베이스, 테이블 인코딩 보기
show create database 데이터베이스명;
show create table 테이블명;
특정 데이터베이스, 테이블 인코딩 변경
alter database 데이터베이스명 character set = 'utf8mb4';
alter table 테이블명 character set = 'utf8mb4';
my.cnf로 기본값을 일괄 변경
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
init_connect=SET collation_connection=utf8_general_ci
init_connect=SET NAMES utf8
[mysql]
default-character-set=utf8
일러두기
Django에서 python manage.py makemigrations 명령을 실행하기 전에 인코딩을 변경해야 한다. 그렇지 않으면 한글 등 아스키 문자가 아닌 문자가 입력될 경우 Django 에러가 발생할 수 있다.