반응형

출처 : https://askubuntu.com/questions/810098/why-doesnt-my-alias-work-over-ssh

alias가 ssh에서 왜 작동하지 않을까요?

저는 .bashrc에서 다음과 같이 alias를 가지고 있습니다.

alias l.='ls -d .* --color=auto'

이는 매우 유용합니다 :) 하지만 ssh를 통해 작동하지 않습니다.

$ ssh localhost l.
bash: l.: command not found

왜 그럴까요?


1개의 답변

다음을 시도해 보세요.

ssh localhost -t bash -lci l.
  • alias는 당신의 로컬 컴퓨터가 아닌 원격 서버에서 ~/.bashrc에 있어야 됩니다.
  • -i 옵션은 bash에게 interactive 쉘이라고 알려줍니다. alias는 interactive 쉘에서만 가능합니다.
  • -t 옵션은 ssh에 슈도-터미널(pseudo-tty)을 할당하도록 합니다. 이것이 없으면 bash는 interactive 모드를 시작할 때 주의(warning) 메세지를 방출합니다. 이는 ls에 칼라를 가능하게 합니다. 이것이 없으면 당신은 --color=always를 사용해야 합니다. man ls를 확인해주세요.
  • 역자추가 : -l 옵션은 bash가 로그인 쉘로 호출된 것처럼 작동하게 합니다.
  • interactive flag를 설정하지 않고 alias를 가능하게 하는 다른 방법은 shopt -s expand_aliases를 사용하는 것입니다. 다음처럼 시도할 수 있습니다.
ssh localhost 'bash -c "shopt -s expand_aliases; l."'

하지만

  • .bashrc는 쉘 source이 interactive인 경우에만 alias를 정의할 수 있습니다. 이 예시에서 쉘은 interactive 형이 아닙니다.
  • 만약 같은 줄에 alias를 정의하려는 경우 이 항목을 참조하세요.
반응형
반응형

출처 : https://www.shellscript.sh/trap.html

Trap

Trap은 간단하지만 매우 유용한 유틸리티입니다. 스크립트로 현재 디렉터리에서 모든 파일의 내용을 FOO를 BAR로 바꾼 결과 파일을 만든다면, 스크립트가 종료할 때 /tmp를 정리할 수 있습니다. 하지만 도중에 중단되면 /tmp에 파일이 있을 수 있습니다.

#!/bin/sh

trap cleanup 1 2 3 6

cleanup()
{
  echo "Caught Signal ... cleaning up."
  rm -rf /tmp/temp_*.$$
  echo "Done cleanup ... quitting."
  exit 1
}

### main script
for i in *
do
  sed s/FOO/BAR/g $i > /tmp/temp_${i}.$$ && mv /tmp/temp_${i}.$$ $i
done

trap 구문은 시그널 1,2,3, 또는 6을 받았을 때 cleanup()을 실행하라고 스크립트에 말합니다. 가장 보편적인 시그널(CTRL-C)은 시그널 2(SIGINT)입니다. 이는 아주 흥미로운 목적으로도 사용될 수 있습니다.

#!/bin/sh

trap 'increment' 2

increment()
{
  echo "Caught SIGINT ..."
  X=`expr ${X} + 500`
  if [ "${X}" -gt "2000" ]
  then
    echo "Okay, I'll quit ..."
    exit 1
  fi
}

### main script
X=0
while :
do
  echo "X=$X"
  X=`expr ${X} + 1`
  sleep 1
done

위의 스크립트는 CTRL-C를 캐치하여 종료하지 않고 실행하면서 변수 값을 변경합니다. 이것이 유용성에 있어 어떤 긍정적이고 부정적인 효과를 미치는지는 독자의 연습으로 남겨 둡니다. 이 예시는 4번 인터럽트 (혹은 2000초) 이후에 종료합니다. 모든 쉘은 처리할 기회 없이 kill -9 <PID>에 의해 강제종료될 수 있습니다.

다음은 공통 인터럽트에 대한 표입니다.

번호 시그널 의미
0 0 쉘에서 종료했을 때
1 SIGHUP 깔끔한 정리
2 SIGINT 인터럽트
3 SIGQUIT 종료
6 SIGABRT 중단
9 SIGKILL 강제종료(trap 인식 안됨)
14 SIGALRM 알람 시계
15 SIGTERM 프로그램 종료

