안녕하세요. 이번에는 CentOS7에 MaraDB 설치 및 설정에 대한 포스팅을 진행하겠습니다.

MariaDB는 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)이다. MySQL과 동일한 소스 코드를 기반으로 하며, GPL v2 라이선스를 따른다.

출처 : https://ko.wikipedia.org/wiki/MariaDB

 

1. MariaDB yum repo 등록

vi /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

mariadb 10.4 버전을 baseurl로 등록하였습니다. 다른 버전을 다운받고 싶다면 baseurl을 수정해주세요.


2. MariaDB 설치 및 확인

yum install MariaDB
# rpm -qa | grep MariaDB
MariaDB-compat-10.4.12-1.el7.centos.x86_64
MariaDB-client-10.4.12-1.el7.centos.x86_64
MariaDB-common-10.4.12-1.el7.centos.x86_64
MariaDB-server-10.4.12-1.el7.centos.x86_64

# mariadb --version
mariadb Ver 15.1 Distrib 10.4.12-MariaDB, for Linux (x86_64) using readline 5.1

3. MariaDB 실행 및 비밀번호 변경

//mariadb 실행
# systemctl start mariadb

//비밀번호 변경
# /usr/bin/mysqladmin -u root password '변경할 비밀번호 입력'

//포트 및 데몬 이름 확인
# netstat -anp | grep 3306


4. CharaterSet utf8mb4로 변경

# vi /etc/my.cnf
[mysqld]
default_storage_engine=innodb

init-connect='SET NAMES utf8mb4'
lower_case_table_names=1
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci


[client]
port=3306
default-character-set = utf8mb4

[mysqldump]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

mariadb 재시작

systemctl restart mariadb

5. mariaDB 로그인 및 CharacterSet 확인

# mysql -u root -p
Enter password: 설정한 비밀번호 입력

characterSet이 utf8mb4로 변경되었는지 확인합니다.

> show variables like 'c%';


6. linux 리부팅 시 자동으로 실행되도록 설정

# systemctl enable mariadb
# systemctl is-enabled mariadb
enabled

참조 : https://ignorabilis.tistory.com/4


도움이 되셨다면 공감버튼을 눌러주세요!

1. open-jdk 1.8 설치

# yum install java-1.8.0-openjdk
# yum install java-1.8.0-openjdk-devel

설치가 완료되면 /usr/bin/경로에 java가 생성됩니다.


2. 환경변수 등록

/usr/bin/java 경로에 심볼릭링크가 걸려있기 때문에 실제 경로를 찾아서 환경변수에 등록해주어야 합니다.

# readlink -f /usr/bin/java
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/bin/java

실제 경로를 찾았으면 /etc/profile을 vi로 열어줍니다. 그리고 JAVA_HOME, PATH, CLASSPATH를 등록합니다.

//# vi /etc/profile

...

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar

export JAVA_HOME PATH CLASSPATH

환경 변수를 등록했다면 ssh연결을 재시작하거나 source /etc/profile 명렁어를 입력해줍니다.

등록한 환경 변수가 제대로 적용되었는지 테스트합니다.

# echo $JAVA_HOME
# echo $PATH
# echo $CLASSPATH

3. HelloWorld.java 컴파일 후 실행

# vi HelloWorld.java
public class HelloWorld{
   public static void main(String[] args){
        System.out.println("Hello World!!");
   }
}

HelloWorld.java 파일을 컴파일하고 실행시켜서 테스트해봅니다.

# javac HelloWorld.java
# java -cp . HelloWorld
Hello World!!

 

테스트 끝!


도움이 되셨다면 공감버튼을 눌러주세요!

CentOS 7에 Tomcat8을 설치 및 설정하는 예제를 진행하겠습니다. 테스트의 편의성을 위해 root 계정에서 진행하겠습니다.

1. open-jdk 1.8 설치 

jdk가 설치되어 있지 않다면 아래 링크에서 다운로드해주세요.

2020/02/19 - [IT/Linux] - [Linux] CentOS 7에 OpenJDK 1.8 설치

2. tomcat 설치

tomcat은 설치하는 방법이 다양합니다. 이번 예제는 wget을 이용해 설치하겠습니다.

# wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.27/bin/apache-tomcat-8.5.27.tar.gz

// 압축 해체
# tar zxvf apache-tomcat-8.5.27.tar.gz

// 톰캣을 /usr/local/로 이동시키고 디렉토리 이름을 tomcat8로 변경
# mv apache-tomcat-8.5.27 /usr/local/tomcat8

3. tomcat 설정 및 환경 변수 등록

vi /usr/local/tomcat8/conf/server.xml
// vi /usr/local/tomcat8/conf/server.xml
// 아래 설정을 찾아서 URIEncoding="UTF-8"을 추가한다.

...
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               URIEncoding="UTF-8" />
...
vi /etc/profile
...

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
CATALINA_HOME=/usr/local/tomcat8
CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib-jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar
PATH=$PATH:$JAVA_HOME/bin:/bin:/sbin
export JAVA_HOME PATH CLASSPATH CATALINA_HOME
설정 후 아래 명령어 입력 
# source /etc/profile

3. tomcat 실행

startup.sh파일은 tomcat을 실행시키는 shell script입니다. 해당 파일을 실행시켜 tomcat을 작동시켜줍니다.

# /usr/local/tomcat8/bin/startup.sh

tomcat이 실행되고 있는지 확인합니다.

//톰캣 프로세스 확인
# ps -ef|grep tomcat8

// 8080 포트가 열려있는지 확인 
# netstat -tln

 테스트해보기 위해 다음 명령어를 실행시켜줍니다.

# wget http://localhost:8080/

index.html 파일이 다운로드 되었다면 정상적으로 tomcat이 실행되고 있다는 의미입니다. 

index.html 파일은 기본적으로 실행되는 /usr/local/tomcat8/webapps/ROOT WebService에서 다운받은 것이며, 

http://localhost:8080 호출 시,  /usr/local/tomcat8/webapps/ROOT/index.jsp 파일이 index.html로 변환되어 다운됩니다.


4. systemctl 등록

vi /etc/systemd/system/tomcat8.service
# Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=forking

Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/"
Environment="CATALINA_HOME=/usr/local/tomcat8"
Environment="CATALINA_BASE=/usr/local/tomcat8"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

ExecStart=/usr/local/tomcat8/bin/startup.sh
ExecStop=/usr/local/tomcat8/bin/shutdown.sh

User=root
Group=root
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

 

# systemctl daemon-reload
# systemctl enable tomcat8

// tomcat8 실행
# systemctl start tomcat8

5. systemctl service 부팅 시 자동 실행

//부팅 시 자동 실행 서비스 등록
# systemctl enable tomcat8.service
//등록된 서비스 조회
# systemctl list-unit-files --type service |grep tomcat8

 

6. tomcat manager 설정 (해당 설정은 선택사항 입니다.)

tomcat manager란 tomcat 모니터링 및 어플리케이션 관리, WAR 배포 및 다양한 서비스를 제공해주는 관리 페이지입니다.

1) tomcat-users.xml 수정

vi /usr/local/tomcat8/conf/tomcat-users.xml
<tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0">

  <role rolename="manager"/>
  <role rolename="manager-gui" />
  <role rolename="manager-script" />
  <role rolename="manager-jmx" />
  <role rolename="manager-status" />
  <role rolename="admin"/>
  <user username="admin" password="패스워드" roles="admin,manager,manager-gui, manager-script, manager-jmx,  manager-status"/>

</tomcat-users>

 

2) 외부 접근 허용 설정

vi /usr/local/tomcat8/conf/Catalina/localhost/manager.xml
<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager">          <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

설정 후, 서버 재시작

3) 테스트

http://자신의IP:8080/manager

위 주소를 입력하고 ID와 password를 입력면 아래와 같은 웹페이지가 노출됩니다.  

만약 접근이 안된다면 여러가지 이유가 있겠지만, 8080포트로 방화벽이 열려있는지 확인해주시기 바랍니다.
방화벽에 대한 정보는 아래 링크를 이용해주세요.
2020.03.02 - [IT/Linux] - [Linux] firewalld 방화벽 설정하기

'IT > Linux' 카테고리의 다른 글

