공용 repository로 사용되는 RDBMS가 필요하다. Mysql, MariaDB, PostgresQL을 리포지터리로 사용할 수 있다. MySQL설치 포스트를 참고해서 설치 할 수 있다.
Controller 노드에서만 수행한다. 또는 별도의 DB서버에서만 수행한다.
서버 설치
[root@openstack1:~]# yum -y install mariadb mariadb-server python2-PyMySQL
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.kakao.com
Package 3:mariadb-server-10.3.10-1.el7.0.0.rdo2.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package python2-PyMySQL.noarch 0:0.9.2-2.el7 will be installed
Verifying : python2-PyMySQL-0.9.2-2.el7.noarch 1/1
Installed:
python2-PyMySQL.noarch 0:0.9.2-2.el7
Complete!
클라이언트 및 관련 라이브러리 설치 서버를 제외한 나머지 노드에서 수행한다.
yum -y install mariadb python2-PyMySQL
config 변경
# /etc/my.cnf 파일을 수정해도 된다.
[root@openstack1:~]# /etc/my.cnf.d/openstack.cnf
# openstack.cnf 파일은 빈파일이다.
# 아래 내용을 붙여넣는다.
[mysqld]
#bind-address를 주석처리 하면 기본 값으로 설정된다.
bind-address = 서버_IP
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
서비스 활성화
# Service 시작
[root@openstack1:~]#service mariadb start
Redirecting to /bin/systemctl start mariadb.service
[root@openstack1:~]#chkconfig mariadb on
알림: 'systemctl enable mariadb.service'에 요청을 전송하고 있습니다.
Created symlink from /etc/systemd/system/mysql.service to /usr/lib/systemd/system/mariadb.service.
Created symlink from /etc/systemd/system/mysqld.service to /usr/lib/systemd/system/mariadb.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
# 또는
[root@openstack1:~]# systemctl enable mariadb.service
[root@openstack1:~]# systemctl start mariadb.service
MySQL은 세계에서 가장 많이 쓰이는 오픈 소스의 관계형 데이터베이스 관리 시스템1(RDBMS : Relational DataBase Management System : 관계형 데이터베이스)이다. 다중 스레드, 다중 사용자 형식의 구조질의어 형식의 데이터베이스 관리 시스템으로서 오라클이 관리 및 지원하고 있으며, Qt처럼 이중 라이선스가 적용된다. 하나의 옵션은 GPL이며, GPL 이외의 라이선스로 적용시키려는 경우 전통적인 지적재산권 라이선스의 적용을 받는다.
위와 같은 지원 방식은 자유 소프트웨어 재단이 프로젝트에 저작권을 적용하는 방법과 비슷한 JBoss의 모델과 유사하다. 그러나 기반코드가 개인의 소유자에게 저작권이 있고 커뮤니티에 의해 개발되는 아파치 프로젝트와는 다르다.
MySQL AB는 또한 MaxDB라고 불리는 MySQL AB와는 기반코드가 다른 데이터베이스 관리 시스템을 판매했으나 2007년 이래로 MaxDB는 SAP AG가 소유하고 있다.
썬 마이크로시스템즈에 10억 달러에 인수되었으나, 썬 마이크로시스템즈가 오라클에 인수되며 같이 넘어갔다.2 위키백과에서 발췌
MySQL이 썬마이크로시스템즈->오라클로 넘어가면서 라이선스에 대한 이견으로 태어난 MariaDB3MariaDB는 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)이다. MySQL과 동일한 소스 코드를 기반으로 하며, GPL v2 라이선스를 따른다. 오라클 소유의 현재 불확실한 MySQL의 라이선스 상태에 반발하여 만들어졌으며, 배포자는 몬티 프로그램 AB(Monty Program AB)와 저작권을 공유해야 한다. 이것은 MySQL과 높은 호환성을 유지하기 위함이며, MySQL API와 명령에 정확히 매칭하여, 라이브러리 바이너리와 상응함을 제공하여 교체 가능성을 높이고자 함이다. 마리아 DB에는 새로운 저장 엔진인 아리아(Aria)뿐만 아니라, InnoDB를 교체할 수 있는 XtraDB 저장 엔진을 포함하고 있다. 이것은 트랜잭션과 비트랜잭션 엔진 그리고 미래에 나올 MySQL 판에 대응하고자 함일 것이다. 마리아 DB의 주요 개발자는 MySQL과 몬티 프로그램 AB를 설립한 몬티 와이드니어스(Michael Monty Widenius)이다. 그는 이전에 자신의 회사, MySQL AB를 썬 마이크로시스템즈에 10억 달러에 판매를 한 적이 있으며, 마리아 DB는 그의 둘째 딸인 마리아의 이름을 딴 것이다. 로 MySQL을 대체할 수 있다. 4RedHat Enterprise Linux와 CentOS의 느낌과 비슷한가?
설치
MySQL 8.x 는 보안 관련 기능 들이 많이 추가되었다. 사용자 생성이나 권한부여 등에서 5.x와 큰 차이가 있으니 유념하자.
다운로드 MySQL 홈페이지의 다운로드 페이지에서 Community Edition5GPL:GNU General Public Lisence을 선택하자. MariaDB 패키지는 이 링크에서 다운로드 할 수 있다. 여기에서 버전을 선택해서 다운로드 할 수도 있다. 어느 버전을 선택하건 RPM Bundle 을 선택하자. 6그래야 이런 저런 패키지를 따로 받아야 되는 귀찮음을 줄일 수 있다.
다운로드가 완료됐으면 서버에 파일을 업로드하자.
Install
업로드가 완료 되었으면 압축을 해제한다.
[centos7:/root/mysql:]# tar -xvf mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar
mysql-community-embedded-devel-5.7.31-1.el7.x86_64.rpm
mysql-community-libs-5.7.31-1.el7.x86_64.rpm
mysql-community-client-5.7.31-1.el7.x86_64.rpm
mysql-community-server-5.7.31-1.el7.x86_64.rpm
mysql-community-embedded-5.7.31-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.31-1.el7.x86_64.rpm
mysql-community-common-5.7.31-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.31-1.el7.x86_64.rpm
mysql-community-devel-5.7.31-1.el7.x86_64.rpm
mysql-community-test-5.7.31-1.el7.x86_64.rpm
# 기존에 설치된 mysql 또는 mariadb가 있을 경우 삭제하는 편이 좋다
[centos7:/root/mysql:]# yum erase mariadb* mysql*
[centos7:/root/mysql:]# yum install ./*.rpm
Loaded plugins: fastestmirror, langpacks
Examining ./mysql-community-client-5.7.31-1.el7.x86_64.rpm: mysql-community-client-5.7.31-1.el7.x86_64
Marking ./mysql-community-client-5.7.31-1.el7.x86_64.rpm to be installed
Examining ./mysql-community-common-5.7.31-1.el7.x86_64.rpm: mysql-community-common-5.7.31-1.el7.x86_64
Marking ./mysql-community-common-5.7.31-1.el7.x86_64.rpm to be installed
Examining ./mysql-community-devel-5.7.31-1.el7.x86_64.rpm: mysql-community-devel-5.7.31-1.el7.x86_64
Marking ./mysql-community-devel-5.7.31-1.el7.x86_64.rpm to be installed
Examining ./mysql-community-embedded-5.7.31-1.el7.x86_64.rpm: mysql-community-embedded-5.7.31-1.el7.x86_64
Marking ./mysql-community-embedded-5.7.31-1.el7.x86_64.rpm to be installed
Examining ./mysql-community-embedded-compat-5.7.31-1.el7.x86_64.rpm: mysql-community-embedded-compat-5.7.31-1.el7.x86_64
Marking ./mysql-community-embedded-compat-5.7.31-1.el7.x86_64.rpm to be installed
Examining ./mysql-community-embedded-devel-5.7.31-1.el7.x86_64.rpm: mysql-community-embedded-devel-5.7.31-1.el7.x86_64
Marking ./mysql-community-embedded-devel-5.7.31-1.el7.x86_64.rpm to be installed
Examining ./mysql-community-libs-5.7.31-1.el7.x86_64.rpm: mysql-community-libs-5.7.31-1.el7.x86_64
Marking ./mysql-community-libs-5.7.31-1.el7.x86_64.rpm to be installed
Examining ./mysql-community-libs-compat-5.7.31-1.el7.x86_64.rpm: mysql-community-libs-compat-5.7.31-1.el7.x86_64
Marking ./mysql-community-libs-compat-5.7.31-1.el7.x86_64.rpm to be installed
Examining ./mysql-community-server-5.7.31-1.el7.x86_64.rpm: mysql-community-server-5.7.31-1.el7.x86_64
Marking ./mysql-community-server-5.7.31-1.el7.x86_64.rpm to be installed
Examining ./mysql-community-test-5.7.31-1.el7.x86_64.rpm: mysql-community-test-5.7.31-1.el7.x86_64
Marking ./mysql-community-test-5.7.31-1.el7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package mariadb-devel.x86_64 1:5.5.56-2.el7 will be obsoleted
---> Package mariadb-libs.x86_64 1:5.5.56-2.el7 will be obsoleted
---> Package mysql-community-client.x86_64 0:5.7.31-1.el7 will be installed
---> Package mysql-community-common.x86_64 0:5.7.31-1.el7 will be installed
---> Package mysql-community-devel.x86_64 0:5.7.31-1.el7 will be obsoleting
---> Package mysql-community-embedded.x86_64 0:5.7.31-1.el7 will be installed
---> Package mysql-community-embedded-compat.x86_64 0:5.7.31-1.el7 will be installed
---> Package mysql-community-embedded-devel.x86_64 0:5.7.31-1.el7 will be installed
---> Package mysql-community-libs.x86_64 0:5.7.31-1.el7 will be obsoleting
---> Package mysql-community-libs-compat.x86_64 0:5.7.31-1.el7 will be obsoleting
---> Package mysql-community-server.x86_64 0:5.7.31-1.el7 will be installed
---> Package mysql-community-test.x86_64 0:5.7.31-1.el7 will be installed
--> Processing Dependency: perl(JSON) for package: mysql-community-test-5.7.31-1.el7.x86_64
Loading mirror speeds from cached hostfile
* base: mirror.kakao.com
* epel: ftp.jaist.ac.jp
* extras: mirror.kakao.com
* updates: mirror.kakao.com
--> Processing Dependency: perl(JSON) for package: mysql-community-test-5.7.31-1.el7.x86_64
--> Running transaction check
---> Package perl-JSON.noarch 0:2.59-2.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==========================================================================================================================================================
Package Arch Version Repository Size
==========================================================================================================================================================
Installing:
mysql-community-client x86_64 5.7.31-1.el7 /mysql-community-client-5.7.31-1.el7.x86_64 101 M
mysql-community-common x86_64 5.7.31-1.el7 /mysql-community-common-5.7.31-1.el7.x86_64 2.8 M
mysql-community-devel x86_64 5.7.31-1.el7 /mysql-community-devel-5.7.31-1.el7.x86_64 20 M
replacing mariadb-devel.x86_64 1:5.5.56-2.el7
mysql-community-embedded x86_64 5.7.31-1.el7 /mysql-community-embedded-5.7.31-1.el7.x86_64 200 M
mysql-community-embedded-compat x86_64 5.7.31-1.el7 /mysql-community-embedded-compat-5.7.31-1.el7.x86_64 88 M
mysql-community-embedded-devel x86_64 5.7.31-1.el7 /mysql-community-embedded-devel-5.7.31-1.el7.x86_64 885 M
mysql-community-libs x86_64 5.7.31-1.el7 /mysql-community-libs-5.7.31-1.el7.x86_64 9.5 M
replacing mariadb-libs.x86_64 1:5.5.56-2.el7
mysql-community-libs-compat x86_64 5.7.31-1.el7 /mysql-community-libs-compat-5.7.31-1.el7.x86_64 6.0 M
replacing mariadb-libs.x86_64 1:5.5.56-2.el7
mysql-community-server x86_64 5.7.31-1.el7 /mysql-community-server-5.7.31-1.el7.x86_64 762 M
mysql-community-test x86_64 5.7.31-1.el7 /mysql-community-test-5.7.31-1.el7.x86_64 663 M
Installing for dependencies:
perl-JSON noarch 2.59-2.el7 base 96 k
Transaction Summary
==========================================================================================================================================================
Install 10 Packages (+1 Dependent package)
Total size: 2.7 G
Total download size: 96 k
Is this ok [y/d/N]: y
Downloading packages:
perl-JSON-2.59-2.el7.noarch.rpm | 96 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : mysql-community-common-5.7.31-1.el7.x86_64 1/13
Installing : mysql-community-libs-5.7.31-1.el7.x86_64 2/13
Installing : mysql-community-devel-5.7.31-1.el7.x86_64 3/13
Installing : mysql-community-client-5.7.31-1.el7.x86_64 4/13
Installing : mysql-community-server-5.7.31-1.el7.x86_64 5/13
Installing : mysql-community-embedded-5.7.31-1.el7.x86_64 6/13
Installing : perl-JSON-2.59-2.el7.noarch 7/13
Installing : mysql-community-test-5.7.31-1.el7.x86_64 8/13
Installing : mysql-community-embedded-devel-5.7.31-1.el7.x86_64 9/13
Installing : mysql-community-libs-compat-5.7.31-1.el7.x86_64 10/13
Installing : mysql-community-embedded-compat-5.7.31-1.el7.x86_64 11/13
Erasing : 1:mariadb-devel-5.5.56-2.el7.x86_64 12/13
Erasing : 1:mariadb-libs-5.5.56-2.el7.x86_64 13/13
Verifying : mysql-community-embedded-5.7.31-1.el7.x86_64 1/13
Verifying : mysql-community-libs-compat-5.7.31-1.el7.x86_64 2/13
Verifying : mysql-community-common-5.7.31-1.el7.x86_64 3/13
Verifying : perl-JSON-2.59-2.el7.noarch 4/13
Verifying : mysql-community-embedded-compat-5.7.31-1.el7.x86_64 5/13
Verifying : mysql-community-devel-5.7.31-1.el7.x86_64 6/13
Verifying : mysql-community-server-5.7.31-1.el7.x86_64 7/13
Verifying : mysql-community-test-5.7.31-1.el7.x86_64 8/13
Verifying : mysql-community-embedded-devel-5.7.31-1.el7.x86_64 9/13
Verifying : mysql-community-client-5.7.31-1.el7.x86_64 10/13
Verifying : mysql-community-libs-5.7.31-1.el7.x86_64 11/13
Verifying : 1:mariadb-devel-5.5.56-2.el7.x86_64 12/13
Verifying : 1:mariadb-libs-5.5.56-2.el7.x86_64 13/13
Installed:
mysql-community-client.x86_64 0:5.7.31-1.el7 mysql-community-common.x86_64 0:5.7.31-1.el7
mysql-community-devel.x86_64 0:5.7.31-1.el7 mysql-community-embedded.x86_64 0:5.7.31-1.el7
mysql-community-embedded-compat.x86_64 0:5.7.31-1.el7 mysql-community-embedded-devel.x86_64 0:5.7.31-1.el7
mysql-community-libs.x86_64 0:5.7.31-1.el7 mysql-community-libs-compat.x86_64 0:5.7.31-1.el7
mysql-community-server.x86_64 0:5.7.31-1.el7 mysql-community-test.x86_64 0:5.7.31-1.el7
Dependency Installed:
perl-JSON.noarch 0:2.59-2.el7
Replaced:
mariadb-devel.x86_64 1:5.5.56-2.el7 mariadb-libs.x86_64 1:5.5.56-2.el7
Complete!
설정
[centos7:/root/mysql:]# vi /etc/my.cnf
# 운영 목적에 맞는 설정을 추가해야 한다.
# 모든 경로는 mysql계정과 그룹이 소유하고 있어야 한다.
[mysqld]
# 접속을 받아들일 포트
port = 3306
# 기본 캐릭터 셋
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
# MySQL Data가 저장될 경로
datadir=/home/mysql
# MySQL 소켓 통신을 위한 socket 파일 경로
socket=/var/lib/mysql/mysql.sock
# Error Log가 저장될 경로
log-error=/var/log/mysqld.log
# 구동되는 MySQL 프로세스 ID 가 저장될 경로
pid-file=/var/run/mysqld/mysqld.pid
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
구동
[centos7:/home/mysql:]# service mysqld start
Redirecting to /bin/systemctl start mysqld.service
서비스 확인
[centos7:/home/mysql:]# ps -ef | grep mysql
mysql 24089 1 0 16:28 ? 00:00:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root 26711 3609 0 16:38 pts/0 00:00:00 grep --color=auto mysql
[centos7:/home/mysql:]# netstat -nltp | grep mysql
tcp6 0 0 :::3306 :::* LISTEN 24089/mysqld
패스워드 확인 root 계정에 대한 패스워드가 자동으로 생성된다. log 에서 확인 해야 한다.
[centos7:/home/mysql:]# grep password /var/log/mysqld.log
2020-12-11T07:24:57.633735Z 0 [Note] Shutting down plugin 'mysql_native_password'
2020-12-11T07:24:59.319129Z 1 [Note] A temporary password is generated for root@localhost: qT(2qk9c>y2G
2020-12-11T07:25:09.861956Z 2 [Note] Access denied for user 'root'@'localhost' (using password: NO)
2020-12-11T07:25:23.483532Z 0 [Note] Shutting down plugin 'validate_password'
2020-12-11T07:25:24.495481Z 0 [Note] Shutting down plugin 'sha256_password'
2020-12-11T07:25:24.495490Z 0 [Note] Shutting down plugin 'mysql_native_password'
A temporary password is generated for root@localhost: 부분을 확인한다. 예시의 경우는 qT(2qk9c>y2G 가 패스워드이다.
댓글을 달려면 로그인해야 합니다.