Skip to content

데이터베이스 이야기

Jisoo edited this page Feb 8, 2023 · 12 revisions
데이터베이스 설정
  1. https://dev.mysql.com/downloads/windows/installer/ 으로 이동하여서 mysql-installer-community-8.0.31.0.msi 파일을 다운받고 설치합니다. 이 방법은 64bit Windows 10 (or 11)에서 지원되는 방법입니다.

  2. MySQL 서버에 접속하기 위한 프로그램인 MySQL Workbench를 설치 과정에서 같이 설치하게 되면 보다 쉽게 db를 관리할 수 있습니다. 포트 번호는 기본 설정값인 3306을 유지하며, 설치 과정에서 설정했던 password는 반드시 기억해야 합니다. (편의상 1234로 통일하는 것도 좋습니다) image

  3. Local instance MySQL을 클릭하고, password를 입력하고 접속하면 됩니다.

MySQL 테스트
다음 코드 블록을 이용하여 로컬의 포트 3306을 통해 MySQL 데이터베이스에 접근할 수 있습니다. 데이터베이스 생성, 데이터베이스 선택, 테이블 생성, 삽입, 선택, 수정 등의 명령은 해당하는 SQL 구문을 입력하여서 처리할 수 있습니다.

python에서 MySQL에 접근하기 위해서는, pymysql 라이브러리가 필요합니다.

# import library
import pymysql

# connect to db and make cursor
conn = pymysql.connect(host='127.0.0.1', user='root', password='1234', port=3306, charset='utf8')
cur = conn.cursor()

# sql queries
create_db = "CREATE DATABASE IF NOT EXISTS project_db;"
use_db = "USE project_db;"
create_table = "CREATE TABLE IF NOT EXISTS member_tmp\
                (user_id CHAR(100) NOT NULL PRIMARY KEY);"
insert_data = "INSERT INTO member_tmp VALUES\
                ('유영서'),\
                ('Boost Camp AI Tech 4th'),\
                ('asdfasdfadsfasdfasdfasdfa'),\
                ('_123dafdEAFDF@#$%;'),\
                ('/;\/;\/;\/;\/;\/;\');"
select_data = "SELECT * FROM member_tmp;"

# excute
cur.execute(create_db)
cur.execute(use_db)
cur.execute(create_table)
cur.execute(insert_data)
cur.execute(select_data)
conn.commit() # save execution
conn.close() # close db connection

# print selected data from database
data = cur.fetchall() # fetchone(), fetchmany(size: int)
for id in data:
    print(f"Member id: {id[0]}")
ERD
MySQL csv 넣기
## 실행 방법
LOAD DATA LOCAL INFILE "FILE_PATH" INTO TABLE DBNAME.TABLE_NAME FIELDS TERMINATED BY ",";

오류 발생

ERROR 3948 (42000): Loading local data is disabled; this must be enabled on both the client and server sides

mysql> show global variables like 'local_infile';
mysql> set global local_infile=true;

이걸 입력하면 OFF 가 ON으로 바뀐다.

ON으로 바뀐 것을 확인 했으면 exit한 후 다시 접속해준다.

그 후 실행 방법처럼 다시한번 시도하면 된다.

Clone this wiki locally