글 수 369
1. MariaDB 설치전 의존 라이브러리 설치
- 만약 뭔가 에러가 발생해서 다시 make를 하고 싶다면...
$ sudo apt-get install -y cmake build-essential libtool libreadline6-dev libncurses5-dev libbison-dev libaio1 libaio-dev libssl-dev bison m4
2. MariaDB 그룹 및 계정 생성
$ sudo groupadd dba
$ sudu useradd -M -c "MySQL" -d /var/mysql -g dba -s /bin/nologin mysql
$ sudu useradd -M -c "MySQL" -d /var/mysql -g dba -s /bin/nologin mysql
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
$ 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
-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
$ sudu make test
$ sudo make install
- 만약 뭔가 에러가 발생해서 다시 make를 하고 싶다면...
$ make clean
$ make
$ 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
$ 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
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
$ 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
$ 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
$ sudo mysqladmin -u root password "1234"
$ sudo mysqladmin -u root -p reload
$ mysql -u root -p mysql