MySQL DB #1 설치

개요

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 가 패스워드이다.

댓글 남기기