리눅스 서버- 10

박형준·2024년 3월 25일

라이젠 5 7500f, a620, ddr 5

◆ Xftp설치 +새로만들기 / Rocky, 192.168.0.100 / root / 1234 / 연결

  • 테스트파일 메모장 생성 후 끌어다 놓기

*FTP 서버 : 파일 업로드 / 다운로드

*vsftpd 설치 확인 / 설치 안되어 있으면 설치 하고 서비스 상태 확인 / 가동 / 상시 사용

  • dnf -y install vsftpd
    • systemctl status vsftpd ⇒ q
    • systemctl enable vsftpd
  • vsftpd 설치
  • vsftpd 시스템 시작 및 영구 동작

*/var/ftp/pub ⇒ 기본 디렉토리 샘플파일 하나 복사해서 넣기 (anaconda~)

  • /var/ftp/pub 기본 디렉터리
  • /var 밑에 이메일과 ftp가 속한다(용량이 줄어들고 늘어난다)
  • 우분투에서 방화벽끄기는 ufw
  • 아나콘다 파일 복사해서 넣기

*방화벽은 끄기 : firewalld 만약에 허용하려면 20,21 두개

  • 설정파일은 : vi /etc/vsftpd/vsftpd.conf ⇒ 익명사용자 접속 허용 ( anonymous = NO => YES )
  • 12 anonymous_enable=YES
    • 저장 / 종료 / 서비스 재시작 ⇒ systemctl restart vsftpd
  • /etc 설정파일 밑에 vsftpd 디렉터리 찾기
  • vsftpd 설정하는 파일
  • 익명의 사용자 (anonymouus) 허용해주기
  • 설정파일 설정 후에는 무조건 재시작

*윈도우10에서 파일질라 설치 하고 접속 /

  • FileZilla_3.60.2_win64_sponsored2-setup 설치 진행.
  • ftp 연결 완료

*연결된 후 VM-Win10에서 업로드 / 다운로드 해보기

  • 다운은 잘됨, / 업로드는 에러 ( 550 Permission ~ )

*업로드 허용 vi /etc/vsftpd/vsftpd.conf

  • 28 anon_upload_enable=YES ⇒ 주석 삭제 익명사용자 업로드 허용
  • 32 anon_mkdir_write_enable=YES ⇒ 디렉토리 생성 관련
    • *deny_file ={ .mp4, .avi, *.jpg } ⇒ 확장자는 업로드가 금지됨.
    • *max_client : 동시접속자 수 설정

*소유권 변경

  • drwxr-xr-x 2 root root 36 3월 25 09:29 pub ⇒ 디렉토리 소유권을 ftp.ftp 로 변경.
    • #chown ftp.ftp /var/ftp/pub
  • vi /etc/vsftpd/vsftpd.conf에서 익명 사용자 업로드 허용
  • deny_file : 특정 확장자의 파일 업로드를 금지 하는 것
  • max_client : 동시접속자 수 설정
  • 설정 파일 조작한 뒤 시스템 재시작
  • pub에 있는 파일의 소유자와 그룹을 ftp로 설정하고 권한주기
  • 설정한 후엔 시스템 재시작

*서비스 재시작 ⇒ 업로드 해보기 . ⇒ 업로드 성공..

*CLI 모드(텍스트) 리눅스에서 ..

  • $ dnf -y install epel-release ⇒ 설치 됨.
  • $ dnf -y install ncftp ⇒ 설치
    • *텍스트 모드 클라이언트가 접속
  • CLI모드의 리눅스 ftp 설치(epel-release)
  • CLI ftp인 ncftp 설치
  • ncftp를 통해 파일 업로드/다운로드(get)

NFS 서버 구현 개요

  • inux(Unix) 컴퓨터끼리 저장 공간을 공유할 수 있도록 해 주는 시스템이 NFS(Network File System)
  • S 서버 구현의 개요도


◆ NFS 서버 ( Network File System )

  • ⇒ 네트워크를 통한 저장소(디스크)를 공유해서 사용.
  • Server-A
    • rpm -qa nfs-utils 설치 확인 ⇒ 설치는 dnf -y install nfs-utils
  • nfs 파일 시스템 다운로드
  • 공유 파일 생성

