개발바닥 아방수

Linux 설치와 MySQL 설치 본문

웹 개발/기타

Linux 설치와 MySQL 설치

앙큼아기 2022. 6. 29. 09:13

✅ Linux(리눅스)

Linux는 OpenSource(CopyLeft: 무료)이고,

운영체제를 얼마든지 줄일 수 있다(Kernel 가감) ⇒ GUI(Graphic User Interface) 없이 1.4MB도 가능하다.

IOT(Internet of Things), Embeded System(ex. 냉장고 안에 티비 들어가는 것), Cloud 등에서 사용된다.

 

 

✅ 거의 모든 하드웨어 장치(컴퓨터, 라우터, 운영체제, ...)를 부팅하면 초기에 검정색 화면이 뜨는데 이를 POST(Power On Self Test)라고 하는데 시스템의 오류 여부를 점검한다. (ex. POST 화면에 사인이 있냐)

 


✅ (Linux) CentOS 설치하기

▶ Create new virtual machine ▶ Custom type 선택

▶ Guest Operating System Installation은 ‘I will install the operating system later’

▶ Select a Guest Operating System은 Linux로 선택/ Version은 CentOS7 64-bit

▶ Name the Virtual Machine은 name에 CentOS7/ Location은 사용 드라이브 폴더에서 VMware 하단으로 새 폴더 생성(폴더명: CentOS7)하여 지정하기

▶ Processor Configuration은 Number of processors는 1/ Number of cores per processor는 2 지정

▶ Memory for the Virtual Machine은 2048MB(2GB)로 설정 (빠르게 할 거면 4기가)

▶ Network Type은 NAT으로 선택

▶ Select I/O Controller Types은 LSI Logic으로 선택