[Linux] CentOS7에 MariaDB 설치하기  (8) 2020.02.24
[Linux] CentOS 7에 OpenJDK 1.8 설치  (0) 2020.02.19
[Linux] 계정과 그룹관리  (0) 2020.02.12
[Linux] CentOS 7 Git Server 구축하기  (0) 2020.02.11
[Linux] CentOS 7 Mysql 설치  (0) 2019.12.27

1. 계정 설정

1) 계정 확인하기

# cat /etc/passwd | grep kim
kim:x:1003:1003::/home/kim:/bin/bash

순서대로 사용자명, 패스워드, uid, gid, 설명, 계정 홈 디렉토리, 쉘 환경이다.

 

2) 계정 생성하기

# useradd 계정명 -m -s /bin/bash

 

3) useradd options

-d
홈 디렉토리 경로를 지정해준다.
-m
홈 디렉토리를 생성한다. (경로를 지정해주지 않으면 /home/계정명 으로 생성된다.)
-u
사용자 UID값을 지정한다.
-g
주 그룹으로 소속 시킨다.
-G groups...
보조 그룹을 지정한다. (kim계정이 생성되면 kim 그룹이 생성되고 kim 그룹이 입력한 그룹의 보조그룹이된다.)
-s
셀 경로를 지정한다.
-c
계정 설명을 추가한다.
-e expire_date
계정의 만료일을 설정한다.  ex) -e 2020-12-31
default는 무기한이며, /etc/default/useradd 파일의 EXPIRE 변수의 값에 만료일이 명시되어 있다.

 

4) 계정 비밀번호 변경하기

1) # echo '패스워드' | passwd --stdin 계정명

2) # echo '계정명:패스워드' | chpasswd

3) # passwd 계정명

 

5) 계정 삭제

# userdel -r 계정명

-r : home directory도 함께 삭제된다.


2. 그룹 설정

1) 계정 리스트 검색

# cat /etc/group

 

2) 그룹 생성

# groupadd 그룹명 

 

3) 그룹 삭제

# groupdel 그룹명

 

4) 특정 계정을 특정 그룹의 보조 그룹으로 추가

-g : 주 그룹 변경 옵션

-G : 보조 그룹 추가 옵션

//이미 해당 계정에 보조그룹이 지정되어 있다면, 덮어쓰기 된다.
# usermod -G 그룹명 계정명

//이미 해당 계정에 보조그룹이 있어도 보조그룹이 추가된다.
# usermod -G 그룹명 -a 계정명 

 

5) 특정 계정의 주그룹 변경 

# usermod -g 그룹명 계정명

 

6) 특정 계정이 소속된 그룹 검색

# groups 계정명

 

7) 계정 ID, 그룹 ID, 보조 그룹 검색

# id 계정명

3. 계정 생성 및 그룹 생성 테스트

//4개의 그룹을 생성한다.
# groupadd group1
# groupadd group2
# groupadd group3
# groupadd group4

// user1 계정 생성 시, group1을 주그룹으로 지정하고 group2,group3,group4을 보조그룹으로 지정한다.
# useradd user1 -g group1 -G group2,group3,group4

// "group"으로 시작하는 group을 검색한다.
# cat /etc/group | grep group
group1:x:1008: 
group2:x:1009:user1 
group3:x:1010:user1 
group4:x:1011:user1

//"user1" 계정을 검색한다.
# cat /etc/passwd | grep user1
user1:x:1007:1008::/home/user1:/bin/bash

//"user1"의 id정보들을 검색한다.
# id user1
uid=1007(user1) gid=1008(group1) groups=1008(group1),1009(group2),1010(group3),1011(group4)

 

CentOS 7에 Git을 설치해서 remote repository로 사용하는 예제를 포스팅하겠습니다.

(CentOS 7이 설치되어있지 않다면 다음 링크를 참고해주세요.)

2019/12/24 - [IT/Linux] - [Linux] VMware에 CentOS 7 설치 방법


1. Git 서버

Git 설치

# yum install git

# git --version

git을 설치하고 버전을 확인한다.

Git Directory 및 저장소 생성

mkdir -p /opt/git/project.git

git init --bare /opt/git/project.git/

git directory를 생성한다. (-p 는 상위 디렉토리도 함께 생성하는 옵션)