스크립트가 자체적으로 신호를 무시하는 환경 (예 : nohup 제어)에서 시작된 경우 스크립트는 해당 신호도 무시합니다.

반응형
반응형

출처 : https://stackoverflow.com/questions/14392432/checking-a-file-existence-on-a-remote-ssh-server-using-python

Python을 사용하여 원격 SSH 서버에서 파일 존재 확인

A와 B 2개의 서버가 있습니다. A 서버에서 이미지 파일을 B 서버로 보낸다고 가정합니다. 하지만 A 서버에서 파일을 보내기 전에 B 서버에 비슷한 파일이 있는지 확인하고 싶습니다. 저는 os.path.exists()를 사용하였지만 작동하지 않았습니다.

print os.path.exists('ubuntu@serverB.com:b.jpeg')

결과는 B 서버에 존재하는 파일이 있어도 false를 리턴합니다. 저는 구문 오류인지 확실하지 않으며 이 문제를 해결하기 위한 더 좋은 방법이 있을까요? 감사합니다.


1개의 답변

os.path 함수는 같은 컴퓨터의 파일에서만 작동합니다. 이는 경로(paths)에서만 작동하며, ubuntu@serverB.com:b.jpeg은 경로가 아닙니다.

이를 이루기 위해서, 원격으로 스크립트를 실행해야 합니다. 다음처럼 하면 작동할 것입니다.

def exists_remote(host, path):
    """SSH로 접근가능한 호스트의 경로에 파일이 있는지 검사합니다."""
    status = subprocess.call(
        ['ssh', host, 'test -f {}'.format(pipes.quote(path))])
    if status == 0:
        return True
    if status == 1:
        return False
    raise Exception('SSH failed')

다른 서버에 파일이 있는지 알려면

if exists_remote('ubuntu@serverB.com', 'b.jpeg'):
    # 원격 파일이 있으면...

이 방법은 100ms 이상 걸릴수도 있고 매우 느릴 수 있습니다.

반응형
반응형

출처 : https://superuser.com/questions/403800/how-can-i-make-the-bash-backtick-operator-keep-newlines-in-output

bash backtick() 연산자로 출력의 개행을 어떻게 유지할 수 있을까요?

backtick() 치환에 bash가 개행 문자를 먹지 않도록 하는 방법이 있습니까?

예를 들면

var=`echo line one && echo line two`
echo $var

line one line two

하지만 제가 원하는 것은 다음과 같습니다.

var=`echo line one && echo line two` # plus some magic
echo $var

line one
line two

3개의 답변 중 1개를 추려냄

이는 backtick() 치환 문제가 아닌 echo의 문제입니다. 제어 문자가 작동하려면 변수에 따옴표를 사용해야 합니다.

$ var=`echo line one && echo line two`
$ echo "$var"
line one
line two
반응형
반응형

출처 : https://stackoverflow.com/questions/17097643/search-for-does-not-contain-on-a-dataframe-in-pandas

Pandas 데이터프레임에서 "포함되지 않은 것" 찾기

저는 몇가지 검색을 수행했지만 df["col"].str.contains(word)로 데이터프레임을 제외하는 방법을 알 수 없습니다. 하지만, 저는 contains를 반대로 수행할 방법, 즉 데이터프레임의 여집합을 구하는 방법이 있는지 궁금합니다. 예: !(df["col"].str.contains(word)) 의 효과

DataFrame 방법을 통해 할 수 있는 방법이 있을까요?


6개의 답변

(불리언 데이터에서 not처럼 실행하는) 반전(invert, ~) 연산자를 사용할 수 있습니다.

new_df = df[~df["col"].str.contains(word)]

new_df는 RHS에 의해 복사되는 곳입니다.

contains는 정규 표현식도 받아 들입니다.


만약 위에서 ValueError가 발생하면 그 이유는 여러 타입이 섞인 데이터 타입이라 그렇고 na=False를 사용합니다.

new_df = df[~df["col"].str.contains(word, na=False)]

또는

new_df = df[df["col"].str.contains(word) == False]

