728x90
반응형

장고 튜토리얼

이전 글에서는 장고 기본 환경 설정 및 앱 서비스 호출하는 방법에 대해 알아보았습니다. 

이번 글에서는 MySQL 과 Django 연동하는 방법에 대해 알아보겠습니다. 

 

MySQL 설치 

Mysql 설치 과정은 이전에 작성해 놓았던 글로 대체 하겠습니다. 

Mysql 설치 

서버는 docker-compose 파일로 쉽게 설치 하실수 있습니다. 

하지만 Mysql 서버는 리눅스 서버에 설치 하였고 

개발은 윈도우에서 개발해야 합니다. 

Django 에서 Mysql 서버에 접속하기 위해서는 Mysqlclient 가 필요합니다. 

  • Django -> Mysql Client -> Mysql Server

파이선 가상환경에서 mysql client 를 설치하도록 하겠습니다. 

pip install mysqlclient

pip mysqlclient install

mysql 클라이언트 설치시 에러가 난다면 아래 경로에서 별도로 mysqlclient를 다운로드하여 설치하시기 바랍니다.

pip install mysqlclient-1.4.6-cp37-cp37m-win32.whl

 

https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient

Django Mysql 연결 설정(config/settings/base.py)

settings.py -> config/settings/base.py 로 수정했습니다. 

DATABASE 항목을 수정 합니다. 

DATABASES = {
     'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mysql8',
        'USER': 'testuser',
        'PASSWORD':'userpasswd',
        'HOST':'192.168.17.56',
        'PORT':'23306',
    }
}

Django mysql table migrate

장고 서비스를 수행하기 위해서는 연동하고자 하는 DB(Mysql)에 장고에서 필요로 하는 테이블들이 생성되어야 합니다. 

장고는 정말 편리하게도 base.py(settings.py) 에서 정의된 앱  목록(INSTALLED_APPS)을 보고 자동으로 연동할 database 에 앱 실행에 필요로 하는 테이블들을 만들어 줍니다. 

python manage.py migrate

위 명령을 수행하면 아래와 같이 mysql db 에 테이블들이 자동으로 생성됩니다. 

 

(pollsEnv) C:\pydev\venv\polls>python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, polls, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying polls.0001_initial... OK
  Applying sessions.0001_initial... OK

Django 모델 만들기 (models.py)

  • polls/models.py 에 Qustion, Choice 클래스를 생성합니다. 
from django.db import models


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

Django 모델 활성화 (config/settings/base.py)

  • settings.py 파일을 이전에 base.py 파일로 변경하였습니다. 
  • 해당 파일에 장고 polls 앱을 추가합니다. 
  • 'polls.apps.PollsConfig',
INSTALLED_APPS = [
    'polls.apps.PollsConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
  • python manage.py migrate 는 실제 mysql db에 테이블을 생성 하고 makemigrations polls 앱 model.py 에 등록된 클래스 정보를 바탕으로 데이터 모델을 파일을 만든다. 
  • 해당 명령을 수행하면 polls\migrations 디렉토리에 \0001_initial.py 파일이 자동으로 생성 된다. 
  • model.py 변경 사항이 발생하면 makemigrations  명령 수행 이후 python manage.py migrate 수행하면 db 에 변경된 사항이 적용된다. 
python manage.py makemigrations polls

python manage.py makemigrations polls
Migrations for 'polls':
  polls\migrations\0001_initial.py
    - Create model Question
    - Create model Choice

  • polls\migrations
class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Question',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('question_text', models.CharField(max_length=200)),
                ('pub_date', models.DateTimeField(verbose_name='date published')),
            ],
        ),
        migrations.CreateModel(
            name='Choice',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('choice_text', models.CharField(max_length=200)),
                ('votes', models.IntegerField(default=0)),
                ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='polls.question')),
            ],
        ),
    ]

Django 웹 관리자 생성하기

이제 장고웹 접속 계정 관리 방법에 대해 알아보겠습니다. 

아래 명령을 수행 하면 장고 admin에 접속할 수 있습니다. 

INSTALLED_APPS에 정의된 django.contrib.**** 앱 서비스와 관련된 테이블들이 만들어졌기에 가능합니다. 

아래 명령을 수행하면 장고 admin(super 계정) 을 만들 수 있습니다. 

python manage.py createsuperuser
  • amin user 에 비밀번호는 admin123으로 유저를 생성했습니다. 
(pollsEnv) C:\pydev\venv\polls>python manage.py createsuperuser
사용자 이름 (leave blank to use 'tester'): admin
이메일 주소: admin@example.com
Password:
Password (again):
비밀번호가 사용자 이름와 너무 유사합니다.
비밀번호가 너무 일상적인 단어입니다.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.

Django admin 화면 접속 

  • http://127.0.0.1:8000/admin 으로 접속을 해보겠습니다. 

django admin 접속

 

앞서 생성한 user와 비밀 번호를 입력하면 그럴듯한 화면이 나타납니다. 

별다른  코드 작성을 하지 않았는데 Django에서는 기본으로 admin 앱을 제공해주고 있습니다. 

django admin login

Django admin  poll app 추가 하기

장고 어드민에 접속 했지만 poll app 관련 메뉴는 보이지 않습니다.

이번에는 polls 앱을 장고 어드민 화면에 추가 하는 작업을 진행하겠습니다. 

 

  • polls/admin.py 파일에 polls 앱을 추가합니다. 
from django.contrib import admin

from .models import Question

admin.site.register(Question)
  • 다시 장고 어드민 화면에 접속 해보세요 !
  • polls 앱이 등록된 것을 확인하실 수 있습니다. 

  • polls Questions 등록해보기 

내용을 작성해서 이것저것 눌러보시기 바랍니다. 

 

이상으로 두 번째 강좌를 마치겠습니다. 

728x90
반응형
728x90
반응형

장고 튜토리얼

이번 글에서는 장고 튜토리얼 예제인 polls 앱 예제를 가지고 장고에 대한 기본적인 이해와 

