You cannot see this page without javascript.

Open Solaris 에서 MariaDB 설치

OpenSolaris 조회 수 815 추천 수 0 2014.12.30 16:27:42
1. 의존 라이브러리 설치
1-1. GCC 패키지 설치

# pkg install gcc


1-2. MAKE 소스 설치

# cd /usr/src
# wget http://ftp.gnu.org/gnu/make/make-4.1.tar.gz
# tar zxvf make-4.1.tar.gz
# cd make-4.1
# ./configure --prefix=/usr/local/make-4.1
# make
# make install


1-3. MAKE 패키지 삭제

# pkg uninstall make


1-4. MAKE 실행파일 심볼릭 링크

# ln -s /usr/local/make-4.1/bin/make /usr/bin/make


1-5. GCC 소스 설치

# cd /usr/src
# wget ftp://ftp.irisa.fr/pub/mirrors/gcc.gnu.org/gcc/releases/gcc-4.9.2/gcc-4.9.2.tar.gz
# tar zxvf gcc-4.9.2.tar.gz
# cd gcc-4.9.2
# ./contrib/download_prerequisites
# ./configure --prefix=/usr/local/gcc-4.9.2
# make
# make install


1-6. GCC 패키지 삭제

# pkg uninstall gcc


1-7. gcc 실행파일 심볼릭 링크

# ln -s /usr/local/gcc-4.9.2/bin/gcc /usr/bin/gcc


1-8. M4 소스 설치

# cd /usr/src
# wget http://ftp.gnu.org/gnu/m4/m4-1.4.17.tar.gz
# tar zxvf m4-1.4.17.tar.gz
# cd m4-1.4.17
# ./configure --prefix=/usr/local/m4-1.4.17
# make
# make install


1-9. M4 실행파일 심볼릭 링크

# ln -s /usr/local/m4-1.4.17/bin/m4 /usr/bin/m4


1-10. FLEX 소스 설치

# cd /usr/src
# wget http://sourceforge.net/projects/flex/files/flex-2.5.39.tar.gz
# tar zxvf flex-2.5.39.tar.gz
# cd flex-2.5.39
# ./configure --prefix=/usr/local/flex-2.5.39
# make
# make install


1-11. FLEX 실행파일 심볼릭 링크

# ln -s /usr/local/flex-2.5.39/bin/flex /usr/bin/flex


1-12. PATCH 소스 설치

# cd /usr/src
# wget http://ftp.gnu.org/gnu/patch/patch-2.7.1.tar.gz
# tar zxvf patch-2.7.1.tar.gz
# cd patch-2.7.1
# ./configure --prefix=/usr/local/patch-2.7.1
# make
# make install


1-13. PATCH 실행파일 심볼릭 링크

# ln -s /usr/local/patch-2.7.1/bin/patch /usr/bin/patch


1-14. PKGCONFIG 소스 설치

# cd /usr/src
# wget http://sourceforge.net/projects/pkgconfig/files/pkgconfig/0.6.0/pkgconfig-0.6.0.tar.gz
# tar zxvf pkgconfig-0.6.0.tar.gz
# cd pkgconfig-0.6.0
# ./configure --prefix=/usr/local/pkgconfig-0.6.0
# make
# make install


1-15. GETTEXT 소스 설치

# cd /usr/src
# wget http://ftp.gnu.org/pub/gnu/gettext/gettext-latest.tar.gz
# tar zxvf gettext-0.19.4.tar.gz
# cd gettext-0.19.4
# ./configure --prefix=/usr/local/gettext-0.19.4
# make
# make install


1-16. GETTEXT 실행파일 심볼릭 링크

# ln -s /usr/local/gettext-0.19.4/bin/gettext /usr/bin/gettext


1-17. AUTOCONF 소스 설치

# cd /usr/src
# wget http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
# tar zxvf autoconf-latest.tar.gz
# cd autoconf-2.69
# ./configure --prefix=/usr/local/autoconf-2.69
# make
# make install


1-18. AUTOCONF 실행파일 심볼릭 링크

# ln -s /usr/local/autoconf-2.69/bin/autoconf /usr/bin/autoconf


1-19. AUTOMAKE 소스 설치

# cd /usr/src
# wget http://ftp.gnu.org/gnu/automake/automake-1.14.1.tar.gz
# tar zxvf automake-1.14.1.tar.gz
# cd automake-1.14.1
# ./configure --prefix=/usr/local/automake-1.14.1
# make
# make install


1-20. AUTOMAKE 실행파일 심볼릭 링크

# ln -s /usr/local/automake-1.14.1/bin/automake /usr/bin/automake


1-21. BISON 소스 설치