*설정 파일은 /etc/exports 아래 내용 입력

  • /share *(rw,sync) ⇒ (*는 공유 대상을 뜻하며, 모두이고 특정IP 또는 범위로 입력해도됨 )
  • 공유폴더명 (rw:읽기와쓰기 허용, sync: 동기화 즉시적용 )

*서비스 재시작 과 상시 등록 : nfs-server

  • 공유 디렉토리 /share 생성과 권한변경(707) 및 파일 몇개 복사 해서 넣기 anaconda

#exportfs -v ⇒ 동작 및 설정 확인

  • /share (sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
    • #systemctl stop firewalld
  • 확인용 파일 복사하기
  • 공유 파일 권한 주기
  • 기능 확인
  • 동작 상태 확인(방화벽 꺼짐)

@server-B ⇒ nfs-utils 설치가 되어 있어서 바로 확인 부터 .

  • [root@localhost ~]# showmount -e 192.168.0.100
    • Export list for 192.168.0.100:
      /share *

폴더 생성 및 마운트

  • #mkdir mytest
  • [root@localhost ~]# su -c 'mount -t nfs 192.168.0.100:/share mytest’(루트 권한으로 마운트)

*fstab 에 등록

  • 마운트 연결 된 것 확인
  • 서버 B에서 공유된 파일 확인
  • fstab에 마운트를 등록할 때 root일 때와 일반 사용자일 때의 경로를 적어주는 것이 다르다

@VM 윈도우

  • windows 기능 검색 후 켜기/끄기 ⇒ NFS 체크
    • 다시 시작 하고

*cmd 관리자 모드 /

  • mount 서버IP:공유디렉토리 mount 192.168.0.100/share
  • C:\Windows\system32>mount 192.168.0.100:/share *
    • Z: 현재 192.168.0.100:/share에 성공적으로 연결되어 있습니다.
    • 명령을 완료했습니다. ⇒ 이후 내 PC에서 Z드라이브 보이는건 시간이 조금 걸릴 수 있음.
  • 윈도우 10에서 NFS용 서비스 다운로드
  • 드라이브 z에서 복사된 파일 확인
  • 리눅스에서도 윈도우에서 생성한 파일이 공유된 것을 확인 완료

◆ Samba 서버 윈도우에 연결된 프린트 공유 ⇒ 리눅스 와 연결

  • ⇒윈도우 에서 폴더를 공유하고, 리눅스 에서 마운트 시키고

  • @윈도우 C에 폴더 생성 sbtest / 공유탭 / 공유 / 사용자 everyone [ 읽기, 쓰기]

    • cmd 창 관리자 / net user root 1234 /add ⇒ root 사용자 생성 net user 확인
    • 제어판\사용자 계정\사용자 계정\계정 관리 에서도 생성 확인
    • win - 192.168.0.128
  • 윈도우 10에서 user만들기(root)
  • 리눅스 서버 A에서 삼바 클라이언트 생성(윈도우가 서버)

@Server-A samba 설치 확인 설치가 안되어 있으면 samba-client 설치

  • dnf -y install samba-client
  • [root@localhost ~]# smbclient -L 192.168.0.128
    • Password for [SAMBA\root]:
  • [root@localhost ~]# mkdir sambatest
    • [root@localhost ~]# mount -t cifs //192.168.0.128/sbtest sambatest ⇒cifs는 삼바 파일시스템
      Password for root@//192.168.0.128/sbtest: ⇒ 1234

*확인 해보기

  • windows-data-1.txt windows-data-2.txt windows-data-3.txt
    • [root@localhost sambatest]# mkdir S-A
    • [root@localhost sambatest]# touch S-A.txt
  • 삼바 접속
  • 윈도우와 마운트 연결(파일 시스템 cifs 중요!)
  • 윈도우 10과 연결 완료
  • 리눅스에서 파일 생성
  • 리눅스가 서버역할 할때는 NFS, 윈도우가 서버역할 할 때는 samba(프린터 역할)

데이터베이스 서버

DBMS 개념 (1)


DBMS 개념 (2)


필수 SQL 구문 (1)

(1) DB와 관련된 SQL 문

  • DB 이름 조회
    • 구문 : SHOW DATABASES;
      예) SHOW DATABASES;
  • 사용할 DB 지정
    • 구문 : USE 데이터베이스이름;
      예) USE shopping_db;
  • DB 생성
    • 구문 : CREATE DATABASE 데이터베이스이름 ;
      예) CREATE DATABASE shopping_db ;
  • DB 삭제
    • 구문 : DROP DATABASE 데이터베이스이름;
      예) DROP DATABASE shopping_db;


