no image
MySQL 테스트 데이터 생성하기(Faker) - 아무데이터 넣기
안녕하세요. JohnComputer입니다. 이따금씩 개발 테스트를 진행하다 보면 임의적인 데이터를 넣고 테스트를 진행해야 할때가 많은데요. 그렇다고 또 데이터를 만들기 위해서 까다로운 RDB의 요구 조건을 다 들어주면서 넣다 보면 참 힘듭니다. 또 언제 전부 INSERT VALUES... 하고 있기도 힘들고요. 그렇게 해서 찾게 된 이번 오픈소스! FAKER 사용 방법을 같이 정리해서 올려드리려고 합니다. 1. 기본 데이터베이스 만들기 CREATE DATABASE test CREATE TABLE Persons ( PersonID int, LastName varchar(255), FirstName varchar(255), City varchar(255), RegistDate DateTime ); - 처음 ..
2023.03.04
no image
MySQL 8.0 Community server 설치 ( 윈도우, 64 bit )
안녕하세요 JohnCom입니다. MySQL을 예전부터 사용하다 보니 5.7 버전, 8.0 , Maria DB 까지 모두 로컬에서 혼동되어 사용중입니다. 그래서 이번에 새롭게 설치하면서 블로그에 글을 한번 남겨봐요 중간 중간 생략된 부분은 그냥 NEXT로 넘어가 주시면 되고 혹시 모르겠는 내용이나 오류 발생시 댓글 남겨주세요. 재설치 비밀번호 오류나 PATH설정은 중간에 작성되어 있습니다. 1. 가장 먼저 MySQL 사이트 접속 부터 해주시고요. https://www.mysql.com/downloads/ MySQL :: MySQL Downloads MySQL Cluster CGE MySQL Cluster is a real-time open source transactional database designe..
2022.11.25
no image
ERROR 1872 (HY000) : slave failed to initialize relay log info structure from the repository 에러 해결방법
마스터 슬레이브 구성 중 위와 같은 오류가 발생하였고 해당 오류의 경우 slave failed to initialize relay log info structure from the repository 슬레이브 실행 중 릴레이 로그 정보를 초기화 하지 못 했을때 발생하는 오류이다. 기존에 만들었던 Slave가 정상 종료가 안되었거나 Config나 Log에서 꼬일 수 도 있고 여러 이유가 있을 수 있다. 특히, Container 환경에서 처럼 계속 썻다 지웠다 실험하는 경우 해당 오류를 만날 수 있고 이런경우 해결 방법은 매우 간단하다. mysql > STOP SLAVE; mysql > RESET SLAVE; mysql > START SLAVE; 끄고 -> 초기화 하고 -> 다시 실행해주면 된다.
2022.08.25
no image
Ignoring query to other database... 오류 해결
사실 오류 해결이라 하기에도 애매하지만 이글을 검색 해본 분들은 필자 처럼 오타에 주의 해야한다 ㅠㅠ 갑자기 이런 메세지를 띄우며 쿼리가 안된다.. 아! root ??????? 오타입니다. -uroot 로 바꿔주세요
2022.08.25
no image
Xshell 7 SSH 세션 접속 하기 - AWS Linux 예시
AWS가 보편화 되면서 많은 개발자들이 로컬 PC에 설치하여 테스트 하는 것이 아닌 클라우드에서 작업하는 경우가 많아 졌다. 그래서 아주 간단하지만 세션에 접속하는 방법과 프로그램들을 소개하려 한다. 그 중에서도 이번엔 Xshell 7을 소개하려고 한다. 넷사랑컴퓨터에서 개발하여 배포하고 있는 프로그램으로 가정이나 학교에서 사용할 경우 무료 소프트웨어이다. 기본적으로 터미널프로그램으로는 제일 처음 사용하는것이 Putty일텐데 좀 더 많은 기능을 사용하고 현업에서 사용하는 프로그램을 써보는 것도 아주 좋은 경험인 것 같다. 아래 공식사이트에서 다운로드 하여 사용이 가능하다. Xshell 다운로드 - NetSarang Website Xshell 다운로드 - NetSarang Website 다운로드 구매하기 ..
2022.08.19
no image
sysbench(부하테스트 툴)로 mysql 부하테스트
공식Git https://github.com/akopytov/sysbench GitHub - akopytov/sysbench: Scriptable database and system performance benchmark Scriptable database and system performance benchmark - GitHub - akopytov/sysbench: Scriptable database and system performance benchmark github.com - AWS Linux AMI 기준 작성 되어 명령어만 조금 수정하시면 사용 가능합니다. (CentOS) 1. 설치 - 리눅스에 설치 할 경우 설치 명령어만 순서대로 입력 - 아래 필요한 사항은 추가 설치 필요 설치 curl -s..
2022.08.11
Pymysql (Python2 -> Python3) 오류 발생
Pymysql을 이용해서 작업을 해야하는데 기존에 인터넷에 뿌려져 있는 Python2 버전으로 만약에 실행한 경우 예상치도 못한 오류가 발생할 수 있다. 예를들어 아래와 같은 positional argument 오류가 발생할 수 있습니다. 1 takes 1 positional argument but 5 positional arguments (and 1 keyword-only argument) were given cs 이런 경우 Python3와 다르기 때문에 아래와 같이 수정해주시면 됩니다. 1 2 3 4 # import 수정 필요 import pymysql.curosors # connection 속성값을 모두 명시해야함. dbconnect = pymysql.connect( host = 호스트값, user..
2022.08.03
Docker-compose를 이용한 Grafana 만들기 (influxdb, telegraf, grafana)
Docker Compose Setting 부터 진행하며 기본적인 Docker는 설치가 되어 있어야 합니다. AWS Linux기준(CentOS 비슷)으로 진행합니다. ** 기본 root에 mkdir을 이용한 data 폴더를 만든 후 그 위에 만들었습니다. 경로가 헷갈리시면 root 폴더에서 기초 디렉토리 생성 후 따라하시면 됩니다. Grafana 3000 Port Influxdb 8086 Port 1. docker-compose 설치 , 심볼 설정 1 2 3 4 sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-`uname -s`-`uname -m` | sudo tee /usr/local/bin/doc..
2022.08.03
반응형

