[DB] 윈도우에 리눅스 설치해서 DB 서버로 활용하기
아마 이번 포스팅은 많은 중소기업 관계자 분들이 관심을 가질만한 주제 일듯 합니다.
-- 개요.
1. 엑셀 시트에서 작업하다 노가다에 지침
2. 자동화를 위한 VBA 학습 시작
3. 실수로 워크 시트 날려 먹고 맨붕에 빠짐
4. 엑세서 DB활용 시작
5. 외부에서 접속의 필요성 대두 -> 웹 DB 서버 임대해서 사용
6. 서버 유지 시간대에 DB 접속은 가능하지만
필드 수정을 위한 phpmyadmin에 접속 불가 -> 이로 인한 업무 차질 발생
7. 나만의 서버가 필요하다는 생각 이 듦
8. 외부 접속도 가능해야 한다는 전제.
9. 윈도우 WSL 시스템을 활용한 리눅스 우분투를 설치하기로 결정
10. 가상 머신 등등 다양한 설치 옵션이 있지만
여러가지 사항을 고려해서
윈도우 WSL 시스템을 활용한 리눅스 우분투를 설치하기로 결정
11. 리눅스 시스템과 명령어 등 1주일 정도 학습 후 설치 시도
12. 22.04 버전 실패
13. 18.04 버전으로 다시 시도후 성공
14. 세팅후 임대 서버는 자동 백업용으로 설정하고,
현재 서버에 직원 10여명이 업무에 활용하고 있음.
-- 장점
1. 같은 공유기를 사용하는 사무실 내에서는 무한 접속 가능
192.168.1.2 ~ 192.168.255.255 까지 부여가 가능하니 접속 가능 컴터 대수는 이론상 거의 제한이 없어 보임
2. 1000개 정도의 데이터를 불러 오는데 0.0003초 걸림. 비교 불가의 빠른 속도
3. 원할 때 유지 보수가 가능함. 전기세 이외의 추가 비용이 들어가는 점이 없음
4. 웹페이지를 무한 생성해서 외부에서 사용 가능
5. FTP 서버를 만들어서 파일 공유 저장 공간으로도 활용이 가능
-- 단점
1. 관리자가 서버와 MySQL 같은 DB를 관리할 줄 알아야 함
2. 정전시 대책 없음
-- 18.04 우분투 설치 과정
아래는 제가 2개의 서버를 설치하면서 했던 과정들인데...
여러번 설치 실패 이후 2번 정도 설치 성공하니 감이 좀 옵니다.
이해가 잘 안되시면, 구글링 해서 참조 하면서 해 보셔요.
저도 우분투 왕 초보입니다.
우분투 버전 확인
lsb_release -a
0. sudo apt update && sudo apt upgrade
1. sudo apt install tasksel
2. sudo tasksel install lamp-server
3. sudo bash -c "echo -e '<?php\nphpinfo();\n?>' > /var/www/html/phpinfo.php"
4. vi /etc/apache2/apache2.conf
AcceptFilter http none
AcceptFilter https none
5. sudo service apache2 start
6. sudo systemctl enable mysql.service
7. mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호';
create user 유정ID identified by '비밀번호';
8. sudo add-apt-repository universe
9. sudo apt-get update
10. sudo apt-get install phpmyadmin
11. sudo apt-get install openssh-server
12. sudo apt-get install openssh-client
13. systemctl enable apache2
14. sudo ufw enable
sudo ufw allow 3306/tcp
sudo ufw allow 80/tcp
sudo ufw allow 8080/tcp
sudo ufw allow 4422/tcp
15. sudo ssh-keygen
16. sudo nano /usr/share/phpmyadmin/libraries/plugin_interface.lib.php
Press CTRL + W and search for if (! is_null($options) && count($options) > 0) {
If not found, try search for if ($options != null && count($options) > 0)
Replace with if (! is_null($options) && count((array)$options) > 0) {
Save file and exit. (Press CTRL + X, press Y and then press ENTER)
17. sudo service apache2 stop
18. vi /etc/php/7.2/apache2/php.ini
upload_max_filesize, memory_limit and post_max_size 를 더 증가시켜야한다고 한다.
19. sudo service apache2 restart
-- DB 백업
mysqldump 를 이용해서 파일로 저장이 가능합니다.
저는 vb.net으로 자동 저장하는 프로그램을 만들어 놓았습니다.
정해진 시간때마다 usb에 파일을 저장하고 미국 DB 서버에 갱신하도록 해서
혹시 있을지 모르는 사고에 대비해, 개인서버/미국서버를 동시에 사용하도록 해 놓았습니다.
-- 결론
대용량 DB를 다루어야 하는 상황이라면 mysql, MS-SQL, SQLite, MongoDb, 등등 원하는 DB 서버를 선택해서 손쉽게 쓸수 있다는 점
10명 정도의 직원이 동시 작업하는데 부하가 전혀 걸리지 않는 다는 점
참고로 한달에 10만개 정도 레코드가 생성이 됩니다.
필요한 결과물을 엑셀 시트에 바로바로 뿌려대니 지금 의뢰하신 클라이언트 분은 대만족해서 흥분상태이심
프로그램 전공자가 아닌 아마추어 개발자가 여기까지 오는데 참 많은 시간이 걸린 듯 하네요.
아래 사진은 자동 백없 시스템입니다. timer를 이용해서 구현했습니다.
필요한 누군가에 도움이 되었으면 합니다.
번호 | 제목 | 작성자 | 작성일 | 추천 | 조회 |
[📚진짜쓰는 실무엑셀] IT/오피스 '1위' 베스트셀러! 엑셀 공부, 이 교재로 마스터하세요! (313)
![]() ![]() |
![]() ![]() |
2022.02.03 | 572 | 599393 | |
78094 |
[M365] 수식으로 고급필터 구현하기
![]() ![]() |
![]() |
2025.04.11 | 1 | 66 |
78009 |
LOOKUP을 XLOOKUP 처럼 사용 (2019 이하 필독)
![]() ![]() |
![]() |
2025.04.06 | - | 89 |
78002 |
[VBA] 괄호가 대응되게 문자열 잘라주는 함수
![]() |
![]() |
2025.04.05 | - | 39 |
77792 |
엑셀 그림 삽입이 안될 때.. (그림 삽입 비활성화 해결)
(1)
![]() ![]() |
![]() ![]() |
2025.03.24 | 2 | 333 |
77667 |
언피벗 툴 업그레이드 버전입니다.
![]() ![]() |
![]() |
2025.03.17 | - | 92 |
77635 |
머리글로 데이터 합치기 툴
![]() ![]() |
![]() |
2025.03.15 | 1 | 105 |
77598 |
MERGE(자석처럼 자료 붙이기) 툴입니다.
![]() ![]() |
![]() |
2025.03.13 | - | 142 |
77577 |
[VBA] 시트명들 가져오는 함수
![]() ![]() |
![]() |
2025.03.12 | 1 | 101 |
77544 |
LOOKUP 함수 사용법(2019 이하 필독)
![]() ![]() |
![]() |
2025.03.11 | - | 174 |
77543 |
[함수TIP] Date함수로 Eomonth함수 대체하기
(3)
![]() |
![]() |
2025.03.11 | 3 | 62 |
77481 |
쉽게 쓸 수 있는 언피벗 툴
![]() ![]() |
![]() |
2025.03.08 | 2 | 105 |
77468 |
월간단위 월주차 함수
![]() ![]() ![]() |
![]() ![]() |
2025.03.07 | - | 124 |
77385 |
TEXTJOIN 을 SUMPRODUCT 공식으로 2차원 데이터 다루기
![]() ![]() |
![]() |
2025.03.04 | - | 87 |
77355 |
TEXTJOIN 으로 2차원 데이터 다루기
![]() ![]() |
![]() |
2025.03.02 | 1 | 89 |
77353 |
& 기호로 SUMPRODUCT 2차원 데이터 다루기
![]() ![]() |
![]() |
2025.03.02 | - | 66 |
77351 |
단어 포함 여부 검색, 원하는 단어로 출력
![]() ![]() |
![]() |
2025.03.02 | 1 | 96 |
77238 |
휴일이면 1 아니면 0이 나오는 함수
![]() ![]() |
![]() |
2025.02.24 | - | 134 |
77072 |
SUMPRODUCT로 VLOOKUP 대체 (2차원 룩업 가능)
![]() ![]() |
![]() |
2025.02.16 | - | 242 |
76915 |
SUMPRODUCT로 2차원 데이터 다루기[응용]
![]() ![]() |
![]() |
2025.02.09 | 1 | 214 |
76913 |
SUMPRODUCT로 2차원 데이터 sumifs 처럼 다루기
![]() ![]() |
![]() |
2025.02.09 | - | 170 |
@dra**** 님 부우럽습니다!!
@Gisele 님 구현해보세요. 구글링 해보면 생각보다 설명 잘 나와 있습니다. 생각보다 어렵지 않습니다.
@dra**** 님 멋집니다....
@dra**** 님 많이 배워갑니다..