Mysql 사용자 팁

Database 2014. 12. 2. 10:25
mysql 사용시 콘솔내에서 유용하게 사용할 수 있는 방법 몇가지를 정리합니다.

Query 세로 보기
접속자 및 현재 실행중인 Query 확인
테이블 정보 요약

1. 결과 세로로 보기
# 세로보기
mysql> select now()\G
*************************** 1. row ***************************
now(): 2014-12-02 09:30:37
1 row in set (0.00 sec)

#기존의 가로보기
mysql> select now(); 또는 select now()\g 
+---------------------+
| now() |
+---------------------+
| 2014-12-02 09:30:30  |
+---------------------+
1 row in set (0.00 sec)
2. mysql 접속자 및 현재 실행중인 query 확인
mysql> show processlist;
+-------+-----------+-----------------+--------+---------+-------+-------+------------------+
| Id  | User| Host | db  | Command | Time| State | Info  |
+-------+-----------+-----------------+--------+---------+-------+-------+------------------+
| 14965 | test| localhost:54679 | test | Sleep  | 18056 || NULL|
| 15053 | test| localhost:58070 | test | Sleep  | 15126 || NULL|
| 15283 | test| localhost:59917 | test | Sleep  |  7801  || NULL|
| 15362 | test| localhost:50901 | test | Sleep  |  4872  || NULL|
| 15412 | test| localhost:48443 | test | Sleep  |  2672  || select * from TEST_TABLE .......... |
| 15487 | root| localhost| mysql | Query  |  0 | NULL | show processlist |
+-------+-----------+-----------------+--------+---------+-------+-------+------------------+
6 rows in set (0.00 sec)
위와 같이 실행하면 긴 query 의 경우 잘려서 노출이 되게 된다.
긴 query에 대해 전체 출력을 하고자 한다면 아래와 같이 한다.
mysql> show full processlist;
+-------+-----------+-----------------+--------+---------+-------+-------+------------------+
| Id  | User| Host | db  | Command | Time| State | Info|
+-------+-----------+-----------------+--------+---------+-------+-------+------------------+
| 14965 | test  | localhost:54679 | test | Sleep  | 18056 || NULL|
| 15053 | test  | localhost:58070 | test | Sleep  | 15126 || NULL|
| 15283 | test  | localhost:59917 | test | Sleep  |  7801  || NULL|
| 15362 | test  | localhost:50901 | test | Sleep  |  4872  || NULL|
| 15412 | test | localhost:48443 | test | Sleep  |  2672  || select * from TEST_TABLE where devcoding = 10|
| 15487 | root  | localhost | mysql | Query  |  0 | NULL | show processlist |
+-------+-----------+-----------------+--------+---------+-------+-------+------------------+
6 rows in set (0.00 sec)

3. 현재 데이타베이스의 테이블 정보

mysql> show table status\G
*************************** 1. row ***************************
Name: columns_priv
 Engine: MyISAM
Version: 10
Row_format: Fixed
Rows: 0
 Avg_row_length: 0
 Data_length: 0
Max_data_length: 227994731135631359
Index_length: 1024
 Data_free: 0
  Auto_increment: NULL
 Create_time: 2009-03-24 23:25:43
 Update_time: 2009-03-24 23:25:43
Check_time: NULL
 Collation: utf8_bin
 Checksum: NULL
 Create_options:
  Comment: Column privileges
*************************** 2. row ***************************
.
.
.
.


Posted by 다인,보리아빠
,

이번 포스팅은 nslookup을 이용하여 DNS 서버에 접속하여 변경정보를 정확하게 알아 내기 위한 방법입니다.

일반적으로 자신의 PC 네트워크 설정에 DNS 서버(A DNS라고 해두지요) 설정을 해놓고 그 서버에서 주는 정보는 이용하게 됩니다.


www.tistory.com 이라는 도메인에 대한 IP가 변경이 되었거나 했을때 이를 정확하게 알기 위해서는