안녕하세요.

JohnComputer입니다.

 

이따금씩 개발 테스트를 진행하다 보면 임의적인 데이터를 넣고 테스트를 진행해야 할때가 많은데요.

그렇다고 또 데이터를 만들기 위해서 까다로운 RDB의 요구 조건을 다 들어주면서 넣다 보면 참 힘듭니다.

또 언제 전부 INSERT VALUES... 하고 있기도 힘들고요.

그렇게 해서 찾게 된 이번 오픈소스! FAKER 사용 방법을 같이 정리해서 올려드리려고 합니다.

 

1. 기본 데이터베이스 만들기

CREATE DATABASE test

CREATE TABLE Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
City varchar(255),
RegistDate DateTime
);

- 처음 부터 하시는 분들도 계실 수 있으니 간단한 예제도 넣어서 같이 설명 드리겠습니다.

 

기본 데이터베이스를 만들게 되면 위 이미지와 같이 Table이 생성됩니다.

 

2. Python

import pymysql.cursors
from faker import Faker

MYSQL_ENDPOINT = "127.0.0.1"
MYSQL_PORT = 3306
DB_ID = "ID"
DB_PW = "PASSWD"


# DB rows LIST 생성
sql_rows = []

mysqldb = pymysql.connect( host=MYSQL_ENDPOINT, user=DB_ID, password=DB_PW, database="test", port=MYSQL_PORT, charset='utf8mb4')
_Connectiondb = mysqldb.cursor()

# Faker.seed(Number) 데이터 넘버 FIX
fake = Faker()



for _ in range(2000):
    sql_row = '({},'"'{}'"','"'{}'"','"'{}'"','"'{}'"')'.format(fake.random_number(), fake.last_name(), fake.first_name(), fake.city(), fake.date_time())
    sql_rows.append(sql_row)
sql = "INSERT INTO Persons(PersonId, LastName, Firstname, City, RegistDate) VALUES " + ','.join(sql_rows)
#할당 해제
sql_rows = []
_Connectiondb.execute(sql)
mysqldb.commit()

 

