본문 바로가기

Backend/MySQL

[MySQL] git clone MySQL

MySQL을 github에서 clone하였다. 기본적으로 cmake를 통해 빌드 프로세스가 구축되었다. cmake는 크로스 플랫폼 빌드 시스템으로, 소스 코드에서 빌드 프로세스를 자동화하는 도구이다. 

 

Docs/README.build 에는 빌드하는 방법에 대한 설명이 있었다. 

The recommended way to build MySQL for developers:
cd <some build directory>
cmake <path to source directory>
make

 

설명대로 디렉토리 내부에 build 디렉토리를 만들었고 해당 디렉토리에서 cmake .. 를 호출하였다.

그런데 자꾸 bison의 버전이 맞지 않다는 에러가 나왔다.  

old bison

확인 결과, 버전은 2.3이었고 업그레이드가 필요하였다. 그런데 업그레이드를 하였음에도 bison version은 변하지 않았다. 

이는 환경변수 path에 관한 문제였다. 새로운 버전의 bison이 설치되었음에도 해당 위치를 표시하지 않으면 프로그램은 오래된 버전의 비전만 사용하는 셈이다.  

 

해결책은 두 가지 방법이 있다. 

export PATH="$(brew --prefix bison)/bin:$PATH"

 

 

위의 문장을 ~/.bash_profile 파일에 넣거나 내가 현재 실행하는 터미널에 입력하는 방식이다. bash_profile 파일에 해당 문장을 넣으면 어디에서 접근하더라도 bison은 모두 업그레이드 된 것이다. 터미널에 입력하면 현재 실행 중인 터미널 내에서만 bison은 업그레이드 된 버전인 것이다. 

 

나는 후자를 택했다. bison을 전역으로 업그레이드 시키면 기존에 잘 동작하던 부분에서 에러가 날 수도 있기 때문이다. 

 

new bison

 

위 처럼 업그레이드 된 bison 버전을 보여주었다. cmake를 통해 빌드에 필요한 Makefile 과 IDE 프로젝트 생성하였다. 각 플랫폼에 맞는 빌드 설정을 생성하였다. 그 후, make를 통해 빌드 프로세스를 실행하였다.

 

make 에러

실행 중, 에러가 났는데 아래의 링크에서 patch를 제공하였다. patch를 보고 코드를 직접 수정하였다. 

https://bugs.mysql.com/bug.php?id=113123

 

MySQL Bugs: #113123: Compilation fails with LLVM 17

 

bugs.mysql.com

 

그 후, make 를 하니 정상적으로 빌드가 완료된 것을 확인하였다. 

 

빌드 성공!

 

build 디렉토리 내에 있는 bin 디렉토리에서 mysql 파일을 실행시킬 수 있다. (./mysql) 상용 mysql을 다운로드 받은 후 실행시킨 것과 동일하였다. 한번 mysql.cc 에서 welcome text 부분에 나의 이름을 추가해보았다. 

 

나만의 Jiseung-Mysql 이 실행되었다. 

'Backend > MySQL' 카테고리의 다른 글

[MySQL] partitioning 구성  (0) 2024.05.14
[MySQL] replication 구성  (0) 2024.05.12
[MySQL] 기본 구조와 show databases  (0) 2024.04.29
[MySQL] Hello MySQL!  (0) 2024.04.20