# cd /usr/src
# wget http://ftp.gnu.org/gnu/bison/bison-3.0.2.tar.gz
# tar zxvf bison-3.0.2.tar.gz
# cd bison-3.0.2
# ./configure --prefix=/usr/local/bison-3.0.2
# make
# make install


1-22. BISON 실행파일 심볼릭 링크

# ln -s /usr/local/bison-3.0.2/bin/bison /usr/bin/bison


1-23. LIBTOOL 소스 설치

# cd /usr/src
# wget http://ftp.jaist.ac.jp/pub/GNU/libtool/libtool-2.4.4.tar.gz
# tar zxvf libtool-2.4.4.tar.gz
# cd libtool-2.4.4
# ./configure --prefix=/usr/local/libtool-2.4.4
# make
# make install


1-24. LIBTOOL 실행파일 심볼릭 링크

# ln -s /usr/local/libtool-2.4.4/bin/libtool /usr/bin/libtool


1-25. BINUTILS 소스 설치

# cd /usr/src
# wget http://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.gz
# tar zxvf binutils-2.25.tar.gz
# cd binutils-2.25
# ./configure --prefix=/usr/local/binutils-2.25
# make
# make install


1-26. PATCHUTILS 소스 설치

# cd /usr/src
# wget http://cyberelk.net/tim/data/patchutils/stable/patchutils-0.3.2.tar.bz2
# tar -xvf patchutils-0.3.2.tar.gz
# cd patchutils-0.3.2
# ./configure --prefix=/usr/local/patchutils-0.3.2
# make
# make install


1-27. BYACC 소스 설치

# cd /usr/src
# wget ftp://invisible-island.net/byacc/byacc.tar.gz
# tar -xvf byacc.tar.gz
# cd byacc-20141128
# ./configure --prefix=/usr/local/byacc-20141128
# make
# make install


1-28. INDENT 소스 설치

# cd /usr/src
# wget ftp://gnu.mirror.iweb.com/indent/indent-2.2.10.tar.gz
# tar zxvf indent-2.2.10.tar.gz
# cd indent-2.2.10
# ./configure --prefix=/usr/local/indent-2.2.10
# make
# make install


1-29. INDENT 실행파일 심볼릭 링크

# ln -s /usr/local/indent-2.2.10/bin/indent /usr/bin/indent


1-30. DIFFSTAT 소스 설치

# cd /usr/src
# wget ftp://invisible-island.net/diffstat/diffstat.tar.gz
# tar zxvf diffstat.tar.gz
# cd diffstat-1.59
# ./configure --prefix=/usr/local/diffstat-1.59
# make
# make install


1-31. DIFFSTAT 실행파일 심볼릭 링크

# ln -s /usr/local/diffstat-1.59/bin/diffstat /usr/bin/diffstat


1-32. CVS 소스 설치

# cd /usr/src
# wget http://ftp.gnu.org/non-gnu/cvs/source/stable/1.11.23/cvs-1.11.23.tar.gz
# tar zxvf cvs-1.11.23.tar.gz
# cd cvs-1.11.23
# ./configure --prefix=/usr/local/cvs-1.11.23
# make
# make install


1-33. CVS 실행파일 심볼릭 링크

# ln -s /usr/local/cvs-1.11.23/bin/cvs /usr/bin/cvs


1-34. RCS 소스 설치

# cd /usr/src
# wget ftp://ftp.gnu.org/gnu/rcs/rcs-5.9.3.tar.xz
# xz -d rcs-5.9.3.tar.xz
# tar -xvf rcs-5.9.3.tar
# cd rcs-5.9.3
# ./configure --prefix=/usr/local/rcs-5.9.3
# make
# make install


1-35. RCS 실행파일 심볼릭 링크

# ln -s /usr/local/rcs-5.9.3/bin/rcs /usr/bin/rcs



1-36. INTLTOOL 소스 설치

# cd /usr/src
# wget http://ftp.gnome.org/pub/gnome/sources/intltool/0.40/intltool-0.40.6.tar.gz
# tar zxvf intltool-0.40.6.tar.gz
# cd intltool-0.40.6
# ./configure --prefix=/usr/local/intltool-0.40.6
# make
# make install


1-37. CTAGS 소스 설치

# cd /usr/src
# wget http://sourceforge.net/projects/ctags/files/ctags/5.8/ctags-5.8.tar.gz
# tar zxvf ctags-5.8.tar.gz
# cd ctags-5.8
# ./configure --prefix=/usr/local/ctags-5.8
# make
# make install


1-38. CTAGS 실행파일 심볼릭 링크

# ln -s /usr/local/ctags-5.8/bin/ctags /usr/bin/ctags



