목적 및 이슈
- Mysql 5.1.77 과 PHP 프로그램이 운영되고 있음.
- 자바 기반의 새로운 프로그램을 배포해야함.
- 기존 mysql 버전 호환성의 문제로 새로운 버전의 Mysql서버 를 설치해야 함. (이미 설치되어 운영중인 Mysql 를 유지하면서 새로운 mysql 을 설치)
- OS : CentOS 7.1.1503 (Core)
- 설치된 mysql : 5.1.77
- 추가로 설치할 mysql : 5.7.22
Mysql 설치
먼저 소스파일을 다운로드 한다. MySQL Community Server 5.7 다운로드
여러 소스중에서 mysql-5.7.22.tar.gz 을 다운로드 함.
https://sourceforge.net/projects/boost/files/boost/1.59.0/ 사이트를 방문하여 boost_1_59_0.tar.gz 파일을 다운로드 한다.
서버에서 root계정으로 다운로드한 파일들의 압출을 푼다. 여기에서는 /source 경로에 다운로드하였다.
tar -xzvf mysql-5.7.22.tar.gz
tar -xzvf boost_1_59_0.tar.gz
mysql-5.7.22 폴더에서 cmake명령을 사용하여 소스를 컴파일 한다. cmake 옵션 보기
cd mysql-5.7.22 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.22 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/source/boost_1_59_0 -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_EXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -Dwith_ZLIB=system -DENABLE_DTRACE=0 -DMYSQL_TCP_PORT=3307 -DMYSQL_UNIX_ADDR=/usr/local/mysql-5.7.22/data/mysql.sock -DSYSCONFDIR=/usr/local/mysql-5.7.22/conf
- 컴파일된 소스는 /usr/local/mysql-5.7.22 에 설치
- 포트는 3307을 사용
컴파일을 정말 많은 시간이 소요된다. 컴파일이 완료되며 다음의 명령을 입력하여 설치를 계속한다.
make
make install
이제 설치가 완료되었다.
인스턴스 생성하기
먼저 /usr/local/mysql-5.7.22/conf 위치에 my.cnf 파일을 생성한다. 참조한 자료들을 보면 생성되는 것을 기술되어 있으나 실제는 설정파일이 생성되지 않는다. 이런 이유에서 직접 만들어 주여야 한다.
이 파일은 아래와 같이 설정한다. (참고)
[mysqld] old_passwords=0 datadir=/usr/local/mysql-5.7.22/data socket=/usr/local/mysql-5.7.22/data/mysql.sock user=mysql character-set-server = utf8 collation-server = utf8_general_ci explicit_defaults_for_timestamp skip-name-resolve [mysql] [mysqld_safe] log-error=/var/log/mysqld_57.log pid-file=/usr/local/mysql-5.7.22/data/mysql.pid datadir=/usr/local/mysql-5.7.22/data socket=/usr/local/mysql-5.7.22/data/mysql.sock user=mysql port=3307 skip-name-resolve character-set-server = utf8 collation-server = utf8_general_ci [client]
이제 다음과 같이 다음의 명령으로 데이터베이스를 구성한다.
/usr/local/mysql-5.7.22/bin/mysqld_safe --defaults-file=/usr/local/mysql-5.7.22/conf/my.cnf --initialize
구성이 완료되면 다음 명령을 입력하여 필요한 플러그인 파일들을 생성하도록 한다.
/usr/local/mysql-5.7.22/bin/mysql_upgrade
이전버전과는 다르게 root 계정에 대한 비밀번호 없는 접근이 차단된다. 비밀번호는 최초에 랜덤하게 생성되며 다음 명령으로 확인할 수 있다.
cat /root/.mysql_secret
참고 사이트
- Running Multiple MySQL Instances on One Machine
- http://www.digimoon.net/blog/371
- http://hermestop.tistory.com/164
- http://www.dbguide.net/db.db?cmd=view&boardUid=146558&boardConfigUid=9&categoryUid=216&boardIdx=124&boardStep=1
- http://javarush-textcube.blogspot.kr/2006/11/mysql-mysqldmulti-%EC%82%AC%EC%9A%A9%EB%B2%95-%EB%8D%B0%EB%AA%AC-%EB%91%90-%EA%B0%9C-%EC%9A%B4%EC%98%81%ED%95%98%EA%B8%B0.html
댓글 없음:
댓글 쓰기