를 사용합니다.

반응형
반응형

 퇴근하기 위해 회사를 나왔는데 눈이 많이 내렸다. 지하철을 타고 버스로 환승했다. 유튜브를 보면서 밖의 풍경을 봤는데 언제부터인가 계속 똑같은 풍경만 보였다. 10분 이상 지나서였을까 버스운전사가 내리길 원하시면 내리라고 하셨다. 

 버스에서 내려서 차도를 보았는데 차들이 거의 움직이지 않았다. 염화칼슘을 미리 뿌려놓치 않았는지 눈도 거의 치워져 있지 않았다. 걸어가면서 갈 수 있는 버스가 있으면 타려고 했는데 그런 일은 일어나지 않았다. 가고 있는 길이 맞는게 싶어 네이버 지도 앱을 보면서 지금 집에 가는 길이 맞는지 확인도 하였다. 대관령에 눈 와서 차가 멈춰 있을 때보다 더 심각해 보이는 상황 같다. ㄷㄷ

 다음은 언덕 시작부분에서 언덕 아래를 찍은 사진이다.

 어느덧 언덕 길의 중간쯔음 올라가고 있었고 이 때부터 차도에 몇 대의 차만 보였다. 어떤 차는 타이어 문제인지 못 올라가는 차도 있었다. 계속 조심하면서 걸었고 편의점에서 음료수를 사서 집에 도착했다. 퇴근 시간이 한 시간 반이 걸렸다. ㄷㄷ

반응형
반응형

mdviewer

소개

마크다운 문서를 공유하는 간단한 방법

A simple way to share markdown docs

홈페이지 : https://mdviewer01.herokuapp.com/

github 주소 : https://github.com/SDRLurker/mdviewer

mdviewer는 무엇입니까?

What is mdviewer?

mdviewer 는 마크다운 파일의 URL을 입력하여 정적인 HTML 웹페이지로써 마크다운을 렌더링하고 다른 사람과 공유할 수 있는 페이지의 정적 링크를 제공합니다.

mdviewer is a web application that lets you enter the URL of a markdown file, renders that markdown as a static HTML web page, and gives you a stable link to that page which you can share with others.

mdviewer는 오픈소스 프로젝트입니다.

mdviewer is an open source project.

추가적인 질문은 어디에 할 수 있을까요?

Where can I ask additional questions?

mdviewer의 좋은 기능이나 버그 리포트를 제안하고 싶으시면 mdviewer 프로젝트의 issue 를 열어주세요. 또는 아래의 Disqus에 당신의 질문을 남겨주세요.

If you would like to propose an enhancement to mdviewer or file a bug report, please open an issue in the mdviewer project on GitHub. Please post your questions about using mdviewer in the below Disqus.

 
반응형
반응형

출처 : https://en.wikipedia.org/wiki/Stunnel

Stunnel

Stunnel은 보편적인 TLS/SSL 터널링 서비스에 사용되는 오픈 소스 멀티 플랫폼 응용프로그램입니다.

Stunnel은 TLS 또는 SSL을 사용하지 않는 클라이언트 또는 서버에 암호화된 보안 연결을 제공하는 데 사용할 수 있습니다. 이 프로그램은 유닉스와 비슷한 운영체제 대부분과 윈도우즈를 포함하여 다양한 운영체제에서 실행됩니다. Stunnel은 OpenSSL 라이브러리를 사용하여 TLS 또는 SSL 프로토콜을 구현합니다.

Stunnel은 SSL 접속을 보안 연결하기 위해 X.509 디지털 인증서로 공개키 암호를 사용합니다. 클라이언트는 선택적으로 인증서를 통해 인증 받을 수 있습니다.

libwrap에 대해 링크된 경우, 프록시-방화벽 서비스로도 작동하도록 구성할 수 있습니다.

Stunnel은 Michal Trojnara에 의해 관리되고 있고 OpenSSL을 제외하고 GNU GPL (General Public License) 조건에 따라 릴리스됩니다.

시나리오 예시

