- CentOS 기본설정
- Oracle 18c 설치
- SQL Server 2019 설치
- MySQL 8 설치
- MongoDB 4 설치
- PostgreSQL 12 설치
- PostgreSQL 추가 내용
업무용 프로그램을 개발하기 위한(개인 프로젝트, 테스트 용도) 환경 구성 중 하나로 데이터베이스 구성은 VirtualBox에 CentOS + Oracle, SQL Server, MySQL, MongoDB, PostgreSQL를 설치하는 데 이때에 필요한 설치과정을 필수적인 부분만 정리하여 보았다. CentOS 버전은 8.1이며 VirtualBox에 기본값으로 CentOS는 설치가 되었다고 가정한다.
CentOS 기본설정
systemctl set-default multi-user.target #runlevel 3
vi /etc/sysconfig/selinux
SELINUX=disabled #enforcing
vi /etc/fstab
tmpfs /dev/shm tmpfs size=6G 0 0 #추가(메모리8G)
firewall-cmd --permanent --add-port=1433/tcp
firewall-cmd --permanent --add-port=1521/tcp
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --permanent --add-port=5432/tcp
firewall-cmd --permanent --add-port=27017/tcp
firewall-cmd --reload
firewall-cmd --list-all
reboot
# 기타
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='xxx.xxx.xxx.xxx/24' reject"
firewall-cmd --permanent --remove-port=27017/tcp
# 데몬설정확인
systemctl list-unit-files | grep -i enabled
systemctl disable(enable) mssql-server.service
netstat -tnlp
#추가 패키지 설치
yum install epel-release
yum groupinstall "Development Tools"
yum install java-11-openjdk
yum install java-11-openjdk-devel
yum install libnsl #오라클 rpm 설치에 필요
yum update
#java default 설정
alternatives --list
alternatives --config java
Oracle 18c 설치
#Install an RPM package for Pre-Installation first.
curl http://public-yum.oracle.com/public-yum-ol7.repo -o /etc/yum.repos.d/public-yum-ol7.repo
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/public-yum-ol7.repo
rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7
yum --enablerepo=ol7_latest -y install oracle-database-preinstall-18c
# 19c Pre-Installation
curl -o oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/getPackage/oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm
yum -y localinstall oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm
#oracle 18c rpm버전 다운로드 설치
rpm -Uvh oracle-database-ee-18c-1.0-1.x86_64.rpm
#오라클 rpm 설치 후 확인 변수
vi /etc/sysconfig/oracledb_ORCLCDB-18c.conf
#오라클 초기 DB 설정 (oracledb_ORCLCDB-18c 편집가능)
/etc/init.d/oracledb_ORCLCDB-18c configure
#오라클 사용자 환경 설정
su - oracle
vi .bash_profile
umask 022
export ORACLE_SID=ORCLCDB
export ORACLE_BASE=/opt/oracle/oradata
export ORACLE_HOME=/opt/oracle/product/18c/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export NLS_LANG=KOREAN_KOREA.AL32UTF8
source .bash_profile
#시작, 종료 확인
sqlplus /nolog
SQL> conn / as sysdba
SQL> shutdown immediate #(종료) 또는 startup(시작)
SQL> exit
lsnrctl stop #(리스너 종료) 또는 start(시작)
exit
su - oracle
#샘플(HR) 스키마 설치
SQL> alter session set "_ORACLE_SCRIPT"=true
SQL> @?/demo/schema/human_resources/hr_main.sql
1:패스워드
2:users #기본테이블스페이스
3:temp #temp테이블스페이스
4:$ORACLE_HOME/demo/schema/log
#백업한 Data 불러오기(imp)
SQL> create tablespace pgspace datafile '/opt/oracle/oradata/ORCLCDB/pg.dbf' size 1G autoextend on next 100M;
#create temporary tablespace pgtemp tempfile '/opt/oracle/oradata/ORCLCDB/pgtemp.dbf' size 1G autoextend on next 100M;
SQL> create user pg identified by "*****" default tablespace pgspace temporary tablespace temp;
SQL> grant connect, resource, dba to pg;
#alter user 유저명 quota unlimited on 테이블스페이스이름;
SQL> exit
imp userid=pg/***** file=./backup.dmp ignore=y fromuser=xxx touser=pg
#참고(cpu 100% : alter system set “_swrf_mmon_dbfus”=false;)
#패스워드/기간 설정
select * from dba_profiles where profile = 'DEFAULT';
alter profile default limit password_life_time unlimited;
alter user 계정명 account unlock;
alter user 계정명 identified by 새비밀번호;
SQL Server 2019 설치
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/8/prod.repo
yum update
#닷넷코어가 필요한 경우 설치
yum install dotnet-sdk-3.1
#서버설치 및 설정(버전,비밀번호,한국어)
yum install -y mssql-server
/opt/mssql/bin/mssql-conf setup
#도구설치
yum install -y mssql-tools unixODBC-devel
#전체 텍스트 검색 설치
yum install -y mssql-server-fts
#에이전트 설치(설정)
/opt/mssql/bin/mssql-conf set sqlagent.enabled true
#언어 및 기타 설정
/opt/mssql/bin/mssql-conf set-collation
:Korean_Wansung_CI_AS
/opt/mssql/bin/mssql-conf set language.lcid 1042
/opt/mssql/bin/mssql-conf set network.tcpport xxxxx
#서버 시작(또는 restart)
systemctl start mssql-server.service
MySQL 8 설치
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
yum install mysql-server
systemctl start mysqld.service
mysql_secure_installation
mysql -u root -p
#root 원격접속 허용도 아래와 같은 방법으로 한다.
create database TestDB;
create user'test'@'%' identified by '*****';
grant all privileges on TestDB.* to 'test'@'%';
MongoDB 4 설치
vi /etc/yum.repos.d/mongodb.repo
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
dnf install mongodb-org
systemctl start mongod.service
mongo
>use admin
>db.createUser(
{
user: "admin",
pwd: "*****",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
>show users
>exit
vi /lib/systemd/system/mongod.service #원격접속 또는
vi /etc/mongod.conf
net:
port: 27017
bindIp: 0.0.0.0
security:
authorization: enabled
systemctl restart mongod.service
#몽고DB 권한 확인 및 DB추가
mongo
>db.version()
>use admin
>show users #권한에러남
>db.auth('admin','*****')
>show users #정상출력
>use testdb
>db.createUser({ user: "test", pwd: "*****", roles: [ { role: "userAdmin", db: "testdb" }] })
>db.grantRolesToUser('test', ['readWrite']);
MongoDB에 대한 기본 명령어는 여기를 참고한다.
PostgreSQL 12 설치
sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf install postgresql12-server --disablerepo=AppStream
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
sudo systemctl start postgresql-12.service
su - postgres
psql
postgres=# \password postgres