이 MySQL 이란 DB 는 제가 IT 생활을 하면서 도대체 몇번을 설치하고있는지 모를 정도로 자주 설치해서 사용하네요. 그만큼 돈없는 회사나 개인, 프로젝트에서는 축복받은 존재이기도 하죠.
오늘은 이 MySQL 의 설치 과정을 블로그로 남겨볼까 합니다. 그냥 apt 나 yum, rpm 으로 설치하면 재미 없죠. 소스로 컴파일 해서 궂이 root 계정이 아니더라도 운영할 수 있도록 해보겠습니다.
[준비물]
Ubuntu 13.04
mysql 5.6 source distribution package
1. 재료 준비
MySQL 소스
MySQL 다운로드 페이지에서 카테고리를 Source 로 선택하면 "Generic Linux (Architecture Independent), Compressed TAR Archive " 가 보입니다. 다운로드 받으면 됩니다.
* MySQL 도 C 로 개발되었기때문에 glibc (GNU C Library) 에 Dependency 가 있습니다. 현재 Ubuntu 13.04 에 기본적으로 포함된 glibc는 버전이 2.17 입니다. (GLIBC 버전 확인은 getconf -a 로 확인할 수 있습니다. MySQL 5.6.19 버전은 glibc 2.5 이상 버전에 Dependency 가 있는걸로 보입니다.)
cmake 빌드할 때, -DENABLE_DOWNLOADS=1 해서, google_mock 같은 써드파티 라이브러리 소스 함께 다운받아 빌드하도록 옵션 준다.
mysql 의 cmake 빌드 옵션은 아래 URL 참고
http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html
오류났을때는 조치하고, CMakeCache.txt 파일을 지우고 나서 다시 cmake 해야 한다.
[내옵션]
cmake -DCMAKE_INSTALL_PREFIX=/home2/dev/db/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLE_DOWNLOADS=1 -DMYSQL_DATADIR=/home2/dev/db/mysql_data -DWITH_INNOBASE_STORAGE_ENGINE=1 .
make
make install
2013-08-28 15:07:25 26770 [Note] InnoDB: Waiting for purge to start 2013-08-28 15:07:25 26770 [Note] InnoDB: 5.6.13 started; log sequence number 0 2013-08-28 15:07:25 26770 [ERROR] Aborting 2013-08-28 15:07:25 26770 [Note] Binlog end 2013-08-28 15:07:25 26770 [Note] InnoDB: FTS optimize thread exiting. 2013-08-28 15:07:25 26770 [Note] InnoDB: Starting shutdown... 2013-08-28 15:07:27 26770 [Note] InnoDB: Shutdown completed; log sequence number 1600607 2013-08-28 15:07:27 26770 [Note]
mysqld_safe --verbose --help 하면, 마지막에 현재 세팅된 variable 나옴.
그런데 요게 역시나 유저 권한으로 띄우기에는 적합하지 않은 옵션들이 기본값임.
바꿔야할것들이 있음..
[기본]
basedir = /usr
datadir=/var/lib/mysql/
general-log-file = /var/lib/mysql/chrubuntu.log
language /usr/share/mysql/
lc-messages-dir /usr/share/mysql/
log-error /var/log/mysql/error.log
그다음..
지금 생성한 my.cnf 를 기본으로 띄워야 하는데.. 방법은 두가지 ..
1. my.cnf 파일을 ~/.my.cnf 파일로 복사해줌~!
/etc/my.cnf 파일이 있거나, /etc/mysql/my.cnf, 같은게 있으면 없애줌~!
왜냐하면, /etc/my.cnf 있으면, 이걸 먼저 로딩하기 때문임.
2. 모든 mysql 관련 실행파일에 --defaults-file=/경로/my.cnf 를 써줌.
난 1번을 선택했음~!
$ scripts/mysql_install_db
실행해줌.
$ bin/mysqlad_safe &
해서 띄워보고 에러 나는지 확인
$ bin/mysqladmin -uroot password '내패스워드'
로 root 패스워드 변경함
root 에게 ANY 에서 접속할 권한 주려고..
3가지 방법 존재함.
1. GRANT 쿼리 사용
2. mysql_setpermission 유틸 사용
우선 실행하니 이런 에러 남..
perl 에 DBI 모듈 없어서 그램..
다시 perl 모듈 부터 설치해야하니..
# perl -eshell -MCPAN
cpan> install local:lib DBI (or how it is called)
요렇게 해주기..
다시 cpan 쉘로 들어가려면, 그냥
$ cpan 하면 됨.
그런데, 이게 끝이 아니다.. 그래도 경로를 못찾는다..
CPAN 이랑 perl 이랑.. 뭐이리 복잡함??
http://blog.naver.com/PostView.nhn?blogId=xtjin&logNo=50004217785
요거 참고해서 차근히 함 해보자.
==> 하고 보니, install DBI 를 CAPN 의 shell 에서 하고 나서,
~/.cpan 디렉토리로 가서 .. => install 로 하지 말고, 그냥 get DBI 하자..
get DBI 해서 ==> 아니야~~!!
[정답은..]
cpan shell 에서..
o conf makepl_arg INSTALL_BASE=~/perl
o mbuildpl_arg --install_base=~/perl
이렇게 해주고 나서,
.profile 에서,.
export PERL5LIB=$PERL5LIB:~/perl/lib:~/perl/lib/x86_어쩌구..
해줘야 함.
그리고,
cpan> install local:lib 함 해주고
cpan> instal DBI 함 해주고
cpan > install DBD:mysql 하면 에러나는데..
우선 밖으로 나가서,
~/.cpan/build/DBD-mysql-xxx 에서
$ perl Makefile.PL INSTALL_BASE=~/perl --mysql_config=/home2/dev/db/mysql/bin/mysql_config
로 수동으로 빌드 해줘야 함.
뒤에 --mysql_config 옵션에 mysql 설치된 디렉토리에서 bin 디렉토리 보면 mysql_config 라는 파일 있는데 그거 지정해줘야 함.
위처럼 Looks good 이 나와야~~!
그다음
make
make install
드디어 mysql_setpermission 을 쓸 수 있음!~
여기서, root 에 % host 를 추가해줄거이므로, 3번 선택.
3. 직접 user 테이블에 INSERT 하기
[오류]
1. ncurses 라이브러리 못찾는 경우
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:83 (MESSAGE):
Curses library not found. Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
cmake/readline.cmake:127 (FIND_CURSES)
cmake/readline.cmake:217 (MYSQL_USE_BUNDLED_LIBEDIT)
CMakeLists.txt:257 (MYSQL_CHECK_READLINE)
-- Configuring incomplete, errors occurred!
요따구로 나오는거..
$ sudo apt-get install ncurses5-dev
$ sudo apt-get install ncursesw5-dev
로 설치 해야한다~ ! 꼭~ ncurses5-dev 를 설치~
ncursesw5 는 다국어 뭐시기란다..
2. CMAKE_CXX_COMPILER 에러 나는 경우
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
CMake Error: Internal CMake error, TryCompile configure of cmake failed
-- Performing Test HAVE_NO_UNUSED_TYPEDEFS - Failed
-- GTEST_LIBRARIES:gmock;gtest
Warning: Bison executable not found in PATH
-- Library mysqlserver depends on OSLIBS -lpthread;m;crypt;dl
-- Configuring incomplete, errors occurred!
다음에는 MySQL 의 아키텍쳐와 중요한 개념적인 이해에 대하여 써보도록 하겠습니다.
'Software Development > DB' 카테고리의 다른 글
MySQL Connection Pool 타입으로 JNDI 등록 (0) | 2009.11.16 |
---|---|
MySQL root 패스워드 분실 시 조치 방법 (0) | 2009.10.15 |
MySQL root 비번 변경하기 (0) | 2009.10.15 |