테스트를 위해서 하나의 서버에 서로 다른 MariaDB를 설치 하는 방법
엔진 설치 경로를 다르게 해야 하므로 Source 버전의 MariaDB를 Download 받아서 사용한다.
0. 기본 설정
CentOS7 Minimal 설치 |
MariaDB 5.5.58 Download ( https://downloads.mariadb.org/mariadb/5.5.58/ ) |
MariaDB 10.2.10 Download ( https://downloads.mariadb.org/mariadb/10.2.10/ ) |
1. 설치에 필요한 패키지 설치 및 유저, 그룹 추가
# yum install cmake ncurses ncurses-devel bison gcc gcc-c++ gcc gcc-c++ libtermcap-devel gdbm-devel zlib* libxml* freetype* libpng* libjpeg* -y # yum install iconv flex gmp ncurses-devel cmake.x86_64 curl-devel expat-devel gettext-devel openssl-devel zlib-devel -y # yum install gnutls* -y |
# groupadd mysql # useradd -r -g mysql mysql |
2. 데이터 베이스 압축해제/컴파일 및 설치
압축파일은 /root 안에 존재 하며, 소스 컴파일에 사용되는 디렉터리들도 모두 /root안에 존재 한다.
[root@CMaria ~]# pwd /root [root@CMaria ~]# ls anaconda-ks.cfg build10 build5 mariadb-10.2.10 mariadb-10.2.10.tar.gz mariadb-5.5.58 mariadb-5.5.58.tar.gz |
Maria10.2 |
Maria5.5 |
tar xvfz mariadb-10.2.10.tar.gz |
tar xvfz mariadb-5.5.58.tar.gz |
엔 진 설 치 : /usr/local/mariadb10 데이터파일 : /maria10.2.10 |
엔 진 설 치 : /usr/local/mariadb5 데이터파일 : /maria5.5.58 |
소스 컴파일
mkdir build10
cd build10
cmake ../mariadb-10.2.10 -DWITH_READLINE=1 -DWITH_READLINE=1 -DWITH_SSL=bundled -DWITH_ZLIB=system -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=all -DWITH_ARIA_STORAGE_ENGINE=1 -DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATEDX_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb10 -DMYSQL_DATADIR=/maria10.2.10
|
소스 컴파일
mkdir build5
cd build5
cmake ../mariadb-5.5.58 -DWITH_READLINE=1 -DWITH_READLINE=1 -DWITH_SSL=bundled -DWITH_ZLIB=system -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=all -DWITH_ARIA_STORAGE_ENGINE=1 -DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATEDX_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb5 -DMYSQL_DATADIR=/maria5.5.58 |
make ; make install |
make ; make install |
설정파일
cp /usr/local/mariadb10/support-files/my-innodb-heavy-4G.cnf /usr/local/mariadb10/my.cnf
vi /usr/local/mariadb10/my.cnf port = 3310 socket = /tmp/mysql10.sock |
설정파일
cp /usr/local/mariadb5/support-files/my-innodb-heavy-4G.cnf /usr/local/mariadb5/my.cnf
vi /usr/local/mariadb5/my.cnf port = 3305 socket = /tmp/mysql5.sock |
디비 생성
/usr/local/mariadb10/scripts/mysql_install_db --user=mysql --defaults-file=/usr/local/mariadb10/my.cnf --basedir=/usr/local/mariadb10 --datadir=/maria10.2.10 |
디비 생성
/usr/local/mariadb5/scripts/mysql_install_db --user=mysql --defaults-file=/usr/local/mariadb5/my.cnf --basedir=/usr/local/mariadb5 --datadir=/maria5.5.58 |
디비 기동
/usr/local/mariadb10/bin/mysqld_safe --basedir=/usr/local/mariadb10 --datadir=/maria10.2.10 --plugin-dir=/usr/local/mariadb10/lib/plugin --user=mysql --log-error=/maria10.2.10/CMaria.err --pid-file=/maria10.2.10/CMaria.pid --socket=/tmp/mysql10.sock --port=3310 & |
디비 기동
/usr/local/mariadb5/bin/mysqld_safe --basedir=/usr/local/mariadb5 --datadir=/maria5.5.58 --plugin-dir=/usr/local/mariadb5/lib/plugin --user=mysql --log-error=/maria5.5.58/CMaria.err --open-files-limit=8192 --pid-file=/maria5.5.58/CMaria.pid --socket=/tmp/mysql5.sock --port=3305 & |
루트 패스워드 변경
/usr/local/mariadb10/bin/mysqladmin -uroot password 'root1122' --socket=/tmp/mysql10.sock
/usr/local/mariadb10/bin/mysqladmin -uroot -h CMaria password 'root1122' --socket=/tmp/mysql10.sock
/usr/local/mariadb10/bin/mysql -uroot -p --socket=/tmp/mysql10.sock
|
루투 패스워드 변경
/usr/local/mariadb5/bin/mysqladmin -uroot password 'root1122' --socket=/tmp/mysql5.sock
/usr/local/mariadb5/bin/mysqladmin -uroot -h CMaria password 'root1122' --socket=/tmp/mysql5.sock
/usr/local/mariadb5/bin/mysql -uroot -p --socket=/tmp/mysql5.sock |
디비 종료
/usr/local/mariadb10/bin/mysqladmin -uroot -p --socket=/tmp/mysql10.sock shutdown |
디비 종료
/usr/local/mariadb5/bin/mysqladmin -uroot -p --socket=/tmp/mysql5.sock shutdown |
3. 시작/종료/접속 Alias 생성
[root@CMaria ~]# cat .bashrc
alias start10='/usr/local/mariadb10/bin/mysqld_safe --basedir=/usr/local/mariadb10 --datadir=/maria10.2.10 --plugin-dir=/usr/local/mariadb10/lib/plugin --user=mysql --log-error=/maria10.2.10/CMaria.err --pid-file=/maria10.2.10/CMaria.pid --socket=/tmp/mysql10.sock --port=3310 & ' alias stop10='/usr/local/mariadb10/bin/mysqladmin -uroot -p --socket=/tmp/mysql10.sock shutdown' alias mysql10='/usr/local/mariadb10/bin/mysql --socket=/tmp/mysql10.sock'
alias start5='/usr/local/mariadb5/bin/mysqld_safe --basedir=/usr/local/mariadb5 --datadir=/maria5.5.58 --plugin-dir=/usr/local/mariadb5/lib/plugin --user=mysql --log-error=/maria5.5.58/CMaria.err --open-files-limit=8192 --pid-file=/maria5.5.58/CMaria.pid --socket=/tmp/mysql5.sock --port=3305 & ' alias stop5='/usr/local/mariadb5/bin/mysqladmin -uroot -p --socket=/tmp/mysql5.sock shutdown' alias mysql5='/usr/local/mariadb5/bin/mysql --socket=/tmp/mysql5.sock' |
4. 시작과 종료를 서비스로 등록하면 에러는 발생 하지만 정상적으로 Start는 되는데 그냥 스크립트를 이용. 그래도 서비스로 등록해서 사용하고 싶으면 ...
cp /usr/local/mariadb10/support-files/mysql.server /etc/init.d/mysqld10
vi /etc/init.d/mysqld10 lock_file_path="$lockdir/mysql10" # Try to find basedir in /etc/my.cnf #conf=/etc/my.cnf conf=/usr/local/maria10/my.cnf
서비스 등록 chkconfig --add mysqld10 |
cp /usr/local/mariadb5/support-files/mysql.server /etc/init.d/mysqld5
vi /etc/init.d/mysqld5 lock_file_path="$lockdir/mysql5" # Try to find basedir in /etc/my.cnf #conf=/etc/my.cnf conf=/usr/local/maria5/my.cnf
서비스 등록 chkconfig --add mysqld5 |
service mysqld10 start |
service mysqld5 start |