기본 콘텐츠로 건너뛰기

2024의 게시물 표시

리눅스에서 MySQL 및 PostgreSQL 데이터베이스 설치 및 관리

리눅스에서 데이터베이스 설치 및 관리 (MySQL/PostgreSQL) 안녕하세요, mj입니다! 오늘은 리눅스에서 MySQL과 PostgreSQL 데이터베이스를 설치하고 관리하는 방법에 대해 알아보겠습니다. 데이터베이스는 애플리케이션의 핵심 요소로, 올바르게 설치하고 관리하는 것이 중요합니다. 1. MySQL 설치하기 MySQL은 가장 널리 사용되는 오픈 소스 데이터베이스 중 하나입니다. 다음은 Ubuntu에서 MySQL을 설치하는 방법입니다. 1.1. MySQL 설치 명령어 sudo apt update sudo apt install mysql-server 1.2. 설치 확인하기 설치가 완료되면 다음 명령어로 MySQL 서버가 정상적으로 실행되고 있는지 확인할 수 있습니다. sudo systemctl status mysql 1.3. MySQL 보안 설정 설치 후 보안 설정을 진행해야 합니다. 다음 명령어를 입력하여 보안 설정을 시작합니다. sudo mysql_secure_installation 1.4. 예시: 데이터베이스 생성 MySQL에 접속하여 새로운 데이터베이스를 생성해 보겠습니다. mysql -u root -p CREATE DATABASE sample_db; 출력 결과: Query OK, 1 row affected 2. PostgreSQL 설치하기 PostgreSQL은 강력한 기능을 제공하는 오픈 소스 데이터베이스입니다. 다음은 Ubuntu에서 PostgreSQL을 설치하는 방법입니다. 2.1. PostgreSQL 설치 명령어 sudo apt update sudo apt install postgresql postgresql-contrib 2.2. 설치 확인하기 PostgreSQL 서버가 정상적으로 실행되고 있는지 확인합니다. sudo systemctl status postgresql 2.3. PostgreSQL 사용자 및 데이터베이스 생성 PostgreSQL에 접속하여 새로운 사용자 및 데이터베이스를 생...

1. 리눅스의 buffer와 cache

안녕하세요, MJ 입니다. 리눅스 명령어 free 를 설명하다 보니 buffer 와 cache 에 대한 설명이 필요하게 되었는데, 내용이 짧지 않아 별도 포스트를 작성합니다. 우선 buffer 와 cache 는 I/O 성능 향상을 위한 메모리 영역입니다. buffer/cache 의 필요성   블록 디바이스(하드디스크 등 디스크에 해당하는 저장 장치)에 있는 데이터를 읽거나, 새로운 데이터를 저장하는데, 이런 저장 장치는 다른 장치들(메모리,CPU-cache)에 비해 속도가 느립니다. I/O 가 일어날 때 마다 디스크에 접근하여 파일을 읽고 쓴다면 너무 오래 걸려서 다른 프로세스의 처리에 지장이 생길 수 있습니다. 이러한 문제를 해결하기 위해 캐시가 필요하게 됩니다. 캐시란 커널은 디스크를 빠르게 사용하고자 메모리의 일부를 디스크의 캐시로 사용합니다. 캐시의 동작 한번 읽은 파일의 내용을 캐시 영역에 저장한 뒤, 다시 해당 파일을 읽으려 시도할 때, 메모리 영역에 아까 저장 해 둔 내용을 바로 처리할 수 있게 하는 것 인데, 바로 이 메모리를 buffer, cache 라고 합니다. buffer 와 cache의 차이 buffer 와 cache 의 차이에 대해 설명 하기 위해 부가적인 설명을 추가합니다. [unix 파일시스템의 구조] → 유닉스의 파일시스템은 디렉토리와 파일을 찾기 쉽도록 유지 및 관리하는 시스템으로 4가지의 블록으로 구성되어있습니다. Boot block → 부팅에 필요한 정보를 담고 있습니다. Super block → 파일시스템의 어디부터가 i-node 블록인지, Data 블록인지 등의 정보를 담고 있습니다. i-node List → 파일 하나에 i-node 하나가 할당이 되는데 i-node 는 파일의 메타 데이터를 갖고 있습니다. 이 i-node 묶음으로 파일의 퍼미션, 소유자, 크기, inode 번호 등의 정보를 갖고있습니다. Data block 데이터가 저장되는 영역으로 각 데이터 블록은 한번에...

7. free

안녕하세요, MJ 입니다. 리눅스 시스템의 메모리 정보를 확인하기위해 free 명령어를 사용 할 수 있습니다. free 명령어에 대해 알아보겠습니다.   [free 명령어 결과] [root@run-linux ~]# free                total        used        free      shared  buff/cache   available Mem:         3747544      352632     3416564        8748      200580     3394912 Swap:        2097148           0     2097148 ===> free 명령어 결과로 키로바이트 단위로 확인합니다.

