OS 재기동이 필요한 시점에 문제가 발생할 소지가 있기 때문에

이럴 때를 대비해서 백업용 DB가 필요하다.


문서로 정리 하였지만, 

작성한 것을 복-붙 이다.




임시 MySQL DB 구축

작성일 : 2016.02.18

작성자 : Louis.Kim

mysql> select version();

+-------------+

| version()   |

+-------------+

| 3.23.58-log |

+-------------+

1 row in set (0.00 sec)

 

1. zip 파일을 임시 DB에 복사 및 압축해제

          

ex) tar -xvzf 파일명

 

2. 압축 해제한 mysql 서버 폴더에 install.sh 파일을 생성 및 아래내용 복사 (make 파일생성)

  

참고로 본 서버 참고하여 생성

useradd -M -s /sbin/nologin mysql

./configure \

--prefix=/usr/local/mysql \

--with-charset=euc_kr \

--without-innodb \

--with-unix-socket-path=/tmp/mysql.sock \

--without-comment \

--without-debug \

--with-mysqld-user=mysql \

--without-bench \

--without-docs \

--localstatedir=/usr/local/mysql/var  \

--sysconfdir=/etc \

--disable-shard \

--enable-assembler && make -j 6 && make install

 

echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf && ldconfig

cf) localstatedir 의 경우 기본적으로 설치되는 경로이기에, 경로가 변경된다면 해당 경로 수정

   혹여나 변경을 못했다면 my.cnf 에서 수정 가능


 

3. .bashsrc 수정

 

vi ~/.bashrc 한 후 아래 alias 추가

vi = '/usr/bin/vim'

. ~/.bashrc 또는 source ~/.bashrc 로 설정을 다시 로딩

 

4. .bash_profile 수정

 

/usr/local/mysql/bin path에 추가 (vi ~/.bash_profile)

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin

 

-개인을 위해서 아래 추가

mysql_base=/usr/local/mysql/

mysql_home=$mysql_base/var/

. ~/.bash_profile 또는 source ~/.bash_profile 로 설정을 다시 로딩

 

5. install.sh 파일 실행

 

$root > sh install.sh

 

오류 발생 시 하단에 오류 발생 찾아서 확인

 

6. 설치가 완료 되면 my.cnf 생성

 

root$> vi /etc/my.cnf

[client]

#password       = your_password

port            = 3306

socket          = /tmp/mysql.sock

 

[mysqld]

port            = 3306

socket          = /tmp/mysql.sock

skip-locking

skip-innodb

 

set-variable    = key_buffer=512M

set-variable    = max_allowed_packet=16M

set-variable    = table_cache=512

set-variable    = sort_buffer=4M

set-variable    = record_buffer=2M

set-variable    = thread_cache=512

set-variable    = thread_concurrency=16

set-variable    = myisam_sort_buffer_size=64M

set-variable    = max_connections=300

set-variable    = max_heap_table_size = 2000M

set-variable    = tmp_table_size=1000M

set-variable    = max_tmp_tables=256

set-variable    = max_binlog_size =300M

set-variable    = long_query_time = 1

 

server-id       = 1

log-bin=/db_log/LOG

binlog-do-db=DARKEDEN

log-slow-queries= /db_log/slow-query.log

 

log=/backup/ALOG/mysql.log

 

[mysqldump]

quick

set-variable    = max_allowed_packet=16M

 

[mysql]

no-auto-rehash

 

[isamchk]

set-variable    = key_buffer=256M

set-variable    = sort_buffer=256M

set-variable    = read_buffer=2M

set-variable    = write_buffer=2M

 

[myisamchk]

set-variable    = key_buffer=256M

set-variable    = sort_buffer=256M

set-variable    = read_buffer=2M

set-variable    = write_buffer=2M

 

[mysqlhotcopy]

interactive-timeout

Port 는 기본 포트 3306

 

Log-bin log-slow-queries , log 등의 해당 Directory가 없을 경우 생성해 줘야 함.

 

[root@localhost /]# mkdir /db_log

[root@localhost /]# chown -R mysql:mysql /db_log

 

[root@localhost /]# mkdir -p /backup/ALOG

[root@localhost /]# chown -R mysql:mysql /backup

 

datadir 의 경우 해당 데이터가 쌓이는 장소이므로 없으면 default에 쌓이지만 변경이 원하고자 한다면 datadir 항목을 추가 (ef- datadir=/my_data1/datfile/ )

 

이 모든 항목들은 mysqld를 중지한 후 진행해야 함

 

 

 

7. Python 설치 (MySQL 에서 사용하기 위한 라이브러리 설치

   - README 보면서 진행)

 

  $ tar xfz MySQL-python-1.2.1.tar.gz

  $ cd MySQL-python-1.2.1

  $ chmod 700 setup.py   --권한이 없을 경우 권한 부여

  $ # edit site.cfg if necessary

  $ python setup.py build

  $ sudo python setup.py install # or su first

 

확인방법

  - Python 접속

  $phthon

  $ import MySQLdb  후 에러가 발생 안되면 완료

 

8. DB 설치

 

필히 설치할 필요 없으나, 아래 폴더에서 설치가 가능

$ cd /usr/local/bin

$ ./mysql_install_db

/usr/local/mysql/var 에 설치가 되었는지 확인이 가능

 

9. 해당 데이터 및 권한 가져오기

 

- 데이터는 일간 백업에서 가져오면 가능(FTP 서버 내 Daily_BK) -> 데이터

 - $ tar -cvzf mysql_back1.tgz /usr/local/mysql/var/mysql  -> 권한

   해당 압축 파일을 FTP서버로 전송 후 다시 임시 DB로 전송

 

10. 임시 DB에서 권한 및 데이터 복구

 

- 권한의 경우 기존 mysql 해 놓은곳에 덮어 쓸것 (기존은 백업)

- 일간 백업한 것은 DARKEDEN 에 생성 (권한 확인 / 소유자 확인)

- 각각의 폴더의 유저 소유 권한을 확인(/usr/local/mysql/var 의 경우 아래로 mysql으로 해야함)

 

11. MySQL open

 - $>safe_mysqld&  로 실행 후 $>ps -ef | grep mysql 확인


 



오류 발생 시

1. sh install.sh 를 돌렸는데 발생하는 오류

...

checking for atomic operations... no

checking for int8... no

checking "LinuxThreads"... "Not found"

configure: error: This is a linux system and Linuxthreads was not

found. On linux Linuxthreads should be used.  Please install Linuxthreads

(or a new glibc) and try again.  See the Installation chapter in the

Reference Manual for more information.

해결방법

mysql 설치중 아래와 같은 error 메세지 발생시에는 간단히 아래 방법대로 진행

 

checking "LinuxThreads"... "Not found"

configure: error: This is a linux system and Linuxthreads was not

found. On linux Linuxthreads should be used.  Please install Linuxthreads

(or a new glibc) and try again.  See the Installation chapter in the

Reference Manual for more information.

 

방법:

/usr/include/pthread.h 화일을 열어 맨위 부분쯤에 아래 내용을 추가 하고 저장

 

/* Linuxthreads */

 

mysql configure 과정에서 pthread.h 파일을 찾아 위 내용이 있는지 확인하는 것으로

glibc에서 없는 경우 에러 메세지가 발생


참고 : http://faq.hostway.co.kr/Linux_DB/1303

 

반응형

+ Recent posts