위 코드는 테스트 데이터를 보여드리기 위한 Python입니다.'

아래 주의 사항과 함께 사용방법 적어둘 테니 잘 이용해보시기 바랍니다.

1. 기본설치
 
import pymysql.cursors
from faker import Faker

기본 세팅으로 pymysql, Faker를 설치해주셔야합니다.

pip install pymysql, Faker 등을 진행해주세요.

 

2. 사용형식

문자 데이터의 경우 '"'{}'"'
날짜 데이터의 경우 '"'{}'"'
숫자 데이터의 경우 {}

 

3. 사용되는 함수

fake.random_number() : 랜덤넘버
fake.name() : 이름 출력 / fake.first_name(), fake.last_name()
fake.email() : 이메일
fake.city() : 도시
fake.date_time() : Datetime
fake.address() : 주소 (4759 William Haven Apt. 194 West Corey, CA 90152)
fake.country() : 국가 (Nigeria)
fake.random_digit() : 0~9 랜덤 Number
fake.random_number() : 자릿수와 상관 없는 Number

기타 함수

https://faker.readthedocs.io/en/master/providers/baseprovider.html

 

faker.providers — Faker 17.6.0 documentation

© Copyright 2014, Daniele Faraglia Revision 5de6bf3f.

faker.readthedocs.io

 

반응형
반응형

안녕하세요 JohnCom입니다.

MySQL을 예전부터 사용하다 보니

5.7 버전, 8.0 , Maria DB 까지 모두 로컬에서 혼동되어 사용중입니다.

그래서 이번에 새롭게 설치하면서 블로그에 글을 한번 남겨봐요

 

중간 중간 생략된 부분은 그냥 NEXT로 넘어가 주시면 되고

혹시 모르겠는 내용이나 오류 발생시 댓글 남겨주세요.

재설치 비밀번호 오류나 PATH설정은 중간에 작성되어 있습니다.

 

1. 가장 먼저 MySQL 사이트 접속 부터 해주시고요.

https://www.mysql.com/downloads/

 

MySQL :: MySQL Downloads

MySQL Cluster CGE MySQL Cluster is a real-time open source transactional database designed for fast, always-on access to data under high throughput conditions. MySQL Cluster MySQL Cluster Manager Plus, everything in MySQL Enterprise Edition Learn More » C

www.mysql.com

 

2.사이트 화면 하단의 MySQL Community Server 설치 화면으로 이동해주세요.

 

3. MySQL community Server설치

- MySQL community Server를 설치하려면 중간에 있는 Community Server를 선택해서 설치를 진행해도 되지만

 이런경우 Path 설정과 각종 Utility는 개인이 따로 설치를 진행해주셔야 하기 때문에 그냥 바로 MSI파일 내려받기 위해서

 MySQL Installer For Windows로 실행할게요. ( 64 bit 설치도 동일합니다!!! )

 

4. 저흰 No Thanks 합니다 ㅎㅎ

5. 설치 진행

우리 Oracle 형님께서 아주 간단한 질문을 주십니다

리눅스로 따지면 yum Update 같은 거라고 생각하시면 되는데 Yes 해줍니다.

 

6. 선택

아마 제 블로그를 보는 분들이 여러 부류가 계실건데 전문가 분들은 여기 까지 보시고

알아서 세팅을 진행하실 수 있으니

학생, 개발자 관점에서 보면 Developer를 선택하시면 될 것 같습니다.

server, shell, workbench 등등 여러 제품을 포함하고 있습니다.

 

7. Path 설정

따로 설정 안해주셔도 됩니다 ㅎㅎ

 

8. Check List

- 저는 이렇게 설치에 Python이 필요하다는 화면이 뜨고 Manual로 설치해야 한다고 하네요.

Devloper Package에서 필요한것 같기도 하고 잘 모르겠지만 아래 URL들어가서 설치를 진행합니다

이런 화면 이 뜬다면 제 블로그 다른 글

https://johncom.tistory.com/49

 

python3 설치 부터 경로 설정까지 (pip, python, 환경 변수, path)