6. df

안녕하세요, MJ 입니다. df 명령어에 대해 작성 해 봅니다. : 마운트 된 파일 시스템의 사용량을 확인하는 명령어입니다. df 명령어 결과를 확인 해 보겠습니다. * df 명령어 수행결과 [df 명령어 수행결과]  : 명령어 수행 결과에서 여러가지 정보가 확인됩니다. 필드명 설명 Filesystem 마운트 장치 1K-blocks 파티션의 크기 Used 사용된 용량 Available 사용할 수 있는 용량 Use% 사용된 용량의 백분율 Mounted on 마운트 된 디렉토리 옵션 없이 df 명령어 수행 결과에서 확인되는 필드의 설명 입니다.   외에도 -T 옵션을 추가하면 파일시스템 타입이 기록되는 Type 필드가 추가로 확인됩니다. 도움말 입니다. <[root@run-linux ~]# df --help Usage: df [OPTION]... [FILE]... Show information about the file system on which each FILE resides, or all file systems by default. Mandatory arguments to long options are mandatory for short options too.   -a, --all    ...

5. uname

안녕하세요, MJ 입니다. uname 명령어에 대한 내용을 작성 합니다. uname 명령어는 시스템의 정보 중 일부를 출력하는 명령어 입니다. 주 목적은 커널버전을 확인하는데에 사용되지만 그 외에 다른 정보도 함께 확인 할 수 있습니다.   우선 도움말을 확인 해 보겠습니다.   [root@run-linux ~]# uname --help Usage: uname [OPTION]... Print certain system information. With no OPTION, same as -s. -a, --all print all information, in the following order, except omit -p and -i if unknown: -s, --kernel-name print the kernel name -n, --nodename print the network node hostname -r, --kernel-release print the kernel release -v, --kernel-version print the kernel version -m, --machine print the machine hardware name -p, --processor print the processor type (non-portable) -i, --hardware-platform print the hardware platform (non-portable) -o, --operating-system print the operating system --help display this help and exit --version output version information and exit GNU coreuti...

4. cat

안녕하세요, MJ 입니다. cat 명령어는 일반 파일을 터미널상에 출력하는 명령어 입니다. cat 명령어에 대해 알아보겠습니다.   cat 명령어의 도움말을 먼저 확인하고 자주 사용되는 옵션과  cat 명령어 사용법을 설명하겠습니다. 도움말 펼치기/접기 옵션 설명 -A: -vET 옵션과 같습니다. -b: 빈줄에는 줄번호를 매기지 않습니다. -e: -vE 옵션과 같습니다. -E: 라인의 끝을 $ 문자로 표시합니다. -n: 줄번호를 표시합니다. -s: 반복적 인 빈 출력 라인을 억제합니다. -t: -vT 옵션과 같습니다. -T: 탭 문자를 ^T  로 대체하여 표시합니다. -v: 엔터와 탭 문자를 보이도록 하지 않고, 라인의 끝에 윈도우의 줄바꿈문자(캐리지리턴:CR)      를 보여줍니다. ☆ 캐리지 리턴 설명 키보드의 'Enter' 키에 그림을 보면, 아래로 가다가 왼쪽으로 꺾여있는 화살표가 그려져 있습니다. 엔터를 누르게 되면 아래로 가는 동작을 한 뒤에 , 왼쪽으로 가는 동작 을 한다는 뜻 입니다. 이는 윈도우에서의 동작으로 엔터 한번 입력에 두가지의 동작을 하게 됩니다. 하지만 리눅스에서는 엔터가 아래로 한번만 동작합니다. 리눅스 에서도 윈도우와 같이 아래로 간 다음 왼쪽으로 가면 문제가 없겠지만, 리눅스와 윈도우에서는 메모리에 데이터를 저장하는 방식이 달라, 윈도우와 리눅스는 그 순서가 바뀌게 됩니다. 리눅스에서는 왼쪽으로 먼저 간 다음, 아래로 가도록 동작하게 되어 내가 입력 한 모든 문자가 모두 지워지고 아래로 가게 됩니다. (리눅스-리틀엔디안,윈도우-빅엔디안 차이) 그래서 텍스트 파일을 vi 로 열어보거나 하면 잘 보이긴 하지만, cat 이나, 스크립트 작성에서 파일을 실행 할때에는 작성자가 원하는대로 동작하지 못하게 되어, 리눅스에서는 이 줄바꿈 문자에 대해 신경을 쓰지 않을 수 없습니다. 그리하여 리눅스에서는 줄바꿈 문자를 LF ( L ine F eed) 윈도우에서의 줄바꿈문자는 CRL...