예를 들어, SSL이 아닌 SMTP 메일 서버로 SSL 보안 연결을 제공하기 위해 stunnel을 사용할 수 있습니다. SMTP 서버는 25번 포트로 TCP 접속을 한다 가정하면, stunnel에 SSL 포트로 465로 설정하고 SSL이 아닌 포트를 25로 설정합니다. 메일 클라이언트는 SSL을 통해 포트 465로 접속합니다. 클라이언트의 네트워크 트래픽은 stunnel 응용프로그램으로 SSL을 통해 전달되어 트래픽을 투명하게 암호화 / 복호화하고 보안되지 않은 트래픽을 포트 25로 로컬로 전달합니다. 메일 서버는 비 SSL 메일 클라이언트로 봅니다.

stunnel 프로세스는 보안이 적용되지 않은 메일 애플리케이션과 동일하거나 다른 서버에서 실행될 수 있습니다. 그러나 두 시스템은 일반적으로 보안 내부 네트워크의 방화벽 뒤에 있습니다 (침입자가 포트 25에 직접 보안되지 않은 연결을 만들 수 없음).

반응형
반응형

출처 : https://stackoverflow.com/questions/67093/how-do-i-quickly-rename-a-mysql-database-change-schema-name

MySQL 데이터베이스의 이름(스키마 이름 변경)을 빠르게 변경하는 방법?

MySQL 매뉴얼에서 이를 다루고 있습니다.

주로 저는 데이터베이스를 덤프하여 새로운 이름으로 불러오고는 했습니다. 이는 매우 큰 데이터베이스를 위한 선택지는 아닙니다. RENAME {DATABASE | SCHEMA} db_name TO new_db_name;나쁜 일을 하고 소수에 버전에서만 존재하며 무엇보다도 나쁜 생각입니다.

이것은 MyISAM과는 매우 다르게 InnoDB에서 작동해야 합니다.


49개의 답변 중 1개

InnoDB에서, 다음은 잘 작동합니다: 새로운 빈 데이터베이스를 만들고 새로운 데이터베이스로 각 테이블의 이름을 변경합니다.

RENAME TABLE old_db.table TO new_db.table;

그 후에 권한을 조절할 필요가 있습니다.

shell에서 스크립트로 다음 중 하나를 사용할 수 있습니다.

mysql -u username -ppassword old_db -sNe 'show tables' | while read table; \ 
    do mysql -u username -ppassword -sNe "rename table old_db.$table to new_db.$table"; done

또는

for table in `mysql -u root -ppassword -s -N -e "use old_db;show tables from old_db;"`; do mysql -u root -ppassword -s -N -e "use old_db;rename table old_db.$table to new_db.$table;"; done;

메모:

  • -p 옵션과 암호 사이에는 공백이 없습니다. 데이터베이스에 암호가 없는 경우 -u username -ppassword 부분을 제거하십시오.
  • 일부 테이블에 트리거가 있는 경우 위의 방법을 사용하여 다른 데이터베이스로 이동할 수 없습니다. (잘못된 스키마 트리거 오류가 발생합니다) 이 경우 기존 방법을 사용하여 데이터베이스를 복제한 다음 이전 데이터베이스를 삭제하십시오.
    mysqldump old_db | mysql new_db
  • 만약 stored 프로시저가 있다면 다음처럼 복사할 수 있습니다.
    mysqldump -R old_db | mysql new_db
반응형
반응형

출처 : https://stackoverflow.com/questions/929612/how-to-customize-show-processlist-in-mysql

MySQL에서 'show processlist' 조건을 주는 방법?

저는 시간으로 다음을 정렬하고 싶습니다만, 방법이 없어 보입니다 ?

mysql> show processlist;
+--------+-------------+--------------------+------+---------+--------+----------------------------------+------------------------------------------------------------------------------------------------------+
| Id     | User        | Host               | db   | Command | Time   | State                            | Info                                                                                                 |
+--------+-------------+--------------------+------+---------+--------+----------------------------------+------------------------------------------------------------------------------------------------------+
|      1 | system user |                    | NULL | Connect | 226953 | Waiting for master to send event | NULL                                                                                                 | 
|      2 | system user |                    | v3   | Connect |  35042 | Locked                           | update postings a
                                left join cities b on b.id=a.job_city_id
                                left join states h on h.id=b.stat | 