사용법에 대해 알아보겠습니다. 

 

파이썬 설치 

파이썬 홈페이지에서 윈도우용 파이썬 바이너리를 다운로드 받습니다. 

튜토리얼이 장고 버전이 4.0 기준으로 작성되어 있어 파이썬이 지원하는 3.8 버전으로 다운로드하여 설치합니다. 

  • 장고 호환성 버전 

 

 

https://www.python.org/downloads/windows/

 

Python Releases for Windows

The official home of the Python Programming Language

www.python.org

 

python 3.8 다운로드

설치후 윈도우 환경 변수를 세팅하면 끝입니다. 

 

윈도우 환경 변수 셋팅

 

파이썬 가상환경 생성 및 장고 설치 

  • 절차 
#파이썬 개발 디렉토리 생성 
mkdir pydev
cd pydev
 
#가상환경 디렉토리 생성 및 이동
mkdir venv
cd venv
 
#가상환경 생성
python -m venv pollsEnv
 
#가상환경 진입
#윈도우
pollsEnv\Scripts\activate
#리눅스
pollsEnv\bin\activate



#파이썬 팩키지 관리자 pip 업그레이드 
python  -m pip install --upgrade pip

#Django 설치 
pip install Django==4.0.4
  • 실행 과정 

장고 설치 이미지

Django 프로젝트 생성  및 실행 

django-admin startproject polls

python manage.py runserver

startproject 명령을 수행하면 manage.py , polls 디렉 토리가 생성됩니다. 

polls 디렉토리에 있는 python manage.py runserver 명령을 수행하면 장고 웹이 실행됩니다. 

 