1-39. CSCOPE 소스 설치

# cd /usr/src
# wget http://sourceforge.net/projects/cscope/files/cscope/15.8a/cscope-15.8a.tar.gz
# tar zxvf cscope-15.8a.tar.gz
# cd cscope-15.8a
# ./configure --prefix=/usr/local/cscope-15.8a
# make
# make install


1-40. CSCOPE 실행파일 심볼릭 링크

# ln -s /usr/local/cscope-15.8a/bin/cscope /usr/bin/cscope



1-41. SWIG 소스 설치

# cd /usr/src
# wget http://sourceforge.net/projects/swig/files/swig/swig-3.0.3/swig-3.0.3.tar.gz
# tar zxvf swig-3.0.3.tar.gz
# cd swig-3.0.3
# ./configure --prefix=/usr/local/swig-3.0.3
# make
# make install


1-42. SWIG 실행파일 심볼릭 링크

# ln -s /usr/local/swig-3.0.3/bin/swig /usr/bin/swig



1-43. WGET 소스 설치

# cd /usr/src
# wget http://ftp.gnu.org/gnu/wget/wget-1.16.1.tar.gz
# tar zxvf wget-1.16.1.tar.gz
# cd wget-1.16.1
# ./configure --prefix=/usr/local/wget-1.16.1
# make
# make install


1-44. WGET 실행파일 심볼릭 링크

# ln -s /usr/local/wget-1.16.1/bin/wget /usr/bin/wget



1-45. CMAKE 소스 설치

# cd /usr/src
# wget http://www.cmake.org/files/v3.1/cmake-3.1.0.tar.gz
# tar zxvf cmake-3.1.0.tar.gz
# cd cmake-3.1.0
# ./configure --prefix=/usr/local/cmake-3.1.0
# make
# make install


1-46. CMAKE 실행파일 심볼릭 링크

# ln -s /usr/local/cmake-3.1.0/bin/cmake /usr/bin/cmake



1-47. NCURSES 소스 설치

# cd /usr/src
# wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz
# tar zxvf ncurses-5.9.tar.gz
# cd ncurses-5.9
# ./configure --prefix=/usr/local/ncurses-5.9
# make
# make install


1-48. EXPAT 소스 설치

# cd /usr/src
# wget http://sourceforge.net/projects/expat/files/expat/2.1.0/expat-2.1.0.tar.gz
# tar zxvf expat-2.1.0.tar.gz
# cd expat-2.1.0
# ./configure --prefix=/usr/local/expat-2.1.0
# make
# make install


1-49. EXPAT 실행파일 심볼릭 링크

# ln -s /usr/local/cmake-3.1.0/bin/cmake /usr/bin/cmake



1-50. Berkeley DB 소스 설치

# cd /usr/src
# wget http://download.oracle.com/berkeley-db/db-6.1.19.tar.gz
# tar zxvf db-6.1.19.tar.gz
# cd db-6.1.19
# cd build_unix
# ../dist/configure --prefix=/usr/local/db-6.1.19 
--enable-dtrace
--enable-dbm
--enable-sql
--enable-sql_codegen
--enable-sql_compat
# make
# make install


1-51. PCRE 소스 설치

# cd /usr/src
# wget http://sourceforge.net/projects/pcre/files/pcre/8.36/pcre-8.36.tar.gz
# tar zxvf pcre-8.36.tar.gz
# cd pcre-8.36
# ../dist/configure --prefix=/usr/local/pcre-8.36
# make
# make install


1-51. OpenSSL 소스 설치

# cd /usr/src
# wget ftp://ftp.openssl.org/source/openssl-1.0.1j.tar.gz
# tar zxvf openssl-1.0.1j.tar.gz
# cd openssl-1.0.1j
# ./config --prefix=/usr/local/openssl-1.0.1j
--openssldir=/etc/ssl
--libdir=lib64
shared
zlib-dynamic
# make
# make install




































3. MariaDB 소스 다운로드 및 압축 풀기

$ cd /usr/src/
$ wget https://downloads.mariadb.org/interstitial/mariadb-10.0.15/source/mariadb-10.0.15.tar.gz
$ tar xvfz mariadb-10.0.15.tar.gz
$ cd mariadb-10.0.15



4. CMake 실행

$ cmake
-DCMAKE_INSTALL_PREFIX=/apm/server/mariadb
-DMYSQL_DATADIR=/apm/server/mariadb/data
-DMYSQL_UNIX_ADDR=/apm/server/mariadb/mysql.sock
-DSYSCONFDIR=/apm/server/mariadb
-DMYSQL_TCP_PORT=3306
-DMYSQL_USER=mysql
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_EXTRA_CHARSETS=all
-DENABLED_LOCAL_INFILE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1


  - 만약 뭔가 에러가 발생해서 다시 cmake를 하고 싶다면...

