본문 바로가기

MySQL

MySQL에서 Foreign Key 만들기 MySQL에서는 그냥 아무 생각없이 스키마를 만들게 되면 Foreign Key를 만들 수가 없다. 그래서 오늘은 MySQL에서 Foreign Key를 만드는 방법을 알아보자. 먼저 foreign key의 reference가 될 스키마를 만든다. 여기에서는 테이블 이름은 test_student로 했고, 학번이 PK이다. 스키마를 생성할 때에 Storage Engine을 MyISAM이 아닌 InnoDB로 해줘야 한다. 만약 MyISAM으로 스키마를 만들 경우에는 FK가 지원되지 않는다고 한다. 다음으로 foreign key가 존재할 스키마를 만든다. 이 때에도 Storage Engine을 InnoDB로 하고, 스키마의 이름은 test_foreign으로 해주었다. 그리고 중요한 것이 FK로 할 속성의 경우, .. 더보기
리눅스 shell에서 mySQL의 instance가져오기 MySQL에 있는 DB 인스턴스를 파일로 저장하고 싶은 경우가 있을 것이다. 그럴 경우에는 다음의 명령을 사용해 보자. echo "select * from 테이블 이름" | mysql –u 아이디 –h 호스트 주소 –p 디비 이름 > 출력 파일명; 리눅스 쉘에서 위와 같이 입력을 하면 파일에 DB의 인스턴스가 저장된다. 예를 들어 mysql의 아이디가 donxu이고 DB이름도 donxu, 테이블 이름은 donxu_board, 출력 파일을 board.txt로 한다고 하면 명령어는 다음과 같이 될 것이다. echo "select * from donxu_board" | mysql –u donxu –h localhost –p donxu > board.txt; 이걸 해보고 나서 알게 된 사실인데 굳이 리눅스 쉘에.. 더보기
웹 페이지 한글이 깨지는 문제 이번에 DB텀을 하면서 우리 동아리(untoC) 서버에서 작업을 하게 됐다. 왜냐하면 기본적인 서버 환경이 다 갖추어져 있기 때문이었다. Php, mysql, apache, …등이 다 설치가 되어 있기 때문에 그냥 쓰기만 하면 되는 상황이었다. 그래서 자연스럽게 php파일을 만들었는데 이게 무슨 일???!!! 한글이 깨지는 것이었다!!!! 처음에는 서버의 환경 설정 문제일 거라 생각했다. 구글링을 하면서 엄청나게 찾아 헤맸지만 절대 답을 찾을 수 없었다. 구글링을 통해 알아낸 몇가지 사실은 다음과 같다. 이렇게 한글이 깨지는 문제는 character set의 설정 문제인데 이는 php, mysql, apache에서 각각 설정을 다 해줘야 하는 부분이었다. 먼저 php설정은 etc폴더에 있는 php.ini.. 더보기