그리고 해당 디렉토리를 git 환경으로 초기화한다.

Git 계정 생성

# useradd git
# echo 'git:비밀번호입력' | chpasswd
# chown -R git:git /opt/git/

git 계정을 생성하고 비밀번호를 변경한다. 그리고  "/opt/git/" 디렉토리의 소유자를 git으로 변경한다.

(chown에서 -R 옵션은 하위 디렉토리까지 소유자를 변경한다는 의미이다.) 

.ssh 디렉토리 생성 

git 계정 home 디렉토리에 .ssh 디렉토리를 생성한다. 

# cd /home/git/
# mkdir .ssh

2. Windows 클라이언트

git-bash 설치

아래 경로에서 git-bash를 설치한다.

https://git-scm.com/

 

Git

 

git-scm.com

SSH KEY 생성

원격 저장소와 통신하려면, 서버에 공유키(public key)를 등록해야한다. 등록 하기 이전에 먼저 key를 생성해 보자

git-bash를 실행하고 ssh key 저장 디렉토리로 이동한다.

그리고 ssh-keygen명령어를 입력해서 key를 생성한다. (key가 이미 존재한다면 하지않아도 된다.)

무언가를 입력하라는 입력 창이 노출되는데 무시하고 Enter를 누르면 된다.

ssh-key가 정상적으로 생성되었다. ls 명령어를 입력해 잘 생성되었는지 확인한다.

그리고 pwd 명령어로 .ssh 경로를 메모장에 적어둔다. 


SFTP를 이용해 public key를 서버로 이동

filezila 툴을 이용해서 public key(id_rsa.pub)를 서버로 이동시킨다.

filezila가 없다면 아래 경로에서 다운받자.

https://filezilla-project.org/

 

FileZilla - The free FTP solution

Overview Welcome to the homepage of FileZilla®, the free FTP solution. The FileZilla Client not only supports FTP, but also FTP over TLS (FTPS) and SFTP. It is open source software distributed free of charge under the terms of the GNU General Public Licens

filezilla-project.org

 

filezila를 실행시켜 호스트 정보와 사용자 정보를 입력한 후 연결한다.

그리고 미리 생성해두었던 public key를 서버의 "/home/git/.ssh" 디렉토리로 이동시킨다.


서버에 key 등록하기

다시 서버로 돌아와서 /home/git/.ssh 디렉토리 경로로 이동 후 다음 명령어를 입력한다.

cat id_rsa.pub >> authorized_keys

위 명령어를 입력하면 클라이언트의 public key가 authorized_keys 파일에 append 된다.


/opt/git/project.git clone 하기 

프로젝트를 받기위해 적당한 위치에 디렉토리를 미리 생성시켜 둔다.

그리고 git-bash에서 해당 디렉토리로 이동해 다음 명령어를 입력한다.

git clone ssh://git@IP주소:/opt/git/project.git

clone 후 해당 디렉토리로 이동해 .git 폴더를 열어보면 git에 대한 정보가 담긴 파일들이 저장된 것을 볼 수 있다.


원격 저장소에 파일 올리기 

project 디렉토리에 test.txt 파일을 생성한다.

# git add .
# git commit --message "메시지"
# git push origin master


git 사용자가 리눅스 쉘 접근 막기

git을 이용하는데 문제는 없지만, 보안 상 막는게 좋다.

# witch git-shell
# chsh git -s /usr/bin/git-shell
# cat /etc/passwd | grep git

이것을 적용하면 git 계정에 접근할 수 없다.

 

참조

https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_Git_%EC%84%9C%EB%B2%84_%EA%B5%AC%EC%B6%95_(SSH_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C)

'IT > Linux' 카테고리의 다른 글

[Linux] CentOS 7에 OpenJDK 1.8 설치  (0) 2020.02.19
[Tomcat] CentOS 7에 Tomcat8 설치 및 설정  (0) 2020.02.19
[Linux] 계정과 그룹관리  (0) 2020.02.12
[Linux] CentOS 7 Mysql 설치  (0) 2019.12.27
[Linux] VMware에 CentOS 7 설치 방법  (0) 2019.12.24

+ Recent posts