2010-04-20 3 views
0

ALTER TABLE 며칠이 걸릴 수 있습니다.이 기간 동안 네트워크 문제로 인해 연결이 끊어지지 않을 가능성이 있습니다. ALTER TABLE (또는 CREATE TABLE ... SELECT ... 또는 다른 매우 긴 실행중인 쿼리)을 시작하고 항상 연결을 유지하지 않고 실행 상태로 둘 수 있습니까?연결을 유지하지 않고 mysql 마이그레이션을 계속 실행할 수 있습니까?

(화면 + 콘솔 mysql 클라이언트의 명백한 솔루션은 서버에서 실행중인 ssh가 없기 때문에 쉽게 작동하지 않으며 mysqld 만).

답변

0

는 당신은 쉘에서 로그 아웃 할 수

nohup myscript.ksh >logfile 2>&1 & 

nohup을 사용하여 쉘 스크립트를 호출이

#!/usr/bin/ksh 

muser=username 
mpass=password 
mhost=hostname 
mdb=databasename 

mysql --user=$muser --password=$mpass --host=$mhost $mdb < alter.sql 

같은 쉘 스크립트에서 호출하는 스크립트에서 테이블 변경 명령을 넣어 세션 즉시. 작업을 실행 중이라는 경고 메시지가 표시 될 수 있지만 무시해도 안전합니다.

아마도 sql 스크립트를 건너 뛰고 명령을 셸 스크립트에 넣을 수 있습니다. 구문을 기억하지 못합니다.

+0

내 답변에서 즉시 명확하지 않은 경우 mysql 데이터베이스에 원격으로 연결할 수있는 모든 Linux/unix 상자에서 실행할 수 있습니다. – coolgeek

+0

로 작동하지 않습니다. 나는 서버에 mysql 만 있고 ssh가 없다고 말했다. 다른 컴퓨터에서 스크립트를 시작하면 네트워크 연결이 실행되는 모든 날 동안 실패 할 수 있습니다. – taw

+0

먼저, ssh가 아닌 셸 스크립트의 mysql 명령을 통해 데이터베이스에 연결합니다. 둘째, nohup에 대한 맨 페이지를 읽는다. 이것은 정확하게 설계된 것입니다. 연결이 종료 될 위험이있는 장기 실행 작업. 또한 출력물을 로깅하고 작업을 배경으로 두는 것에 유의하십시오. – coolgeek

관련 문제