필수 SQL 구문 (2)
(2) 테이블 운영과 관련된 SQL 문

  • 테이블 이름 조회
    • 구문 : SHOW TABLES;
      예) SHOW TABLES;
  • 테이블 구조(형태) 조회
    • 구문 : EXPLAIN 테이블이름; 또는DESC 테이블이름;
      예) EXPLAIN customer;
  • 테이블 생성
    • 구문 : CREATE TABLE 테이블이름 (필드이름1 필드타입1, 필드이름2
      필드타입2, ... ...) ;
      예) CREATE TABLE customer (id CHAR(10), name VARCHAR(10),
      age INT, ADDRESS VARCHAR(30));
  • 테이블 삭제
    • 구문 : DROP TABLE 테이블이름;
      예) DROP TABLE customer;

char: 빈 공간도 사용한다
varchar: 빈공간은 뺀다


필수 SQL 구문 (3)
(2) 테이블 운영과 관련된 SQL 문 <계속>

  • 테이블 수정
    • 구문 : ALTER TABLE 옵션
      예) ALTER TABLE customer MODIFY name CHAR(20);
      ALTER TABLE customer CHANGE name fullname CHAR(10);
      ALTER TABLE customer ADD phone VARCHAR(20) AFTER name;
      ALTER TABLE customer DROP age ;
      (3) 레코드 삽입/삭제/수정과 관련된 SQL 문
  • 레코드 삽입
    • 구문 : INSERT INTO 테이블이름 VALUES (값1, 값2, ... ...);
      예) INSERT INTO customer VALUES( ‘hong’ , ‘홍길동’ , 22, ‘경기’);
  • 레코드 삭제
    • 구문 : DELETE FROM 테이블이름 WHERE 조건;
      예) DELETE FROM customer WHERE id=‘hong’;
  • 레코드 수정
    • 구문 : UPDATE 테이블이름 SET 필드이름1 = 수정할값1, 필드이름2 = 수정
      할값2 ....... WHERE 조건;
      예) UPDATE customer age=25 WHERE id=‘hong’;

필수 SQL 구문 (4)
(4) 테이블 조회

  • 테이블 조회
    • 구문 : SELECT 필드이름1, 필드이름2...... FROM 테이블이름
      WHERE 조건 ;
      예) SELECT * FROM customer;
      SELECT id, name FROM customer;
      SELECT id, name FROM customer WHERE id = ‘john’;
      SELECT id, name FROM customer WHERE age > 25;

Visual Studio와 MariaDB의 연동

  • Windows와 MariaDB 서버 간의 연결을 위한 구성도


*Server-A
-MariaDB -

  • 파이어 폭스 / https://mariadb.org 파일 저장 ⇒ 다운이 많이 느리거나 안되면 xftp를 이용해서 파일 넣기

  • cd 다운로드 / 압축 해제 후 설치

    • dnf -y install ga.rpm Maria.rpm
    • 서비스 시작 /상시 가동 / 상태 확인 ⇒ mariadb
  • 파이어 폭스를 이용해서 서버 A에 다운로드
  • 압축 해제
  • 마리아DB XFTP를 통해 파일 업로드
  • 마리아DB 다운로드

*방화벽 에 mysql 등록

  • firewall-config / 영구적 / mysql 체크 / 다시불러오기

*mysql ⇒ exit ⇒ 접속이 잘되면 OK

  • 마리아db 동작중
  • GUI 모드에서 마리아db 허용
  • 리눅스에서 mysql 접속해보기