www.tistory.com 도메인을 관리하는 DNS(B DNS라고 해두지요)에 접속을 하여야만 알수 있습니다.


그 이유는 B DNS에 변경정보가 있을때 그것이 A DNS에 전파되는 시간이 있기 때문입니다.


다르게 생각하면 자신이 DNS를 수정했을때 이것이 다른 서버(예 코넷 DNS)에 전파가 되었는지에도 사용할 수 있습니다.


그럼 nslookup을 통하여 확인하는 방법을 알아보겠습니다.


C:\Users\tistory>nslookup www.tistory.com    #nslookup을 이용하여 조회
서버:    kns.kornet.net   #자신의 PC에서 사용하는 DNS
Address:  168.126.63.1

권한 없는 응답:  #자신의 PC에서 조회한 값
이름:    www.tistory.com
Address:  180.70.93.117

#이제 www.tistory.com 도메인에 대한 DNS 서버를 확인하는 방법입니다.

C:\Users\tistory>nslookup -q=All www.tistory.com   
서버:    kns.kornet.net
Address:  168.126.63.1

권한 없는 응답:
www.tistory.com internet address = 180.70.93.117

tistory.com     nameserver = ns2.daum.net   #아래 두개가 www.tistory.com 도메인을 관리하는 DNS 이지요.
tistory.com     nameserver = ns1.daum.net
ns1.daum.net    internet address = 113.61.106.5
ns2.daum.net    internet address = 113.61.107.5

C:\Users\tistory>nslookup    #nslookup 실행
기본 서버:  kns.kornet.net
Address:  168.126.63.1

> server ns2.daum.net   # 위에서 찾아낸 www.tistory.com 의 DNS인 ns2.daum.net에 접속
기본 서버:  ns2.daum.net   # 접속완료
Address:  113.61.107.5

> set type=All               # All Type 으로 조회하기
> www.tistory.com       # quey 도메인
서버:    ns2.daum.net
Address:  113.61.107.5

www.tistory.com internet address = 180.70.93.117
tistory.com     nameserver = ns1.daum.net
tistory.com     nameserver = ns2.daum.net
ns1.daum.net    internet address = 113.61.106.5
ns2.daum.net    internet address = 113.61.107.5
>

완료!!!

'linux 개발팁' 카테고리의 다른 글

Docker 이미지 Timezone 변경방법  (0) 2018.05.23
SSH 접속시 No Matching Key 문제  (0) 2018.02.22
linux console 꿀 Tip 1  (0) 2014.10.31
Posted by 다인,보리아빠
,

요즘의 웹어플리케이션 개발의 상당수가 Java를 이용한 Spring Frameworks으로 개발을 많이 한다.

Eclipse를 이용하거나 Eclipse 기반의 STS(Spring Tool Suite)을 이용하여 개발을 하게 된다.


대부분의 개발자들은 아래와 같은 식으로 개발을 하게 된다.

Eclipse에서 제공하는 Tomcat 을 이용하여 개발과 디버깅을 한다.

이 경우 개발환경이 대부분이 개인PC(대부분 Windows OS)에서 개발을 하게 된다.

개발과 디버깅시 실제 서비스가 실행되는 Linux 와는 환경적으로 다른점이 많다.


JPDA(The Java Platform Debugger Architecture)는 이러한 환경적인 문제를 해결할 수 있는 한 방법이다.

JPDA를 이용하면 Linux 에 설치 되어 있는 Tomcat내 소스에 대해서 기존에 Eclipse에서 디버깅 하던것을 할 수 있다.

즉 서버(예: LINUX)의 TOMCAT에 접속하여 디버깅을 할 수 있는 것이다.

더 쉽게 이야기해주면 특정 위치에 있는 Tomcat에 대해서 원격으로 디버깅이 가능하다는 것이다.


환경을 보면 

상용서버는 Linux, Tomcat

개발/스테이징 서버도 Linux, Tomcat

