MYSQL2014. 8. 19. 17:55

/usr/local/mysql/bin/mysqldump --skip-comments --skip-extended-insert --no-data -u root -p -h dev.service.co.kr  project | sed 's/AUTO_INCREMENT=[0-9]* //' > dev.sql

/usr/local/mysql/bin/mysqldump --skip-comments --skip-extended-insert --no-data -u root -p -h db.service.co.kr project  | sed 's/AUTO_INCREMENT=[0-9]* //' > pro.sql

vimdiff dev.sql pro.sql

Posted by 다오나무
MYSQL2012. 7. 31. 23:21

mysql 디비에 등록되는 접속자로그 또는 시스템관련 로그는 디비에 쌓이게 되면 용량이 장난아니게 늘어난다.
일정기간이 지나면 도움도 안될뿐더러 용량만 차지하게 된다.
로그는 그때그때 보는게 최고..

mysql 자체적으로는 자동삭제는 불가능하며 php를 이용한 방법과 crontab에 등록해서 사용하는 방법이 있다.
쉘에서 실행하는 명령은 mysql -e "명령" 이렇게 사용한다.

30일이 지난자료 삭제

mysql -u아이디 -p비밀번호 디비명 -e "DELETE FROM  테이블명 WHERE 날짜필드명 < date_add(date_format( now() , '%Y-%m-%d'), interval -30 day)"


-e 옵션에서 mysql query 뒤에 세미콜론 ;는 사용안하며, 큰따옴표가 사용이 안되므로 쿼리명령어 안에는 작은 따옴표를 사용하면 된다.

-e 옵션과 내부적인 명령의 차이 - 따옴표가 변경된걸 확인할수 있다.
#mysql -u아이디 -p비밀번호 디비명 -e "select date_add(date_format( now() , '%Y-%m-%d'), interval -30 day)"

mysql>select date_add(date_format( now() , "%Y-%m-%d"), interval -30 day);


위 명령을 사용하여 크론탭에 등록해서 사용하면 된다.
한꺼번에 디비를 삭제하면 시스템이 다운될수도 있으니 조금씩 조금씩 삭제하는게 좋다.

Posted by 다오나무
iOS2012. 6. 21. 18:32

@interface TESTAppDelegate : NSObject <UIApplicationDelegate> {

 

 

NSString *DBNAME;

NSString *DBPATH;

 

}


-- m파일 

    NSFileManager *fileManager = [NSFileManager defaultManager];

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectoryNSUserDomainMaskYES);

    NSString *documentsDirectory = [paths objectAtIndex:0];    

    NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent@"Store.sqlite"];

self.DBPATH = writableDBPath;

NSLog(@"writableDBPath is %@", writableDBPath);

    

    BOOL dbexits = [fileManager fileExistsAtPath:writableDBPath];

    if (!dbexits) 

    {

NSLog(@"데이터베이스 카피");

        // 데이터베이스가 존재하지 않으면어플리케이션 Resource아래에서 복사를 한다

        NSString *defaultDBPath = [[[NSBundle mainBundleresourcePathstringByAppendingPathComponent:@"Store.sqlite"];

        NSError *error;

        BOOL success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error];

    }    

   else {

NSLog(@"이미 패스가 잇음");

    }

아 별짓다했네... 3시간동안 강제로 Path따서 햇지만 읽히는건 읽혀지지만... insert가 안되서...
완전 제일 중요한거!!! 앱/Documents <--요놈안에있는놈만 수정이 가능하다!!

Posted by 다오나무
카테고리 없음2012. 3. 14. 11:03

@interface TESTAppDelegate : NSObject <UIApplicationDelegate> {

 

 

NSString *DBNAME;

NSString *DBPATH;

 

}




-- m파일 





    NSFileManager *fileManager = [NSFileManager defaultManager];

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentsDirectory = [paths objectAtIndex:0];    

    NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent: @"Store.sqlite"];

self.DBPATH = writableDBPath;

NSLog(@"writableDBPath is %@", writableDBPath);

    

    BOOL dbexits = [fileManager fileExistsAtPath:writableDBPath];

    if (!dbexits) 

    {

NSLog(@"데이터베이스 카피");

        // 데이터베이스가 존재하지 않으면, 어플리케이션 Resource아래에서 복사를 한다

        NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Store.sqlite"];

        NSError *error;

        BOOL success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error];

    }    

   else {

NSLog(@"이미 패스가 잇음");

    }

별짓다했네... 3시간동안 강제로 Path따서 햇지만 읽히는건 읽혀지지만... insert 안되서...
완전 제일 중요한거!!! /Documents <--요놈안에있는놈만 수정이 가능하다!!

Posted by 다오나무