| 313888 | irnadmin    | 172.19.0.239:40136 | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 314075 | irnadmin    | 172.19.0.239:41113 | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 314118 | irnadmin    | 172.19.0.239:41282 | v3   | Query   |  34978 | freeing items                    | SELECT id, screen_name, type, active, bound, LastLogin, robotno, protocol FROM accounts WHERE email_ | 
| 314686 | irnadmin    | 172.19.0.239:43251 | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 314732 | irnadmin    | 172.19.0.239:43436 | v3   | Query   |  34978 | freeing items                    | SELECT id, screen_name, type, active, bound, LastLogin, robotno, protocol FROM accounts WHERE email_ | 
| 314984 | irnadmin    | 172.19.0.239:44366 | v3   | Sleep   |      2 |                                  | NULL                                                                                                 | 
| 315051 | irnadmin    | 172.19.0.239:44713 | v3   | Query   |      0 | NULL                             | NULL                                                                                                 | 
| 315198 | irnadmin    | 172.19.0.239:51569 | v3   | Sleep   |      2 |                                  | NULL                                                                                                 | 
| 315280 | irnadmin    | 172.19.0.239:51849 | v3   | Query   |  34978 | freeing items                    | SELECT id, email_address, type, closed, robotno FROM accounts WHERE screen_name = 'ShantanuS'        | 
| 315320 | irnadmin    | 172.19.0.239:52045 | v3   | Query   |  34978 | freeing items                    | SELECT id, screen_name, type, active, bound, LastLogin, robotno, protocol FROM accounts WHERE email_ | 
| 315384 | irnadmin    | 172.19.0.239:52463 | v3   | Sleep   |      1 |                                  | NULL                                                                                                 | 
| 452248 | irnadmin    | 172.19.0.28:54899  | v3   | Query   |  34978 | freeing items                    | SELECT id, email_address, type, closed, robotno FROM accounts WHERE screen_name = 'LIZW0218'         | 
| 452291 | irnadmin    | 172.19.0.28:55045  | v3   | Sleep   |      1 |                                  | NULL                                                                                                 | 
| 452316 | irnadmin    | 172.19.0.28:55144  | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 452353 | irnadmin    | 172.19.0.28:55278  | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 452382 | irnadmin    | 172.19.0.28:55371  | v3   | Query   |  34978 | freeing items                    | SELECT o.account_id FROM online o JOIN accounts a ON a.id=o.account_id WHERE o.server_id IS NULL AND | 
| 452413 | irnadmin    | 172.19.0.28:55479  | v3   | Sleep   |      1 |                                  | NULL                                                                                                 | 
| 452541 | irnadmin    | 172.19.0.28:55946  | v3   | Query   |  34978 | freeing items                    | SELECT o.account_id FROM online o JOIN accounts a ON a.id=o.account_id WHERE o.server_id IS NULL AND | 
| 452626 | irnadmin    | 172.19.0.28:56215  | v3   | Sleep   |      2 |                                  | NULL                                                                                                 | 
| 452711 | irnadmin    | 172.19.0.28:39916  | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 452781 | irnadmin    | 172.19.0.28:40161  | v3   | Sleep   |      1 |                                  | NULL                                                                                                 | 
| 452904 | irnadmin    | 172.19.0.28:40955  | v3   | Query   |  34978 | freeing items                    | select a.id, aa.screen_name, i.requester from interview_requests i left join accounts aa on aa.id=i. | 
| 453014 | irnadmin    | 172.19.0.28:41291  | v3   | Query   |  34978 | freeing items                    | SELECT o.account_id FROM online o JOIN accounts a ON a.id=o.account_id WHERE o.server_id IS NULL AND | 
| 453057 | irnadmin    | 172.19.0.28:41377  | v3   | Query   |  34978 | freeing items                    | select a.id, aa.screen_name, i.requester from interview_requests i left join accounts aa on aa.id=i. | 
| 453084 | irnadmin    | 172.19.0.28:41441  | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 453112 | irnadmin    | 172.19.0.28:41536  | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 453156 | irnadmin    | 172.19.0.28:41653  | v3   | Query   |  34978 | freeing items                    | SELECT protocol FROM accounts WHERE email_address= '***@gtalk.jabber.jobirn.c | 
| 453214 | irnadmin    | 172.19.0.28:41800  | v3   | Sleep   |      5 |                                  | NULL                                                                                                 | 
| 453243 | irnadmin    | 172.19.0.28:41991  | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 453313 | irnadmin    | 172.19.0.28:42255  | v3   | Query   |  34978 | freeing items                    | SELECT o.account_id FROM online o JOIN accounts a ON a.id=o.account_id WHERE o.server_id IS NULL AND | 
| 453396 | irnadmin    | 172.19.0.28:53718  | v3   | Sleep   |      2 |                                  | NULL                                                                                                 | 
| 453476 | irnadmin    | 172.19.0.28:54019  | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 453561 | irnadmin    | 172.19.0.28:54352  | v3   | Sleep   |      3 |                                  | NULL                                                                                                 | 
| 453594 | irnadmin    | 172.19.0.28:54456  | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 453727 | irnadmin    | 172.19.0.28:55166  | v3   | Query   |  34978 | freeing items                    | SELECT id, screen_name, type, active, bound, LastLogin, robotno, protocol FROM accounts WHERE email_ | 
| 453786 | irnadmin    | 172.19.0.28:55320  | v3   | Sleep   |      4 |                                  | NULL                                                                                                 | 
| 610140 | irnadmin    | 172.19.0.28:33848  | v3   | Query   |  34978 | freeing items                    | select a.id, aa.screen_name, i.requester from interview_requests i left join accounts aa on aa.id=i. | 
| 685119 | irnadmin    | 172.19.0.27:37251  | v3   | Query   |  34980 | Sending data                     | select postings.id id,category, job_desc_title,
        IF(c1.name is not null,c1.name,IF(c2.name is not n | 
| 685226 | irnadmin    | 172.19.0.139:57274 | v3   | Query   |  34735 | Locked                           | SELECT job_desc_title,job_desc,job_state_name,job_city_name,company_categories.name,postings.categor | 
| 685229 | irnadmin    | 172.19.0.139:57278 | v3   | Query   |  34735 | Locked                           | SELECT job_desc_title,job_desc,job_state_name,job_city_name,company_categories.name,postings.categor | 
| 685232 | irnadmin    | 172.19.0.139:57283 | v3   | Query   |  34734 | Locked                           | select job_desc_title,job_desc from postings where id=287650                                         | 
| 685233 | irnadmin    | 172.19.0.139:57286 | v3   | Query   |  34734 | Locked                           | SELECT accounts.screen_name,postings.url url, accounts.type owner_type, postings.id ID, postings.job | 
| 685235 | irnadmin    | 172.19.0.28:37502  | v3   | Query   |  34734 | Locked                           | SELECT accounts.screen_name,postings.url url, accounts.type owner_type, postings.id ID, postings.job | 
| 686496 | irnadmin    | 172.19.0.239:33306 | v3   | Query   |  32589 | Locked                           | SELECT accounts.screen_name,postings.url url, accounts.type owner_type, postings.id ID, postings.job | 
| 686503 | irnadmin    | 172.19.0.28:54051  | v3   | Query   |  32588 | Locked                           | SELECT job_desc_title, job_desc, IF(postings.category IS NOT NULL, postings.category, job_categories | 
| 709550 | root        | localhost          | v3   | Query   |      0 | NULL                             | show processlist                                                                                     | 
| 710084 | irnadmin    | 172.19.0.27:53285  | NULL | Query   |      0 | removing tmp table               | show status where Variable_name='Threads_running'                                                    | 
+--------+-------------+--------------------+------+---------+--------+----------------------------------+------------------------------------------------------------------------------------------------------+
49 rows in set (0.00 sec)

7개의 답변 중 1개

SQL의 새 버전은 information_schema 에서 프로세스 리스트를 지원합니다.

SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST

당신은 원하는 방법으로 정렬(ORDER BY)할 수 있습니다.

INFORMATION_SCHEMA.PROCESSLIST는 MySQL 5.1.7에 추가되었습니다. 당신이 사용하는 버전을 다음처럼 알 수 있습니다.

SELECT VERSION()
반응형

+ Recent posts