python manage.py runserver 실행

  • 장고 웹 접속 (http://127.0.0.1:8000/)
  • 웹페이지에 접속을 하면 아래 화면 처럼 장고 웹페이지가 나옵니다. 

django 화면

 

파이참 다운로드 및 실행 

장고를 개발하기 위해서는 파이썬 개발 툴이 필수입니다. 
파이썬 공식 홈페이지에서 파이참을 다운 로드합니다. 

https://www.jetbrains.com/ko-kr/pycharm/download

 

무료 사용 버전인 윈도우 Community 버전을 다운로드 받아 설치 합니다. 

 

윈도우 Pycharm 다운로드

 

 

  • 앞서 만들었던 polls 프로젝트를 오픈합니다. 
장고 polls 프로젝트 오픈

 

 

 

반응형

 

파이참(Pycharm) 파이썬 장고 환경 설정 

Python Interpreter 설정 

파이참 메뉴에서 File-> Settings -> Project -> Python Interpreter 를 선택해서 파이선 환경을 셋팅합니다. .

 

python Interpreter 셋팅 그림

python Interpreter 셋팅을 마치면  윈도우 cmd 창에서 pip list 명령으로 파이썬 설치 리스트를 확인한 결과와 동일하게 

가상환경 설치 패키지를 확인할 수 있습니다.

python Interpreter 셋팅 후 그림

장고 실행 환경 설정 

파이썬 메뉴 중 Run -> Add new run Configuration -> Python 선택

  • Scripts : 장고 polls 프로젝트  manage.py 선택 
  • Prameters : runserver 기입

Run Configurations 설정

장고 프로 젝트 실행

Run -> Run.. 버튼을 누르거나 오른쪽 Run 버튼을 누르면 cmd 창에서 python manager.py runserver 명령과 동일하게 파이참에서 장고 프로젝트를 실행할 수 있습니다.  

파이참 장고 실행 화면

 

 

장고 polls 프로젝트 구조 변경

여러 블로그 글을 찾아보니 환경 설정은 별도의 디렉토리에서 관리하고 설정하는 것으로 보입니다. 

운영 환경과 개발 환경을 분리하기 위해 설정 파일을 별도로 분리해서 관리합니다. 

 

장고 polls 프로젝트 config 디렉 토리 생성 

  1. polls 디렉토리 이름 변경 : polls -> config
  2. settings 디렉토리 생성 
  3. settings.py -> base.py 로 이름 변경 
  4. base.py -> settings 디렉 토리 이동 

프로젝트 구조 변경

장고 polls 프로젝트 파일 내용 수정 

프로젝트 구조를 변경하면 3가지 파일을 변경해야 합니다. 

변경한 디렉토리 이름에 맞게 파일 내용을 수정합니다. 

헷갈리실 수 있으니 캡처된 그림을 참고하면서 수정합니다. 

 

1.manage.py

    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.base')

2.base.py(settings.py)

ROOT_URLCONF = 'config.urls'

WSGI_APPLICATION = 'config.wsgi.application'

3.wsgi.py

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.base')

파일 내용 수정

 

 

장고 한글 설정 

장고 웹페이지가 한글로 출력되도록 한글 셋팅을 추가합니다. 

base.py (settings.py)

LANGUAGE_CODE = 'ko-kr'

TIME_ZONE = 'Asia/Seoul'

 

장고 polls 프로젝트 앱 작성 

프로젝트만 만들어서는 어떤 웹서비스도 수행할 수 없습니다. 

실제 웹서비스를 수행하기 위해서 python manage.py startapp polls 명령을 통해 앱 서비스를 만들겠습니다. 

python manage.py startapp polls

파이참은 고맙게도 Terminal 이란 기능을 제공합니다. 

윈도우 cmd 창을 열어서 별도 수행할 필요 없이 파이참 Terminal 에서 위 명령을 수행합니다. 

polls 디렉토리가 생성되었고 디렉 토리 밑으로 여러 가지 파일이 생성되었습니다. 

polls 앱 파일 내용 수정 

실제로 서비스를 위한 첫 번째 작업을 시작해 보겠습니다 

1. 프로젝트 urls.py 파일 수정 

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

2. polls 앱 하위 디렉터리 urls.py 신규 파일 생성 

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

3.polls/view.py 파일 내용 작성 

  • index 함수에서 작성한 출력 내용이 장고 화면에 보입니다.

 

from django.http import HttpResponse


def index(request):
    return HttpResponse(" 장고 튜토리얼 따라하기 첫번 째 ")
  • 파일 추가 및 수정된 파일 변경 사항을 다시 한번 확인해보시기 바랍니다. 

장고 polls  호출 순서

장고 polls 앱 접속 확인

http://127.0.0.1:8000/polls/ 로 접속합니다. 

간단하지만 view.py 에서 작성한 서비스가 출력되는 것을 확인할 수 있습니다. 

장고 호출 흐름도 다시 기억하기 

장고 서비스 호출 순서는  장고를 처음 시작하는 사람에게는 꼭 기억해야 할 중요한 부분인 것 같습니다.

project urls.py -> app urls.py -> app view.py 순서로 호출을 합니다. 

 

중요한 부분이고 헷갈리는 부분이라 다시 한번 정리하고 넘어가겠습니다. 

 

다음 장에서는 MySql과 장고 연동하는 방법에 대해 알아보겠습니다. 

728x90
반응형
728x90
반응형

파이썬에서 제공하는 Matplotlib  라이브러리를 이용해 데이터를 그래프로 보여주는 예제를 소개합니다. 

Tibero에서 데이터를 가져와서 데이터를 출력하는 예제입니다. 

 

사전 작업 

  1. python 설치
  2. pyodbc 설치
  3. Tibero ODBC 설치 
  4. Tibero Sample Schema 생성(첨부 파일-scott.sql)
  5. pip install pyodbc
  6. pip install matplotlib

scott.sql
0.00MB

필수 라이브러리 설치

(testEnv) C:\pydev\venv>python -m pip install --upgrade pip
Collecting pip
  Using cached https://files.pythonhosted.org/packages/4d/16/0a14ca596f30316efd412a60bdfac02a7259bf8673d4d917dc60b9a21812/pip-22.0.4-py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 19.2.3
    Uninstalling pip-19.2.3:
      Successfully uninstalled pip-19.2.3
Successfully installed pip-22.0.4

(testEnv) C:\pydev\venv>pip install pyodbc
Collecting pyodbc
  Downloading pyodbc-4.0.32-cp37-cp37m-win_amd64.whl (73 kB)
     ---------------------------------------- 73.1/73.1 KB ? eta 0:00:00
Installing collected packages: pyodbc
Successfully installed pyodbc-4.0.32


(testEnv) C:\pydev\venv> pip install matplotlib
Collecting matplotlib
  Downloading https://files.pythonhosted.org/packages/71/97/b93e7edcdf5f0321bef2c8404ca8e8401e7f1f869ba8ee986f71514ca1b3/matplotlib-3.5.1-cp37-cp37m-win_amd64.whl (7.2MB)
     |████████████████████████████████| 7.2MB 6.4MB/s
Collecting kiwisolver>=1.0.1 (from matplotlib)
  Downloading https://files.pythonhosted.org/packages/96/27/cd4bb740e363eaf9241f26ca14504c5b2603f73d6fa1e3782913c3b0b701/kiwisolver-1.4.2-cp37-cp37m-win_amd64.whl (54kB)
     |████████████████████████████████| 61kB ...

 

소스 코드

import pyodbc
import numpy as np
import matplotlib.pyplot as plt
db = pyodbc.connect('DSN=Tibero6;UID=tibero;PWD=tmax')
cursor = db.cursor()

cursor.execute("select trunc(count(*)) from emp")
for row in cursor:
    totalemps=int(row[0])
    print(totalemps)
t=np.arange(totalemps)
cursor.execute("select ename,sal from emp")
names=[]
salaries=[]
for row in cursor:
    names.append(row[0])
    salaries.append(row[1])
bar_width=0.5
plt.bar(t,salaries,bar_width,label="Salary")
plt.title("Employee Details")
plt.xlabel("Employee")
plt.ylabel("Salary")
plt.xticks(t,names)
plt.grid(True)
plt.legend()
xs=[x for x in range(1,totalemps)]
for x,y in zip(xs,salaries):
    plt.annotate(salaries[x],(x-bar_width/2,y))
plt.show()

소스 실행

  • python matplotlib_sample.py

 

 

 

728x90
반응형
728x90
반응형

python Django

파이썬 설치 

Django는 파이썬으로 개발된 웹 프레임워크입니다. 

스프링 웹을 개발하기 위해서는 jdk 설치가 필요한 것처럼 

장고 웹을 개발하기 위해서는 파이썬 설치가 필수입니다.

사용자의 개발 환경에 맞는 OS를 선택 후 파이썬 설치를 진행해 주세요 

파이썬 개발 환경 구성(가상 환경)

파이썬은 독립된 환경에서 개발이 가능하도록 가상 환경이라는 기능을 제공합니다. 

동일한 개발 PC에서 각각의 파이썬 버전과 용도에 따라 필요로 하는 패키지 설치를 개별 적으로 설치해서 

개발환경을 달리해서 개발을 진행할 수 있습니다.  

우분투 파이썬 가상환경 진입

* 파이썬 가상 환경에 대해서는 이전에 작성한 글을 참고하세요

#파이썬 개발 디렉토리 생성 
mkdir pydev
cd pydev

#가상환경 디렉토리 생성 및 이동
mkdir venv
cd venv

#가상환경 생성
python3 -m venv bookenv

#가상환경 진입
. bookenv/bin/activate

 

dev@ubuntu2004:~/pydev/venv$ python3 -m venv bookenv
dev@ubuntu2004:~/pydev/venv$ . bookenv/bin/activate
(booksite) dev@ubuntu2004:~/pydev/venv$ python -V
Python 3.8.10

윈도우 파이썬 가상환경 

윈도우에서 가상 환경이 생성 되는 구조는 리눅스와 다릅니다. 

가상환경 진입 방법은 리눅스와 같으나 가상환경에서 나올때는 Scripts\deactivate command 를 통해 가상환경에서 빠져 나올 수 있습니다. 

실행 경로는 Scripts 디렉토리에 위치해 있습니다. 

C:\PYDEV\VENV\BOOKENV
│  pyvenv.cfg

├─Include
├─Lib
│  └─site-packages
│      │  easy_install.py
│      │
│      ├─pip
│      ├─pkg_resources
│      │
│      ├─setuptools
│      ├─setuptools-41.2.0.dist-info
│      │
│      └─__pycache__

└─Scripts
        activate
        activate.bat
        Activate.ps1
        deactivate.bat
        easy_install-3.7.exe
        easy_install.exe
        pip.exe
        pip3.7.exe
        pip3.exe
        python.exe
        pythonw.exe

윈도우 가상환경 진입 

C:\pydev\venv>bookenv\Scripts\activate

(bookenv) C:\pydev\venv>python -V
Python 3.7.7

(bookenv) C:\pydev\venv>bookenv\Scripts\deactivate.bat
C:\pydev\venv>

 

장고 설치(Django 설치)

Django 웹페이지를 만들기 위해  Django 팩키지를 설치하겠습니다. 

pip 명령을 통해 Django를 설치하겠습니다. 

가상 환경 진입 후 파이썬 패키지 설치와 관리를 도와주는 pip 명령을 통해 장고를 설치합니다. 

pip install Django==4.0.4

pip list Command 를 통해 가상 환경에 설치된 파이썬 패키지들을 확인합니다. 

 

(booksite) dev@ubuntu2004:~/pydev/venv/booksite$ pip list
Package            Version
------------------ -------
asgiref            3.5.0  
backports.zoneinfo 0.2.1  
Django             4.0.4  
pip                20.0.2 
pkg-resources      0.0.0  
setuptools         44.0.0 
sqlparse           0.4.2  

django 설치 그림

파이썬 장고 프로 젝트 생성 및 실행 하기 

이제 본격적으로 Django(장고) 프로젝트를 만들어 보겠습니다. 

django-admin startproject 명령으로 장고 프로젝트를 만들겠습니다. 

장고 프로 젝트 생성

명령 수행위치는 venv 디렉토리 입니다. 

django-admin startproject booksite

위 명령으로 장고 프로젝트를 만들고 디렉터리 구조를 확인해 보자 

book라는 디렉토리와 manage.py 파일이 생성되었습니다. 

manage.py를 통해 book 애플리케이션을 실행하는 구조라고 이해하면 될 것 같습니다. 

django-admin startproject 실행 및 디렉토리 구조

 

장고 프로 젝트 실행

python manage.py runserver 명령을 통해 장고를 실행합니다. 

실행 후 http://127.0.0.1:8000/ 로 웹에 접속을 해봅니다. 

아래와 같은 화면이 나온다면 정상적으로 장고가 설치되고 프로젝트가 생성된 것입니다. 

장고에서 사용되는 default 포트는 8000 이며 포트를 변경하고자 한다면 runserver 명령 뒤에 사용 포트를 써줍니다. 

  • python manage.py runserver 8080
python manage.py runserver

manage.py runserver

 

django 실행 화면

파이썬 개발 도구 파이참(Pycharm) 다운로드 

 

장고를 개발 하기 위해서는 파이썬 개발 툴이 필수입니다. 

파이썬은 jupyter notebook, Atom,Visual Studio Code 등 여러 가지 개발 툴들로  개발을 할 수 있지만

그중에  저는 파이 참을 사용해 장고 웹을 개발하는 과정에 대해 소개해 보겠습니다. 

 

파이썬 공식 홈페이지에서 파이참을 다운로드합니다. 

https://www.jetbrains.com/ko-kr/pycharm/download/#section=linux

 

다운로드 PyCharm: JetBrains가 만든 전문 개발자용 Python IDE

 

www.jetbrains.com

 

Pycharm 다운로드

파이참 실행 

제가 사용하는 주 데스크톱은 어떠다 보니 우분투라서 리눅스 환경에서 테스트를 진행하겠습니다. 

#압축해제
tar xvzf pycharm-community-2022.1.tar.gz 
#파이참 실행경로 이동
cd pycharm-community-2022.1/
cd bin

파이참 실행
sh pycharm.sh

 

파이참이 실행되면 파이썬 가상 환경 프로젝트를 Open 합니다. 

장고 booksite 프로젝트 오픈

파이참 파이썬 환경 설정

이제 파이참에서 파이썬 환경설정을 진행하겠습니다. 

파이썬 Interpreter 설정

File -> Setting 를 선택해서 장고 book 프로젝트 Interpreter 를 설정하겠습니다. 

가상환경으로 만든 파이썬을 선택합니다. 

Setting 설정 화면에서 톱니바퀴 버튼을 눌러서콘솔에서 작업했던 가상환경 파이썬을 선택합니다. 

 

파이썬 Interpreter 설정

파이참 Add Configuration 설정

장고를 실행하기 위한 환경설정을 진행합니다. 

파이참 우측 상단 Add onfiguration 버튼을 눌러서 파이썬 실행 설정을 셋팅합니다. 

 

  • Name:프로젝트 실행 이름
  • Scripts path :가상환경 장고 프로젝트(book) manage.py 
  • Parameters:장고 실행 명령 

python Run Configuration setting

실행 환경 셋팅후 오른쪽 화살표 버튼을 누르면 콘솔에서 python manage.py runserver 로 수행한 것처럼 장고 프로젝트를 

파이참에서 실행할 수 있습니다. 

Django 한글 설정 

book 프로젝트의 settings.py 를 수정 후 장고 프로젝트를 재 실행합니다. 

화면이 한글로 바뀐것을 보실 수 있습니다. 

이제 까지 기본 장고 셋팅에 대해 알아보았습니다. 

 

#LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'ko-kr'

#TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Seoul'
USE_I18N = True

728x90
반응형
728x90
반응형

nexus repository

Nexus 란?

라이브러리 사설 Repository 이며 Maven Repository 와 유사 소스코드 관리 하는 Git 이나 Svn 과는 달리 라이브러리 버전 관리 및 배포를 담당한다.

Nexus 계정 생성

  • 먼저 nexus 계정 생합니다. 
[root@centos7:/root]$ adduser nexus
[root@centos7:/root]$ passwd nexus
nexus 사용자의 비밀 번호 변경 중
새  암호:
새  암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
  • nexus 계정 root 권한 부여(/etc/sudoers)

/etc/sudoers 파일을 수정권한이 없기 때문에 파일 수정 권한 변경후 수정해야 합니다. 

수정 이후에는 다시 권한을 해제해 주세요 

  • chmod u+w /etc/sudoers    
  • vi /etc/sudoers
  • chmod u-w /etc/sudoers   
## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
oracle-docker ALL=(ALL) ALL
nexus ALL=(ALL) ALL

Nexus  바이너리 설치 및 다운로드 

  • nexus 계정 접속후 다운로드 받은 압축파일 해제 
#nexus 계정 접속
su - nexus

#바이너리 다운로드
wget http://www.sonatype.org/downloads/nexus-latest-bundle.tar.gz --no-check-certificate

#압축해제
tar xvzf nexus-latest-bundle.tar.gz

Nexus 서비스 등록 설정

cd nexus-2.15.1-02/bin

vi /etc/init.d/nexus

NEXUS_HOME="/home/nexus/nexus-2.15.1-02"
 
RUN_AS_USER=nexus
PIDDIR="/home/nexus"

cp nexus /etc/init.d/nexus

Nexus 서비스 시작

  • service nexus start 
[nexus@centos7:/home/nexus/nexus-2.15.1-02/bin]$ service nexus start
Starting Nexus OSS...
Started Nexus OSS.
  • 서비스 정상 부팅 확인
  • ps -ef | grep nexus | grep -v grep
  • netstat -tnlp | grep java

Nexus 웹 접속 

  • http://[서버 IP]:8081/nexus
  • 최초 비밀번호는 admin/admin123 입니다. 

Nexus admin 접속
nexus 어드민 접속

 

Nexus User 생성

  • Security -> Users -> add 버튼 클릭후 유저 정보 입력 
  • 유저 정보 하단 Role Management ->add 버튼 클릭 후 롤 선택후 유저 생성 

nexus 유저생성 이미지

Nexus 라이브러리 업로드

  • 오라클 jdbc 바이너리를 업로드 하는 방법에 대해 알아보겠습니다. 
  • views/ Repositories 메뉴-> Repositories -> 3rd party -> Artifact upload 버튼 클릭 
  • 업로드 할 라이브러리 선택(ojdbc8.jar) 후 Add Artifact 클릭 
  • upload Artifact(s) 선택 하면 ojdbc8.jar 가 업로드 됩니다. 

nexus 오라클 jdbc 라이브러리 업로드

 

Nexus 라이브러리 Maven xml 정보 확인 

업로드가 완료되면 Browse Index 창에서 업로드된 라이브러리를 확인 할 수 있으며 

pom.xml 에 작성할 xml 정보를 확인할수 있습니다. 

pom.xml maven 정보

이클립스 Nexus 설정 

이클립스에서 nexus 레파지토리 정보를 입력해 줍니다. 

설정 파일은 setting.xml 파일이며 이클립스 Preferences 창을 열어 

User Settings 을 선택후 아래 내용을 작성합니다. 

setting.xml 수정  

<setting.xml >
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
    <server>
        <id>thirdparty</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
</servers>
</settings>

 

2.pom.xml 수정 

<distributionManagement>
  <repository>
    <id>thirdparty</id>
    <url>http://xxx.xxx.xxx.xxx:8081/nexus/content/repositories/thirdparty</url>
  </repository>
</distributionManagement>

레파지 토리 정보는 nexus 레파지토리에서 Summary 항목에서 확인 하실수 있습니다. 

 

 

이상 이클립에서 nexus 레파지토리에 등록된 라이브러리 사용 방법에 대해 알아 보았습니다. 

728x90
반응형
728x90
반응형

간단한 JDBC 프로그램으로 오라클과 티베로에 접속 해서 데이터를 조회 하는 샘플 소스를 공유 합니다. 

 

JDBC 샘플 소스 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;


public class JDBC_ConnectionTest {

	public static final String TIBERO_JDBC_CLASS_NAME = "com.tmax.tibero.jdbc.TbDriver";
	public static final String ORACLE_JDBC_CLASS_NAME = "oracle.jdbc.driver.OracleDriver";

	public static void main(String args[]) {

		String DB_USER = "tibero";
		String DB_PASSWORD = "tmax";
		String TB_DB_CONNECTION = "jdbc:tibero:thin:@127.0.0.1:17000:tibero";
		String ORA_DB_CONNECTION = "jdbc:oracle:thin:@127.0.0.1:1521:orclcdb";
		
		String DB_TYPE ="oracle";

		try {

			Properties prop = new Properties();
			prop.put("user", DB_USER);
			prop.put("password", DB_PASSWORD);
			Connection conn = null;
			
			if(DB_TYPE.equals("tibero")){
				Class.forName(TIBERO_JDBC_CLASS_NAME);
				conn = DriverManager.getConnection(TB_DB_CONNECTION, prop);
			}else{
				Class.forName(ORACLE_JDBC_CLASS_NAME);
				conn = DriverManager.getConnection(ORA_DB_CONNECTION, prop);
			}
							
			Statement stmt = conn.createStatement();
			
			try {
				stmt.executeQuery("drop table book");
	
			} catch (Exception e) {
				// TODO: handle exception
				e.printStackTrace();
			}
			
			String table =" create table book     \n"  
						+ " (book_id number primary key  \n " 
						+ " ,title varchar(200)  \n " 
						+ " ,category varchar(200)  \n " 
						+ " ,price number    \n " 
						+ " ,insert_date date default current_timestamp \n " 
						+ " )  \n " ;

			stmt.executeQuery(table);
			
			ResultSet rs = null;
			stmt.executeUpdate("insert into book( book_id, title,category,price) values(1,'JDBC program','IT BOOK',20000)");

			rs = stmt.executeQuery("select * From book");
			
			System.out.println("==================== 단건조회 =====================");
			while(rs.next()){
				
				System.out.println(String.format("book_id:[%d],title:[%s],category:[%s],price:[%d],insert_date:[%s]"
						,rs.getInt(1),rs.getString(2),rs.getString(3),rs.getInt(4),rs.getString(5)));
			}
			System.out.println("=============================================");

			/*Table batch insert*/
			PreparedStatement psmt = conn.prepareStatement("insert into book( book_id, title,category,price) values(?,?,?,?)");

			for (int i = 2; i <= 50; i++) {

				psmt.setInt(1, i);
				psmt.setString(2, "JDBC program_" + i);
				psmt.setString(3, "IT BOOK_" + i);
				psmt.setInt(4, 20000 + (i * 100));

				psmt.addBatch();
			}

			psmt.executeBatch();		
			
			
			System.out.println("==================== batch insert 조회 =====================");
			rs = stmt.executeQuery("select * From book");
			while(rs.next()){
				
				System.out.println(String.format("book_id:[%d],title:[%s],category:[%s],price:[%d],insert_date:[%s]"
						,rs.getInt(1),rs.getString(2),rs.getString(3),rs.getInt(4),rs.getString(5)));
			}
			System.out.println("=============================================");
			
			rs.close();
			stmt.close();
			psmt.cancel();
			conn.close();

		} catch (Exception e) {
			e.printStackTrace();
		}
	}


}

jdbc 드라이버 네임 설정

  • 티베로와 오라클 드라이버 명을 설정합니다. .
public static final String TIBERO_JDBC_CLASS_NAME = "com.tmax.tibero.jdbc.TbDriver";
public static final String ORACLE_JDBC_CLASS_NAME = "oracle.jdbc.driver.OracleDriver";

jdbc URL 설정 

  • 티베로와 오라클 URL 을 설정합니다. 
String DB_USER = "tibero";
String DB_PASSWORD = "tmax";
String TB_DB_CONNECTION = "jdbc:tibero:thin:@127.0.0.1:17000:tibero";
String ORA_DB_CONNECTION = "jdbc:oracle:thin:@127.0.0.1:1521:orclcdb";

jdbc Connection 생성 

jdbc 단건 입력 후 조회

jdbc batch insert 후 조회 

PreparedStatement addBatch() 를 이용해 여러건을 한번에 입력후 조회 합니다. 

 

psmt.addBatch()

jdbc connection 종료

테스트 결과 

  • jdbc 컴파일 및 실행 
  • 윈도우와 리눅스 컴파일시 구분자가 다르다 리눅스 ':' , 윈도우=>';'
#윈도우
javac -classpath .;tibero6-jdbc.jar;ojdbc8.jar JDBC_ConnectionTest.java 
java  -classpath .;tibero6-jdbc.jar;ojdbc8.jar JDBC_ConnectionTest 

#리눅스
javac -classpath .:tibero6-jdbc.jar:ojdbc8.jar JDBC_ConnectionTest.java 
java  -classpath .:tibero6-jdbc.jar:ojdbc8.jar JDBC_ConnectionTest
  • 실행결과
==================== 단건조회 =====================
book_id:[1],title:[JDBC program],category:[IT BOOK],price:[20000],insert_date:[2022-04-20 20:48:04.0]
=============================================
==================== batch insert 조회 =====================
book_id:[1],title:[JDBC program],category:[IT BOOK],price:[20000],insert_date:[2022-04-20 20:48:04.0]
book_id:[2],title:[JDBC program_2],category:[IT BOOK_2],price:[20200],insert_date:[2022-04-20 20:48:04.0]
book_id:[3],title:[JDBC program_3],category:[IT BOOK_3],price:[20300],insert_date:[2022-04-20 20:48:04.0]
book_id:[4],title:[JDBC program_4],category:[IT BOOK_4],price:[20400],insert_date:[2022-04-20 20:48:04.0]
book_id:[5],title:[JDBC program_5],category:[IT BOOK_5],price:[20500],insert_date:[2022-04-20 20:48:04.0]
book_id:[6],title:[JDBC program_6],category:[IT BOOK_6],price:[20600],insert_date:[2022-04-20 20:48:04.0]
book_id:[7],title:[JDBC program_7],category:[IT BOOK_7],price:[20700],insert_date:[2022-04-20 20:48:04.0]
book_id:[8],title:[JDBC program_8],category:[IT BOOK_8],price:[20800],insert_date:[2022-04-20 20:48:04.0]
book_id:[9],title:[JDBC program_9],category:[IT BOOK_9],price:[20900],insert_date:[2022-04-20 20:48:04.0]
book_id:[10],title:[JDBC program_10],category:[IT BOOK_10],price:[21000],insert_date:[2022-04-20 20:48:04.0]
book_id:[11],title:[JDBC program_11],category:[IT BOOK_11],price:[21100],insert_date:[2022-04-20 20:48:04.0]
book_id:[12],title:[JDBC program_12],category:[IT BOOK_12],price:[21200],insert_date:[2022-04-20 20:48:04.0]
book_id:[13],title:[JDBC program_13],category:[IT BOOK_13],price:[21300],insert_date:[2022-04-20 20:48:04.0]
book_id:[14],title:[JDBC program_14],category:[IT BOOK_14],price:[21400],insert_date:[2022-04-20 20:48:04.0]
book_id:[15],title:[JDBC program_15],category:[IT BOOK_15],price:[21500],insert_date:[2022-04-20 20:48:04.0]
book_id:[16],title:[JDBC program_16],category:[IT BOOK_16],price:[21600],insert_date:[2022-04-20 20:48:04.0]
book_id:[17],title:[JDBC program_17],category:[IT BOOK_17],price:[21700],insert_date:[2022-04-20 20:48:04.0]
book_id:[18],title:[JDBC program_18],category:[IT BOOK_18],price:[21800],insert_date:[2022-04-20 20:48:04.0]
book_id:[19],title:[JDBC program_19],category:[IT BOOK_19],price:[21900],insert_date:[2022-04-20 20:48:04.0]
book_id:[20],title:[JDBC program_20],category:[IT BOOK_20],price:[22000],insert_date:[2022-04-20 20:48:04.0]
=============================================

 

728x90
반응형

'03.Program > 02.java' 카테고리의 다른 글

[Java basic-Utility] 파일 비교  (0) 2022.03.27
[Java basic-Utility] 디렉토리 파일 리스트 조회  (0) 2022.03.26
Linux OpenJdk 설치  (0) 2022.03.21
728x90
반응형

오라클 이미지

오라클 파라미터에 대해 알아 보겠습니다. 

오라클 초기화 파라미터 파일이란? 

오라클은 기동시에 파라미터 파일을 읽어서 구동되어지도록 설계되었습니다. 

아래는 오라클 기동시 파라미터 파일을 읽는 순서에 대한 설명 그림입니다. 

 

NOMOUNT 로 부팅 하기 위해서는 SPFILE 일 찾는 다음 없음면 PFILE 을 찾게 됩니다. 

SPFILE 과 PFILE 이 모두 없다면 기동에 실패하는 동작을 나타내는 그림 입니다. 

 

오라클 파라미터 파일 읽는순서

 

오라클 파라미터 파일 종류?

파라미터 파일에 대해 알아보겠습니다. 

오라클은 앞서 설명 했듯이 SPFILE PFILE 두종류의 파라미터 파일이 있습니다. 

 

PFILE ?

특징은 아래와 같습니다. 

  • 정적 파라미터라고 부르며 오라클 8i 부터 사용 가능 합니다. 
  • 파일 변경이 가능 하며 $ORACLE_HOME/dbs/initSID.ora 파일 입니다. 
  • V$PARAMETER 뷰에서 파라미터 조회가 가능 합니다. 

SPFILE ?

  • 동적 파라미터라고 부르며 오라클 9i 부터 사용 가능 합니다. 
  • 파일 변경이 가능 하며 $ORACLE_HOME/dbs/spfileSID.ora 파일 입니다. 
  • V$SPARAMETER 뷰에서 파라미터 조회가 가능 합니다. 

 

오라클 파라미터 변경 방법

아래와 같이 파라미터는 변경 가능 합니다. 

  • SPFILE : ALTER SYSTEM SET [parameter name]=[values] [SCOPE=(MEMORY/SPFILE/BOTH)]
  • PFILE   : ALTER SYSTEM SET [parameter name]=[values] [SCOPE=(MEMORY)]
옵 션 설 명
scope Spfile 운영 환경에서만 사용된다
spfile Spfile만 수정한다. (정적인 파라미터 수정에서는 필수다)
memory 현재 DB의 parameter 만 수정하며, spfile 은 수정하지 않는다.
(재시작 하면 원래 spfile 설정값으로 돌아간다)
both 현재 DB 의 parameter 와 spfile 모두 수정한다. (default 값)

출처: https://2factor.tistory.com/63 [IT 일기]

 

오라클 파라미터 파일 서칭 순서

위 그림에서 설명을 했지만 좀더 자세히 설명합니다. 

정확히는 아래와 같은 순서로 부팅시 파라미터 파일을 찾게 됩니다. 

  1. spfile[SID].ora
  2. spfile.ora
  3. init[SID].ora
  4. init.ora

오라클 파라미터 파일 생성 방법

아래처럼 create 명령을 통해 파라미터 파일을 만들수 있습니다. 

  • create pfile='파일명' from spfile='파일명'
  • create spfile='파일명' from pfile='파일명'

 

왜 사용할까요? 

위에서 언급을 했지만 spfile은 기동시 최우선 순위에 있고 파일 수정이 불가 합니다. 

추후에 파라미터 파일을 백업 용도로 사용하기 위해 PFILE로 백업을 해놓아 spfile 파일이 유실되었을 경우 pfile로 기동이 가능(startup pfile=[파라미터 파일명]) 합니다. 

SQL> startup pfile = '/opt/oracle/product/19c/dbhome_1/dbs/test_pfile.ora'
ORACLE instance started.

Total System Global Area 1610609928 bytes
Fixed Size                  9135368 bytes
Variable Size             419430400 bytes
Database Buffers         1174405120 bytes
Redo Buffers                7639040 bytes
Database mounted.
Database opened.

 

그리고 spfile 은 pfile 보다 기동시 우선순위에 있기 때문에 pfile 이 있더라도 spfile 이 있을 경우 pfile 에 등록된 파라미터 값은 반영이 되지 않습니다. 

 

운영 중에 필수적으로 반영되어야 하는 파라미터 값이 있다면 spfile 을 pfile 로 만든 다음 pfile  을 spfile 로 만들어서 파라미터 값을 운영에 반영 할수 있습니다. 

 

오라클 파라미터 파일 생성 및 값 변경 실습

-- pfile 생성
create pfile='/opt/oracle/product/19c/dbhome_1/dbs/test_pfile.ora' from spfile ='/opt/oracle/product/19c/dbhome_1/dbs/spfileORCLCDB.ora'

-- spfile 생성
create spfile from pfile = '/opt/oracle/oradata/dbconfig/ORCLCDB/test_pfile.ora';

 

728x90
반응형
728x90
반응형

Docker Trouble Shuting Guide 

Docker 사용시 발생한 문제 및 해결책들에 대해 공유 하도록 하겠습니다. 

 

  • 문제 : ERROR: Failed to Setup IP tables 에러 
  • 해결책 : systemctl restart docker.service
$ docker-compose up                                
Creating network "dblink_default" with the default driver
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:  (iptables failed: iptables --wait -t nat -I DOCKER -i br-b50eacddd935 -j RETURN: iptables: No chain/target/match by that name.
 (exit status 1))

$ systemctl restart docker.service

$ systemctl status  docker.service
* docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since 화 2022-04-12 12:07:44 KST; 7min ago
     Docs: https://docs.docker.com
 Main PID: 20828 (dockerd)
    Tasks: 11
   Memory: 83.8M
   CGroup: /system.slice/docker.service
           `-20828 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --data-root=/data300G/docker-image
728x90
반응형
728x90
반응형

아침부터 오미크론 xe,xm 변이가 국내에서 발생했다는 뉴스가 메인으로 나왔습니다. 
무섭네요... 언제 끝날지 모르는 지옥 같은 코로나 시대. 

오미크론 변이 바이이러스로 기존 오미크론과 스텔스 오미크론의 재 조합 변이라고 합니다. 
계속 해서 변이 바이러스가 발생하고 있는 요즘 정말 무섭습니다. 

현재도 변이는 계속 재조합되서 나타나고 있는데.. 
올 가을 부터 재 유행 할 거라는 무서운 뉴스가 나오고 있습니다. 

 

오미크론 변이 바이러스에대해 알아보겠습니다. 

 

SBS 뉴스 기사

xe,xm 변이는 기존 오미크론과 스텔스 오미크론의 유전자 재조합으로 인해 발생하는 것이라고 합니다. 

만약 한사람이 오미크론과 스텔스 오미크론에 동시에 걸렸을 경우 발생하는 새로운 종에 오미크론이라고 하는데요

전파력은 스텔스 오미크론 보다 10% 정도 강하고 오미크론보다는 46% 강하다고 합니다. 

다행히 치명률이 기존과 동일 할거라고 합니다. 

 

 

 

SBS 뉴스 오미크론 변이 설명

지금까지 계속해서 새로운  오미크론 변이가 출몰 하고 있습니다. 

올가을 전파력이 강한 새로운 오미크론이 발생할 가능 성이 있다고 하는데, 정말 걱정이네요

가을에는 새로운 방역정책이 필요할수 있다는 전문가의 말도 있네요.. 

오미크론 전파력

마지막으로 제가 자주 확인하는 코로나라이브 현재 상황 보도록 하겠습니다. 

2022.04.20 확진자 현황

계속 해서 줄고 있어서 조금 안심이 되었는데... 걱정입니다. 

728x90
반응형
728x90
반응형

이전 포스트팅 했던 자료에서 Docker 환경으로 Mysql 을 설치했습니다. 

설치 이후에 외부에서 MySQL 접속이 되지 않는 문제가 있어 해결 방법을 정리했습니다. 

 

Mysql 접속을 위한 DBeaver 다운로드 

아래 링크에서 DBeaver  다운로드를 받습니다. 

DBeaver  는 여러종류의 DBMS 에서 제공하는 jdbc 라이브러리를 통해 DB에 접속 할수 있는 유용한 데이터베이스 관리 툴입니다. Oracle,Tibero ,PostgreSQL,MySQL 등 여러 DB에 접속 설정을 통해 편리하게 데이터를 조작 하고 관리할수 있습니다. 

https://dbeaver.io/download/

 

Download | DBeaver Community

Download Tested and verified for MS Windows, Linux and Mac OS X. Install: Windows installer – run installer executable. It will automatically upgrade version (if needed). MacOS DMG – just run it and drag-n-drop DBeaver into Applications. Debian package

dbeaver.io

  • Enterprise Edition 이 있지만 유료 이므로 무료 버전인 Communition 버전을 다운로드 해서 사용 하도록 하겠습니다. 

DBeaver

Mysql  접속 정보 확인 하기 

이전에 작성했던  Docker 환경으로 Mysql 설치 글에서 아래의 설정으로 Mysql8 버전을 설정을 했습니다. 

MYSQL_DATABASE=mysql8
MYSQL_ROOT_PASSWORD=admin
MYSQL_USER=testuser
MYSQL_PASSWORD=userpasswd

설치된 서버 데이터 베이스 확인 하기

  • mysql -u testuser  -p --host 127.0.0.1
  • 접속 후 show databases; 명령을 통해 database 목록을 확인합니다. 
  • Docker 설치시 mysql8 이라는 이름으로 database 설정 했습니다. 

mysql 접속
mysql database 목록 확인

데이터 베이스 Table 목록 확인하기 

  • testuser  이름으로 mysql8 database 에 t_board 와 book 라는 테이블을 만들었습니다. 
  • 테이블 목록 확인 명령은 show tables; 명령으로 확인 할수 있습니다. 
  •  

Mysql table 목록 확인

 

윈도우10 데스크탑 에서 리눅스 MySQAL 데이터 베이스 접속 

이제 다운로드 받은 DBeaver 로 리눅스에 설치된 MySQL 에 접속 테스트를 진행해 보겠습니다. 

DBeaver 실행 & Connect 설정 

플러그버튼을 누르거나 Datbase Navigator 창에서 우클릭해서 create -> Connect 버튼을 눌러서 Mysql 접속 설정을 합니다. 

 

DBeaver Connect 연결

수많은 Database 가 있지만 MySQL 접속할 예정이므로 Mysql 창을 선택합니다.

Mysql 선택

접속 설정 마친후 TesteConnect 버튼을 눌러 정상적으로 테스트가 이루어 지는지 확인합니다. 

예상치 못한 에러가 발생하였습니다. 

  • 에러 :Public Key Retrieval is not allowed

DBbeaver MySQL Connection setting

우측 DBbeaver Driver Properties 탭으로 설정 위치를 변경하여 

allowPublicKeyRetrieval 값을 변경합니다. 

  • allowPublicKeyRetrieval : false ->TRUE

DBbeaver Driver Properties tab

 

프로퍼티값 변경 후 접속하면 아래와 같이 정상적으로 생성했던 테이블 목록이 보입니다. 

Mysql Navigator 화면

 

 

 

 

 

728x90
반응형

'05.DB > Mysql' 카테고리의 다른 글

Mysql 실행 SQL 확인 방법  (0) 2023.03.07
[Mysql] 유저 생성 /DB생성/권한부여  (0) 2022.05.24

+ Recent posts