▶ Select a Disk Type은 SCSI 선택 (하드웨어 IDE는 4개의 장치, SCEI

▶ Select a Disk는 Create a new virtual disk 선택

▶ Specify Disk Capacity는 Maximum 60GB로 설정 (많이 안 쓰면 40기가)

▶ Ready to Create Virtual Machine에서 Customize Hardware 클릭

▶ Print와 Sound Card는 Remove한다

▶ Finish

▶ CentOs7의 Devices 중 CD/DVD(IDE) 선택

▶ Connection에서 Use ISO image file 선택

▶ Browse 눌러서 사용하는 드라이브에서 CentOS-7-x86_64-DVD-2009.iso 파일 삽입

▶ 왼쪽 아이콘과 동일한 Power on this virtual machine 누르기

▶ 부팅창 뜨면 Install CentOS7 방향키로 선택하여 엔터

▶ 진입시 DATE&TIME은 지도상 서울 클릭, 시간 확인하여 현재 시간으로 바꿔주기

▶ KEYBOARD LAYOUT은 English(US) 있는 것 확인 후 Done

▶ LANGUAGE SUPPORT는 설정된 영어 포함하여 하단의 한국어 체크하기

▶ INSTALLATION SOURCE는 오토로 두고 Done

▶ SOFTWARE SELECTION은 Base Envirionment는 GNOME Desktop 선택

▶ Add-Ons for Selected Environment는 GNOME Application/ Internet Application/ Legacy X Window System Compatibility(옛날 고전 화면과 호환해주는 것)/ Compatibility Libraries/ Development Tools/ System Administration Tools 선택(총 6개)

▶ INSTALLATION DESTINATION은 Device Seletion에서 Local Standard Disk 선택하기(외장하드에 추가적으로 할 경우 Add a disk 버튼 누르기

▶ KDUMP는 Enable kdump 체크 확인 후 Done

▶ NETWORK&HOST NAME은 오른쪽 상단의 off를 on으로 눌러서 바꿔주기/ Host name은 CentOS7으로 변경 후 Done

▶ SECURITY POLICY는 보안사항으로 회사의 경우 파일로 만들어두고 이를 업로드한다. 연습시에는 없으므로 그대로 비워두고 Done

▶ root 패스워드는 rootoor로 지정한다. (패스워드/ 컨펌패스워드)

▶ CREATE USER는 Full name/ User name/ Password/ Confirm password 모두 centos로 지정한다.

▶ 리부트 누르고, 창 뜨면 첫번째꺼 엔터

▶ LICENSE INFORMATION은 하단 I accept the license agreement 체크 후 Done

▶ 화면 뜨면 로그인 하기(centos)

▶ 새롭게 올라오는 창은 그냥 next

 

 

✅ 터미널

  • 바탕화면 빈칸, 오른쪽 마우스 Open Terminal 선택하여 진입
  • firefox http://www.naver.com 엔터 치면 인터넷 창 진입할 수 있다.
  • Ctrl + C 프로세스 종료

(centos 일반 사용자로 로그인되면)

 

 

MySQL 설치하기

  • su 해서 사용자를 전환한다고 하고, root 사용자의 패스워드 rootoor을 입력한다.
  • yum -y install mysql-server mysql를 입력한다. (mariadb로 해볼까?)
  • 엔터시 설치 완료.

MySQL 과 MariaDB는 똑같다고 보면 된다.

 

📌 데이터베이스 관리는

  • 데이터베이스 자체가 오래된 학문이라 내용도 깊고 전문적이어서 별도로 시간을 들여서 공부해두어야 할 것이다. 개인적으로 볼 때 시스템-네트워크-정보보안 IT 분야를 공부 한 뒤에 이 데이터베이스 관리자로 진출하는 것도 매우 좋다고 생각한다. 기업체에서 데이터베이스 관리 프로그램으로 Oracle의 Oracle과 MS의 SQL, IBM의 DB2 등을 많이 사용하고 있지만 최근에는 MySQL도 성능이 좋아져서 중소규모 조직의 데이터베이스를 관리하기에 손색이 없다. Apache 대신 Ngin-X를 웹 서버로 사용하는 것처럼 Oracle로 넘어가서 현재는 유료화 된 MySQL 대신 무료인 MariaDB도 점차 많이 사용되는 추세이다.
  • 여기서 데이터베이스 관리의 기본이 되는 SQL 명령어를 살펴보고, 백업/복원 등을 간략히 알아보는데 Join과 View, Trigger 등과 나아가서 PL/SQL 프로그래밍, 데이터베이스 튜닝과 객체 설계까지 관심을 가지고 앞으로 공부해두면 좋다.

Oracle이 별도의 데이터베이스로 관리한다.

  • service mysql start 입력
  • service mariadb start 입력
  • clear 입력시 화면이 깨끗하게 된다.
  • yum -y install http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 복사하여 마우스로 붙여넣는다. (copy-paste)
  • clear 입력
  • yum -y install mysql-community-server 입력
  • clear 입력
  • systemctl start mysql 했는데 에러 발생

에러해결

  • yum erase mysqld* (삭제하기)
  • yum erase mariadb* (삭제하기)
  • yum -y install mariadb-server (설치하기)
  • systemctl start mariadb
  • mysql_secure_installation
  • password는 rootoor로 설정한다.
  • 엔터
  • Set root password? [Y/n] y
  • Remove anonymous users? [Y/n] y
  • Disallow root login remotely? [Y/n] n
  • Remove test database and access to it? [Y/n] n
  • Reload privilege tables now? [Y/n] n
  • sytemctl enable mariadb
  • mariadb -u root -p (오류 발생시 mysql로 변경하여 들어가기)
  • mysql -u root -p
  • 패스워드 rootoor 입력

(소켓이 되지 않았다고 뜰 경우)

  • firewall-config 입력하기 (방화벽 관리)
  • Parmanent에서 public에서 mariadb 선택하기
  • sytemctl enable mariadb 입력
  • mysql -u root -p 입력
  • 패스워드 rootoor 입력

이렇게 하면 소켓 에러 해결할 수 있다.

 


알아두면 좋은 개념

💡 200대의 컴퓨터를 모두 윈도우11로 업데이트 하려면?

  • 컴퓨터 하나에 WDS(Windows Deployment*배포 Service) 만들고 다른 컴퓨터들과 연결한다. 작업그룹, host name은 달라야 한다. batch file(위에서부터 순차적으로 작업시키는 것)을 이용하여 순서적으로 넘버링을 주는 것이다. 이런 것을 answer file이라고 한다.

 

🔎 Proxy Server(OR cache*은닉 server)

  • 로컬 네트워크에서 모든 컴퓨터(호스트)가 웹으로 나갈 때 거쳐가는 서버이다.
  • 예를 들어 www.naver.com으로 들어간다면 www.naver.com은 naver.com이라는 도메인의 웹서버를 의미한다. 이 홈페이지는 www라는 서버에서 실행되고 있다. 우리가 필요한 것은 www.naver.com의 웹서버의 IP 주소가 필요하므로, www.naver.com의 IP 주소를 풀어주기 위해서(name resolution 이름풀이) DNS 서버를 통해서 IP 주소를 알아온다. (여기까지는 DNS 서버가 하는 일이다)
    • Domain Name System의 약자로 Name Resolution Service를 담당한다. Name Resolution Service를 우리말로 ‘이름풀이'라고 한다. 어떤 이름을 풀이하냐? 바로 Domain 도메인이다.
    ❇️ 도메인이란
    • 서브 도메인이나 호스트들과 관련하여 네임서버가 가지고 있는 이름을 의미한다. 좁은 의미로 네트워크상에서 호스트들의 이름이라고 할 수 있다.
    • DNS는 이 호스트들의 이름과 그 호스트에 매핑되는 IP 주소를 데이터베이스에 저장하고 있다가 사용자(혹은 응용프로그램)의 요청이 있을시 응답으로 IP 주소를 반환하게 된다. 반대로 IP 주소를 도메인 네임으로 반환하는 것도 된다.
    (참고출처) https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=wind1237&logNo=140151678373

 

❇️ DNS란

  • 어느 컴퓨터가 www.naver.com으로 들어가서 IP 주소를 알아왔다면 다른 컴퓨터가 www.naver.com으로 들어갈 때 다시 이름풀이 과정을 거치지 않고, 이 프록시 서버가 바로 www.naver.com의 IP 주소를 알려주면 빠르게 웹에 접속할 수 있다. 웹 해킹의 90%는 Proxy Server에서 나온다.

 

🔎 Legacy

  • IT 분야에서 오래된(old, out of date)이라는 용어가 Legacy(리거시)하다고 한다.

용어 하나하나를 꼼꼼하게 알아둘 것

 

 

🔎 Library

  • 대부분 프로그램에서는 library가 있는데 라이브러리는 여러 프로그램에서 공통적으로 자주 사용하는 모듈(module)을 부르는 말이다. 하나의 라이브러리 파일을 만들어두고 import와 같은 지시어로 불러들여서 사용한다.

 

🔎 Hardware Address

 

🔎 Software Address

  • IP 주소를 일컫는데 32비트다. 192.168.100.200(IP_주소) / 255.255.255.0(네트마스크)식으로 사용한다.
    • IPv4의 IP 주소는 32비트*(bit), 즉 0 또는 1로 만으로 표기하는 이진(Binary)수 32자리로 구성되어 있다.
  • (참고출처) https://better-together.tistory.com/118 [변계사 Sam의 테크 스타트업!]