$ rm -rf ./CMakeCache.txt


  - 지우고 다시 cmake 실행



5. make 실행 및 설치

$ make
$ sudu make test
$ sudo make install

   - 만약 뭔가 에러가 발생해서 다시 make를 하고 싶다면...

$ make clean
$ make



6. 데이터베이스가 저장되는 디렉토리 생성


“/apm/server/mariadb/data” 에 데이터베이스 파일들을 저장하기 위해서 “data” 폴더의 부모 폴더인 “/apm/server/mariadb” 폴더를 생성한다.

기본 데이터베이스 저장 폴더인 “/server/mariadb/data” 에 저장하는 경우는 부모 폴더가 존재하기 때문에 폴더를 생성하지 않아도 된다.

$ mkdir /apm/server/mariadb



7. 기본 데이터베이스 생성 및 디렉토리 권한 변경

$ cd /apm/server/mariadb
$ sudo ./scripts/mysql_install_db --user=mysql --datadir=/apm/server/mariadb/data
$ sudo chown -R mysql:dba /apm/server/mariadb


  
8. 환경 설정

$ vi /etc/my.cnf


[mysqld]

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50



9. PATH 추가 및 서비스 등록


MySQL 의 주요 실행 파일을 어떤 경로에서든지 실행할 수 있도록 PATH 환경 변수에 추가된 “/bin”, “/sbin” 폴더로 Symbolic Link 를 걸어둔다.

$ sudo ln -s /apm/server/mariadb/bin/mysql /usr/bin/mysql
$ sudo ln -s /apm/server/mariadb/bin/mysqldump /usr/sbin/mysqldump
$ sudo ln -s /apm/server/mariadb/bin/mysql_config /usr/sbin/mysql_config
$ sudo ln -s /apm/server/mariadb/bin/mysqladmin /usr/sbin/mysqladmin


MySQL 을 서비스에 등록하여 chkconfig 유틸리티로 관리할 수 있도록 한다.

MySQL 에서 제공하는 daemon 실행 스크립트의 링크를 생성하고 서비스에 등록하여 데몬을 시작한다.

아래는 3, 5 runlevel 에서만 동작하도록 2, 3 runlevel 에서는 동작하지 않도록 했다.


$ sudo ln -s /apm/server/mariadb/support-files/mysql.server /etc/rc.d/init.d/mysql
$ sudo cp ./support-files/mysql.server /etc/init.d/mysqld
$ sudo update-rc.d mysqld defaults
$ sudo service mysqld start


10. 실행 및 패스워드 설정

$ sudo service mysqld start
$ sudo mysqladmin -u root password "1234"
$ sudo mysqladmin -u root -p reload

$ mysql -u root -p mysql




yum install libtool-ltdl-devel

yum install db4-devel <-- berkly db

yum install libdb-devel <-- berkly db


redhat-rpm-config

rpm-build

gcc-c++

systemtap

elfutils

subversion

gcc-gfortran

doxygen

git












Mysql 소스 설치

-> 패키지 설치 시 charset( euckr ) 설정에 실패하였음

필요 라이브러리 설치

# ftp
ftp> open
www.sunfreeware.com
user name : anonymous
password : 비밀번호 없이 엔터

ftp> cd pub/freeware/i386/10
ftp> ls gcc*

ftp> get gcc...gz
ftp> get libiconv..gz
ftp> get libintl..gz
ftp> get make..gz
ftp> get automake..gz
ftp> get top..gz
ftp> get zlib..gz
ftp> get ncurses..gz
ftp> get openssl..gz

ftp> quit

# gzip -d gcc..gz
# gzip -d libiconv..gz
# gzip -d libintl..gz
# gzip -d make..gz
# gzip -d automake..gz
# gzip -d top..gz
# gzip -d zlib..gz
# gzip -d ncurses..gz
# gzip -d openssl..gz

# pkgadd -d gcc..
# pkgadd -d libiconv..
# pkgadd -d libintl..
# pkgadd -d make..
# pkgadd -d automake..
# pkgadd -d top..
# pkgadd -d zlib..
# pkgadd -d ncurses..
# pkgadd -d openssl..

//----- 기존 패키지 설치 존재 시 삭제. STR -----

# pkginfo mysql    // mysql 패키지 리스트 보기, 항목이 나오면..삭제

# pkgrm SUNWmysqlr    // 패키지 삭제
# pkgrm SUNWmysqlt    // 패키지 삭제