안녕하세요. JohnCom 입니다. 오늘은 제 로컬 PC에 Python3 를 설치를 진행하는데 설치하는 방법을 정리해두면 처음 시작하는 분들에게 도움이 될 것 같아서 이렇게 따로 정리해둘려고 글을 씁니다. "

johncom.tistory.com

참고해서 설치해주시면 됩니다.

 

간단히 설치 후 Check 눌러주시면 저렇게 초록색 체크박스가 뜹니다.

 

9. Package 설치

- 아래 화면처럼 Package 다운로드 받아야 하는 목록이 뜨게 되고 설치 진행하면 됩니다.

- 필요 없는것도 많이 설치가 되네요.. 그냥 메뉴얼로 할걸 ㅋㅋㅋㅋ Connecter 들을 주르륵 받습니다.

전 파이썬만 있으면 되는뎁..

 

10. Port 설정

- 다른건 모두 넥스트로 넘겨 주시고 이제 가장 중요한 Network 설정입니다.

기본 설정 3306 사용하시면 되고 기존 MySQL 이나 MariaDB가 있다면 다른 Port 이용하셔야 하는데

4060, 3307 마음에 드는 포트 사용하시고 꼭! 기억해두세요.

 

11. Password 설정

- 비밀번호 규칙 설정인데

5.7 이전의 버전과 이후의 버전이 있는데

전 Recommended 버전을 사용하겠습니다.

그냥 1234 같은 비밀번호를 하고 싶은 분들은 아래 선택하시면 됩니다.

 

*혹시 저처럼 재설치 진행 중이시라면 이런 화면을 마주하게 될 수 있고 그런경우

C:/ProgramData 폴더에 MYSQL 을 지워 주셔야 합니다.

 

모두 NEXT NEXT 눌러 주시면 됩니다.

 

12. 설치 확인

- 시작창 -> services.msc 로 mysql80이 잘 실행되는지 확인.

 

 

13. PATH 등록

- 만약 CMD 창을 이용하여 MYSQL 이용을 할 경우 PATH설정을 진행해야 합니다.

C:\Program Files\MySQL\MySQL Server 8.0\bin 와 같은 bin 폴더 등록해주셔야 하고 

 

- Path에서 편집 눌러주시고

두군데 모두 이렇게 PATH 넣어주시면 설치 완료입니다.

반응형
반응형

마스터 슬레이브 구성 중 위와 같은 오류가 발생하였고 해당 오류의 경우 

slave failed to initialize relay log info structure from the repository

슬레이브 실행 중 릴레이 로그 정보를 초기화 하지 못 했을때 발생하는 오류이다.

 

기존에 만들었던 Slave가 정상 종료가 안되었거나

Config나 Log에서 꼬일 수 도 있고 여러 이유가 있을 수 있다.

 

특히, Container 환경에서 처럼 계속 썻다 지웠다 실험하는 경우 해당 오류를 만날 수 있고 이런경우 해결 방법은 매우 간단하다.

 

mysql > STOP SLAVE;

mysql > RESET SLAVE;

mysql > START SLAVE;

 

끄고 -> 초기화 하고 -> 다시 실행해주면 된다.

반응형
반응형

사실 오류 해결이라 하기에도 애매하지만 이글을 검색 해본 분들은

필자 처럼 오타에 주의 해야한다 ㅠㅠ

 

갑자기 이런 메세지를 띄우며 쿼리가 안된다..

아! root ???????

오타입니다.

 

-uroot 로 바꿔주세요

반응형
반응형

AWS가 보편화 되면서 많은 개발자들이 로컬 PC에 설치하여 테스트 하는 것이 아닌

클라우드에서 작업하는 경우가 많아 졌다.

그래서 아주 간단하지만 세션에 접속하는 방법과 프로그램들을 소개하려 한다.

그 중에서도 이번엔 Xshell 7을 소개하려고 한다.

 

넷사랑컴퓨터에서 개발하여 배포하고 있는 프로그램으로

가정이나 학교에서 사용할 경우 무료 소프트웨어이다.

기본적으로 터미널프로그램으로는 제일 처음 사용하는것이 Putty일텐데

좀 더 많은 기능을 사용하고 현업에서 사용하는 프로그램을 써보는 것도 아주 좋은 경험인 것 같다.

 

