반응형
한 서버에서 데이터베이스를 백업하고 다른 서버에서 복원하려고합니다.
MySQL 버전은 5.5입니다.
다음 명령을 사용하여 데이터베이스를 복원하려고하면 screen -r
mysql -u root -p password mydb < mydump.sql
ERROR 1005 (HY000) at line 356: Can't create table 'mydb.mytable' (errno: 150)
이것이 foreignkey 제약 문제라는 것을 이해합니다. 덤프 파일에는 다음과 같은 문이 있습니다.
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
그러나 여전히 실패하고 있습니다. 내 두모 파일은 크기가 너무 커서 열어서 편집 할 수 없습니다. 따라서 덤프에 SET FOREIGN_KEY_CHECKS = 0;
을 추가하는 대신 다음과 같이 mysql 명령 줄에서 직접 설정할 수 있습니까?
mysql> SET FOREIGN_KEY_CHECKS=0;
...
mysql> source "mydump.sql";
...
mysql> SET FOREIGN_KEY_CHECKS=1;
작동할까요? 내 데이터베이스 재로드를 완료하는 데 몇 시간이 걸립니다. 그래서 나는 이것에 몇 시간을 보내기 전에 여기에서 도움을 요청하고 있습니다.
도와 주셔서 감사합니다.
해결 방법
일반적으로 저는 2 개의 SQL 파일을 파이프합니다. 먼저 SET FOREIGN_KEY_CHECKS = 0;
이있는 한 줄짜리 파일을 만든 다음 파일을 덤프합니다. 다시 설정하는 것에 대해 걱정할 필요가 없습니다. 현재 세션 동안 만 지속됩니다 (파일이로드되면 종료 됨).
참고로 sed -i 1i "SET FOREIGN_KEY_CHECKS = 0;"을 사용할 수도 있습니다. 파일을 시각적으로 편집하지 않고이 줄을 영구적으로 앞에 추가하려면 dump.sql
.
참조 페이지 https://stackoverflow.com/questions/15033887
반응형
'MySql' 카테고리의 다른 글
MySQL MYSQL-조인으로 쿼리 삭제 (0) | 2021.01.12 |
---|---|
MySQL | 각 범주의 레코드를 하나만 선택하는 방법은 무엇입니까? (0) | 2021.01.12 |
MySQL mysql에서 업데이트 된 행 선택 (0) | 2021.01.12 |
MySQL 삽입 트리거 후 MySQL이 작동하지 않음 (0) | 2021.01.11 |
MySQL Java에서 MySQL에 이미지 저장 (0) | 2021.01.11 |
댓글