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
'MySQL' 카테고리의 다른 글
[펌] [MySQL] 5.1의 InnoDB에서 MySQL 테이블 최적화하기 (0) | 2016.03.03 |
---|---|
[MySQL] DUMP (mysqldump) export (1) | 2016.02.25 |
[MySQL] error 1130 (0) | 2016.02.19 |
[MYSQL] Socket 접속 (0) | 2016.02.11 |
[펌]1장. MySQL 아키텍쳐 : (1) MySQL 내부 구조 (0) | 2016.02.11 |