아래 공식사이트에서 다운로드 하여 사용이 가능하다.

Xshell 다운로드 - NetSarang Website

 

Xshell 다운로드 - NetSarang Website

다운로드 구매하기 개요 라이선스 종류를 선택하세요 기재하신 정보 중 이름, 회사(기관), 이메일 정보는 제품 출시나, 업데이트 정보 등을 신속하게 제공하기 위해 사용합니다. 이 정보는 서비

www.netsarang.com

 

1. 처음으로 프로그램을 시작하면 위와 같은 화면이 생성된다.

 

 

2. 1번은 화면에서 좌측상단 새로만들기 클릭하면 아래와 같은 화면이 나오고 접속하려는 곳의

IP를 입력하면 된다. Putty와 달리 먼저 IP만 입력해보자.(ec2-user은 뺀다)

ex)  192.192.192.1       

 

3. 완료 버튼을 클릭하면 위와 같은 세션이 만들어져 있고 더블 클릭을 눌러 실행한다.

 

4. 위 화면으로 넘어가게 되고 이곳에 ec2-user와 같은 유저명을 적어주고 사용자 이름 기억 체크박스를 선택해 준다.

 

5. 1회용 로그인의 경우 파일을 눌러 한 번 공개키를 연결해주어도 된다.

하지만 여러번 사용하게 되면 등록을 해주는 것이 편리하기 때문에 "사용자 키"를 눌러준다.

 

 

6. 가져오기를 눌러서 경로에 있는 공개키를 가져온다.

이후 위와 같이 등록이 되면 더블 클릭을 하여 키 지정을 해주고

5번 이미지아래에 있는 암호 저장을 클릭한 후 확인을 눌러준다.

반응형
반응형

공식Git https://github.com/akopytov/sysbench

 

GitHub - akopytov/sysbench: Scriptable database and system performance benchmark

Scriptable database and system performance benchmark - GitHub - akopytov/sysbench: Scriptable database and system performance benchmark

github.com

- AWS Linux AMI 기준 작성 되어 명령어만 조금 수정하시면 사용 가능합니다. (CentOS)

 

1. 설치

 - 리눅스에 설치 할 경우 설치 명령어만 순서대로 입력

 - 아래 필요한 사항은 추가 설치 필요

설치 curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
sudo yum -y install sysbench
요구사항 설치
(Maria / 필요한 경우)
yum -y install mariadb-devel openssl-devel
시스벤치 깃 설치 (필요한 경우) git clone https://github.com/akopytov/sysbench.git

 

2. MySQL 테스트 환경 설정

 - 명령문을 통한 자동 BenchMark할 데이터 베이스 생성

 - 명령문을 보낼 유저 생성

mysql> create database DB명;
mysql> create user '사용ID'@'%' identified by '비밀번호';
mysql> grant all privileges on DB명.* to 사용ID;

 

3. 명령어 실행 기본

 - 한글로 적힌 부분 수정해서 실행

 - /usr/share 로 시작하는 부분은 OLTP benchmark 항목에 따라 변경 가능

 - ** Random의 경우 cleanup이 실행되지 않습니다.!! 직접 DB 접근해서 지워야 합니다.

준비
sysbench --mysql-host=IP주소 --mysql-port=포트번호 --mysql-user=사용ID --mysql-password=비밀번호 --mysql-db=DB명 --tables=테이블수 --table-size=행수 --threads=스레드수 /usr/share/sysbench/oltp_read_only.lua prepare
실행
sysbench --mysql-host=IP주소 --mysql-port=포트번호 --mysql-user=사용ID--mysql-password=비밀번호 --mysql-db=DB명 --tables=테이블수 --table-size=행수 --threads=스레드수 /usr/share/sysbench/oltp_read_only.lua run
제거
sysbench --mysql-host=IP주소 --mysql-port=포트번호 --mysql-user=사용ID--mysql-password=비밀번호 --mysql-db=DB명 --tables=테이블수 --table-size=행수 --threads=스레드수 /usr/share/sysbench/oltp_read_only.lua cleanup

## 명령어 사용 형태

sysbench [options]... [testname] [command]

 

