# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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 소스 다운로드 및 압축 풀기
$ 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 실행
-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를 하고 싶다면...
- 지우고 다시 cmake 실행
5. make 실행 및 설치
$ sudu make test
$ sudo make install
- 만약 뭔가 에러가 발생해서 다시 make를 하고 싶다면...
$ make
6. 데이터베이스가 저장되는 디렉토리 생성
“/apm/server/mariadb/data” 에 데이터베이스 파일들을 저장하기 위해서 “data” 폴더의 부모 폴더인 “/apm/server/mariadb” 폴더를 생성한다.
기본 데이터베이스 저장 폴더인 “/server/mariadb/data” 에 저장하는 경우는 부모 폴더가 존재하기 때문에 폴더를 생성하지 않아도 된다.
7. 기본 데이터베이스 생성 및 디렉토리 권한 변경
$ sudo ./scripts/mysql_install_db --user=mysql --datadir=/apm/server/mariadb/data
$ sudo chown -R mysql:dba /apm/server/mariadb
8. 환경 설정
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/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 cp ./support-files/mysql.server /etc/init.d/mysqld
$ sudo update-rc.d mysqld defaults
$ sudo service mysqld start
10. 실행 및 패스워드 설정
$ sudo mysqladmin -u root password "1234"
$ sudo mysqladmin -u root -p reload
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