개발자가 개발과 디버깅시 : windows, Tomcat

JPDA 를 이용할시 디버깅시  : Linux(개발서버 또는 스테이징), Tomcat #사실 OS 구분없이 어느 Tomcat이든 가능하다.


JPDA를 이용하여 원격으로 Linux 에 있는 Tomcat 에 접속하기 위해서는 사전 작업이 필요하다.


아래 절차를 보면서 세팅을 해보도록 하자.

1. Linux 내 Tomcat JPDA Port 확인 및 Tomcat Start

#tomcat 의 bin 디렉토리로 이동 후 아래 명령 실행하여 JPDA PORT 를 확인한다.
[root@localhost bin]> grep JPDA_ADDRESS= ./catalina.sh
    JPDA_ADDRESS="8000"

#8000번 포트로 확인이 되었다.
#이제 Tomcat을 JPDA 모드로 실행을 시킨다.
[root@localhost bin]> ./catalina.sh jpda start
Using CATALINA_BASE:   /svc/webapp/was/tomcat6026
Using CATALINA_HOME:   /svc/webapp/was/tomcat6026
Using CATALINA_TMPDIR: /svc/webapp/was/tomcat6026/temp
Using JRE_HOME:        /usr/local/jdk1.6.0_20
Using CLASSPATH:       /svc/webapp/was/tomcat6026/bin/bootstrap.jar

# 포트가 정상적으로 열렸는지 확인해 본다.
[root@localhost bin]> netstat -nap | grep :8000
tcp        0      0 0.0.0.0:8000                0.0.0.0:*                   LISTEN      2348/java
# 이상 서버 세팅 끝!

    

2. Eclipse 또는 STS내 Remote Java Application 설정

- 이클립스(STS 포함) 디버그 버튼(벌레)의 화살표를 누른다.


- Debug Configurations... 을 선택한다.


- Remote Java Application 을 더블클릭한다.


- New_Configuration에 정보를 입력한다.

Name : 이름을 바꾸고 싶으면 편집.
Project : Browse 버튼을 선택하여 해당 되는 소스를 선택한다.
Host : 위의 리눅스 서버의 IP를 적어준다.
Port : 위 1번에서 확인하였던
JPDA_ADDRESS="8000"의 8000을 선택한다.

모든게 완료되면 Debug 버튼을 선택한다.


- 정상적으로 완료되면 아래와 같이 Thread 정보가 나오게 된다. 


3. Break Point 설정 및 Debug Perspective 사용

이후는 로컬에서 디버깅 하던 방법과 동일하다. 즉 Breakpoints, Watch, Variables 등등 모두 동일하게 사용하면 된다.
디버깅시에는 꼭 Debug Perspective를 이용하자.
Debug Perspective가 없다면 아래와 같이 추가할 수 있다.
메뉴 Window -> open 
Perspective를 눌러 Debug를 추가하거나 선택하면 된다. 



참고 사항

1. 내가 가지고 있는 소스가 서버와 일치해야 Break point 잡힌 부분이 상이하지 않게 된다. 개발서버(Linux)환경에서 쭈욱 디버깅하고 개발하고자 한다면 Autoftp와 같은 plugin 을 설치하여 소스 수정시 마다 자동으로 개발서버로 적용이 되도록 하면 좋다.

2. Tomcat 에 JNDI를 사용하고 있다면 그것은 그대로 사용된다. 모든 세팅은 서버에 되어 있는대로이며 단순하게 디버깅만 원격으로 되는 것이라고 생각하면 된다.

3. 톰캣과 이클립스로만 적어놓았지만 JPDA는 다른 WAS, 다른 IDE에서도 사용가능하다.

4. JSP 디버깅은 잘 안되기도 하니 참고하세요!



역시 개발자는 디버깅을 잘해야죠!

'디버깅' 카테고리의 다른 글

Android webview 디버깅 하기  (2) 2015.03.16
Posted by 다인,보리아빠
,