4. sysbench 테스트 케이스

  • Sysbench 1.0.9 버전의 OLTP benchmark 항목
    • select_random_ranges.lua
    • select_random_points.lua
    • oltp_write_only.lua
    • oltp_update_non_index.lua
    • oltp_update_index.lua
    • oltp_read_write.lua
    • oltp_read_only.lua
    • oltp_point_select.lua
    • oltp_insert.lua/oltp_delete.lua
select_random_ranges.lua  랜덤한 범위의 값 조회
select_random_points.lua  랜덤한 포인트(위치)값 조회
oltp_update_index.lua   인덱스 수정
oltp_read_write.lua    읽기 수정 
oltp_point_select.lua  1개의 데이터만 조회
oltp_insert.lua  데이터 삽입
oltp_delete.lua  데이터 삭제

 

5. 실행 결과

 

6. 기타 옵션 값

 ## 명령줄 옵션

 

선택 묘사 기본값
--events 총 요청 수에 대한 제한입니다. 0(기본값)은 제한 없음을 의미합니다. 0
--warmup-time 통계가 활성화된 상태에서 실제 벤치마크가 실행되기 전에 통계를 사용하지 않도록 설정한 상태에서 이 몇 초 동안 이벤트를 실행합니다. 이는 벤치마크 실행의 초기 기간을 통계에서 제외하려는 경우에 유용합니다. 많은 벤치 마크에서 CPU / 데이터베이스 / 페이지 및 기타 캐시를 워밍업하는 데 약간의 시간이 필요하기 때문에 초기 기간은 대표적이지 않습니다. 0
--rate 평균 거래 속도. 이 숫자는 모든 스레드에서 평균적으로 실행해야 하는 초당 이벤트(트랜잭션) 수를 지정합니다. 0(기본값)은 무제한 속도, 즉 이벤트가 가능한 한 빨리 실행됨을 의미합니다. 0
--report-interval 지정된 간격(초)으로 중간 통계를 주기적으로 보고합니다. 이 옵션으로 생성된 통계는 누적이 아닌 간격 단위입니다. 0은 중간 보고서를 사용하지 않도록 설정합니다. 0
--threads 만들 작업자 스레드의 총 수 1
--verbosity 자세한 정보 표시 수준(0 - 중요 메시지만, 5 - 디버그) 4
--time 총 실행 시간(초)에 대한 제한입니다. 0은 제한 없음을 의미합니다. 10
--thread-init-timeout 작업자 스레드가 초기화될 때까지 대기 시간(초) 30
--thread-stack-size 각 스레드에 대한 스택 크기 32케이
--percentile sysbench는 처리된 모든 요청에 대한 실행 시간을 측정하여 최소, 평균 및 최대 실행 시간과 같은 통계 정보를 표시합니다. 대부분의 벤치 마크의 경우 일부 백분위수와 일치하는 요청 실행 시간 값을 아는 것도 유용합니다 (예 : 95 % 백분위수는 가장 긴 요청의 5 %를 삭제하고 나머지 요청에서 최대 값을 선택해야한다는 것을 의미합니다). 이 옵션을 사용하면 계산할 쿼리 실행 시간의 백분위수 순위를 지정할 수 있습니다. 95
--debug 더 많은 디버그 정보 인쇄 꺼짐
--validate 가능한 경우 테스트 결과의 유효성 검사 수행 꺼짐
--help 일반 구문 또는 지정된 테스트에 대한 도움말을 인쇄하고 종료합니다. 꺼짐
--luajit-cmd LuaJIT 제어 명령을 수행하십시오. 이 옵션은 . 자세한 내용은 LuaJIT 문서를 참조하십시오.luajit -j  

 

## 난수 옵션

 

선택 묘사 기본값
--rand-zipfian-exp Zipfian 분포에 대한 모양 매개 변수(세타) 0.8
--rand-type 난수 분포 {uniform, gaussian, special, pareto, zipfian}은 기본적으로 사용합니다. 벤치마크 스크립트는 기본 배포를 사용하거나 명시적으로 지정(예: 기본값을 재정의)하도록 선택할 수 있습니다. 특별한
--rand-spec-res 특수 분포에 사용할 '특별한'값의 백분율 75
--rand-spec-pct 특별한'값이 특수 분포에 속하는 전체 범위의 백분율 1
--rand-spec-iter 특수 분포에 대한 반복 횟수 12
--rand-seed 난수 생성기에 대한 시드. 0인 경우 현재 시간이 RNG 시드로 사용됩니다. 0
--rand-pareto-h 파레토 분포에 대한 셰이프 매개변수 0.2
반응형
반응형