*윈도우에서 접속 가능하도록 설정 .

  • [root@sol ~]# mysqladmin -u root password '1234'; ⇒ 사용자 생성 및 암호 설정
  • [root@sol ~]# mysql -h localhost -u root -p ⇒ 접속 ⇒ exit
  • 메모장으로 마리아 db 입력할 내용 메모장에 미리 써놓기
  • 마리아 db 접속 가능 확인하기

*VM 윈도우에서 https://mariadb.org

  • install / 설치 진행~~
  • cmd 창 관리자 모드 또는 파워쉘
    • C:\Program Files\MariaDB 10.9\bin 이동 mysql ⇒ 접속이 안됨.
  • 윈도우에서 마리아 db 설치하기
  • 마리아 db 설치할 때 클라이언트만 설치하기
  • 윈도우에서 마리아 db 명령어가 있는 곳으로 이동하기
  • 마리아 db 설치되어 있는 것 확인하기

*Server-A 에서 설정 후 접속

  • [root@sol ~]# mysql -u root -p

    • MariaDB [mysql]> select user, host from user where user not like '';
    • MariaDB [mysql]> select user, host from user ;
  • MariaDB [mysql]> grant all on . to winuser@'192.168.0.%'identified by '1234';

    • Query OK, 0 rows affected (0.001 sec)
  • mysql 옵션의 차이점 : 호스트가 보인다.
  • 리눅스에서 윈도우의 mysql 권한 부여

*윈도우에서 다시 접속 해보기

  • C:\Program Files\MariaDB 10.9\bin>mysql -h 192.168.0.100 -u winuser -p
    • Enter password: **** (1234)
  • 윈도우에서 mysql 접속

  • MariaDB [(none)]> create database shopping_db character set utf8;
    Query OK, 1 row affected (0.001 sec)

  • MariaDB [(none)]> show databases;

  • MariaDB [(none)]> use shopping_db;

    • MariaDB [shopping_db]> create table customer (
      -> id varchar(10) not null primary key, ⇒ char은 고정길이값 문자, varchar은 가변길이값 문자
      -> name varchar(5),
      -> age int, ⇒ int 정수
      -> address varchar(10) );
      Query OK, 0 rows affected (0.003 sec)
  • MariaDB [shopping_db]> create table purchase (

    • -> no int not null primary key auto_increment,
    • -> cust_id varchar(10),
    • -> date char(8),
    • -> product varchar(5) );
      Query OK, 0 rows affected (0.002 sec)
  • MariaDB [shopping_db]> desc customer;

    • desc purchase; ⇒ 테이블 생성 확인
  • mysql 설정
  • customer 테이블 만들기
  • purchase 테이블 만들기

*테이블에 데이터 입력 ⇒ 아래 내용 복사해서 붙여넣기 하면 에러 .. 입력하거나 메모장에 입력후 복 붙.

  • select * from customer;
  • select * from purchase;
  • 빈 테이블 확인
  • 값 넣어주기
  • 메모장에 있는 값 넣어주기

*Windows 와 리눅스 연결 = ODBC

*윈도우에서
VS설치

설치가 끝나면 설치 창을 닫고 윈도우 재부팅 ~~ 하고 스냅샷.

  • select를 통해 customer 테이블 확인하기
  • id와 이름만 확인하기
  • 이름과 id만 확인하기
  • '이뿌니'의 이름과 나이만 확인하기
  • vm 웨어에서 비주얼 스튜디오 설치
  • 설치가 끝나면 설치 창을 닫고 윈도우 재부팅 ~~ 하고 스냅샷.

  • 시작 / Visual Studio 2022 실행 / 이 항목 건너 띄기 / 시작 / 아래 창이 열리면 프로그램 종료

*ODBC 설치 / 기본값으로 설치

*제어판 / 시스템 및 보안 / 관리도구 / 아래 두가지 확인

  • ODBC Data Sources (32-bit)
  • ODBC 데이터 원본(64비트) 클릭 / 시스템 DSN 탭 선택 [ 추가] / MySQL ODBC Unicode Driver 선택 / 마침

  • 확인 / 창 닫기

*윈도우 / 제어판 / NET Framework 3.5 체크 ⇒ 다시 시작 /

0개의 댓글