//----- 기존 패키지 설치 존재 시 삭제. END -----


# tar xvf mysql-5.0.67.tar   
// 소스는 이미 다른 곳에서 받았음. 압축 해제시 /usr/local/mysql 에 해제됨

# cd /usr/local/mysql

# ./configure --prefix=/usr/local/mysql --with-charset=euckr --enable-thread-safe-client --localstatedir=/usr/local/mysql/data --sysconfdir=/etc

// configure 가 에러가 없으면 Makefile 생성됨, make 재 실행시 # make clean 실행 ( ./configure 설정을 다시 함)

# make

// 에러 확인, 에러시 필요 라이브러리 설치

# make install

//----- mysql 사용자 추가, STR -----

# groupadd mysql
# mkdir /export/home/mysql
# useradd -g mysql -s /usr/bin/bash -d /export/home/mysql mysql
   
// -d 옵션은 홈디렉토리 설정, 추후 데이터 저장시 지정

# passwd mysql
// 암호 입력

//----- mysql 사용자 추가, END -----

// 링크 생성
# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql   
# ln -s /usr/local/mysql/libexec/mysqld /usr/bin/mysqld
# ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladmin

//기본 파일 복사 cp /src/mysql-5.0.67/support-files/my-medium.cnf /etc/my.cnf
# vi /etc/my.cnf  // 하기 항목 설정 필요
[mysqld]
basedir = /usr/local/mysql
datadir = /export/home/mysql/data
:wq

# chown mysql /export/home/mysql
# cd /usr/local/mysql/bin
# ./mysql_install_db --user=mysql --ldata=/export/home/mysql/data

// 라이브러리 설치가 되어 있으면 라이브러리 패스가 필요함
// vi /etc/profile 파일 변경, bash 을 사용할 경우, 모든 사용자에게 적용됨,
// 만약 shell 설정이 안되어 있으면, # usermod -s /usr/bin/bash UserName   으로 설정
//----- 라이브러리 패스 추가, STR -----
# vi /etc/profile
..
LD_LIBRARY_PATH=/usr/local/lib:/lib:/usr/lib
export LD_LIBRARY_PATH

:wq
//----- 라이브러리 패스 추가, END -----

# su mysql
# mysql &
    // 백그라운드에서 일시적 설정, 부팅시 자동설정은 다른 설정이 필요함

# mysqladmin -u root password '1234'    // mysql DB root 사용자 설정
# mysql -u root -p
// 암호 입력
mysql> show databases;    // database 목록 보기
mysql> use mysql;    // database 목록 중 mysql 데이터 베이스 선택, 사용한다는 의미

mysql> create database SBABY_DB default character set euckr;    // database 생성

// sbaby_web 원격접속
mysql> insert into user(host,user,password) values('%','sbaby_web',password('ykdb8700'));
mysql> insert into db(host,db,user,select_priv,insert_priv,update_priv,delete_priv,create_priv,drop_priv) values('%','SBABY_DB','sbaby_web','y','y','y','y','y','y');
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('ykdb8700') WHERE Host = '%' AND User = 'sbaby_web';

// sbaby_web 로컬접속
mysql> insert into user(host,user,password) values('localhost','sbaby_web',password('ykdb8700'));
mysql> insert into db(host,db,user,select_priv,insert_priv,update_priv,delete_priv,create_priv,drop_priv) values('localhost','SBABY_DB','sbaby_web','y','y','y','y','y','y');
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('ykdb8700') WHERE Host = 'localhost' AND User = 'sbaby_web'; 

// sbaby_web 에 대한 권한 부여 재 설정
update user set select_priv = 'y', insert_priv = 'y' , update_priv='y', delete_priv='y', create_priv='y', drop_priv='y'  where user='sbaby_web';

// 반드시 실행해야 위 셋팅이 적용함
flush privileges;

// 삭제시
// mysql> drop user sbaby_web;
// mysql> drop database SBABY_DB;

mysql> quit

// 부팅시 mysql 자동 실행

// 하기 2줄 추가. 초기 부팅 자동 실행시 라이브러리 패스가 안잡힐 수도 있어서..
# vi /usr/local/mysql/bin/mysqld_safe    
LD_LIBRARY_PATH=/usr/local/lib:/lib:/usr/lib
export LD_LIBRARY_PATH
..
:wq

# cd /etc/rc3.d
# vi S99mysqld
/usr/local/mysql/bin/mysqld_safe --user=mysql &

:wq
# init 6

// 재부팅, 재부팅 이후

# ps -ef | grep mysql

List of Articles
번호 제목 글쓴이 날짜 조회 수

XE Login