Pymysql을 이용해서 작업을 해야하는데

기존에 인터넷에 뿌려져 있는 Python2 버전으로 만약에 실행한 경우 예상치도 못한 오류가 발생할 수 있다.

 

예를들어 아래와 같은 positional argument 오류가 발생할 수 있습니다.

1
takes 1 positional argument but 5 positional arguments (and 1 keyword-only argument) were given
cs

이런 경우

Python3와 다르기 때문에 아래와 같이 수정해주시면 됩니다.

 

 

1
2
3
4
# import 수정 필요
import pymysql.curosors
# connection 속성값을 모두 명시해야함.
dbconnect = pymysql.connect( host =  호스트값, user = DBID, password = 패스워드, database = "mysql", charset = "utf8mb4" )
cs

 

반응형
반응형

Docker Compose Setting 부터 진행하며

기본적인 Docker는 설치가 되어 있어야 합니다.

AWS Linux기준(CentOS 비슷)으로 진행합니다.

 

** 기본 root에 mkdir을 이용한 data 폴더를 만든 후 그 위에 만들었습니다.

경로가 헷갈리시면 root 폴더에서 기초 디렉토리 생성 후 따라하시면 됩니다.

 

Grafana 3000 Port

Influxdb 8086 Port

 

 

1. docker-compose 설치 , 심볼 설정

1
2
3
4
 
sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-`uname -s`-`uname -m` | sudo tee /usr/local/bin/docker-compose > /dev/null
sudo chmod +/usr/local/bin/docker-compose
sudo ln -/usr/local/bin/docker-compose /usr/bin/docker-compose
cs

 

2. 기초 디렉토리 생성 (경로는 개인 Custom)

 

 

1
2
3
4
5
6
7
8
mkdir data
cd /data
mkdir -/data/influxdb/config
mkdir -/data/influxdb/data
mkdir -/data/grafana/etc_grafana
mkdir -/data/grafana/var_lib_grafana
mkdir -/data/telegraf/
chown -472:472 /data/grafana/
cs

 

3.influx + grafana +  telegraf : docker-compose Yaml 파일 (Telegraf는 추후 사용을 위한 설치)

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
version: '3.6' # Docker 버전 -> 공식 문서 참조 2,3 여러 버전 존재
services:
  influxdb:
    image: influxdb:1.8.10-alpine
    # 추후 버전 변경 필요
    container_name: influxdb  # 생성되는 컨테이너 명
    ports:
      - 8086:8086  # 포트
    volumes:
      - type: bind
        source: /data/influxdb/data # 연결할 볼륨 설정
        target: /var/lib/influxdb
      - type: bind
        source: /data/influxdb/config
        target: /etc/influxdb
    restart: always
  grafana:
    image: grafana/grafana:8.1.2
    container_name: grafana
    ports:
      - 3000:3000
    environment:
      - GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource
    volumes:
      - /data/grafana/var_lib_grafana:/var/lib/grafana
      - /data/grafana/etc_grafana/grafana.ini:/etc/grafana/grafana.ini:ro
    restart: always
  telegraf:
    image: telegraf:1.19.3
    container_name: telegraf
    volumes:
      - /data/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro
    restart: always
# telegraf 포트 필요시 Port로 
cs

 

4. Config 생성

 

1
2
3
4
5
## config 만들기
# telgraf
docker run --rm telegraf:1.19.3 telegraf config > /data/telegraf/telegraf.conf
# grafana
docker run --rm --entrypoint /bin/sh grafana/grafana:8.1.2 -"cat /etc/grafana/grafana.ini" > /data/grafana/etc_grafana/grafana.ini
cs

 

5. docker-compose 실행

1
2
3
docker-compose up -d
docker-compose down (내리기)
cs

 

 

반응형