우수한 소프트웨어와 실용적인 튜토리얼
phpMyAdmin에서 MySQL 데이터베이스를 가져올 때 종종 시간 초과 오류가 발생하면 어떻게 해야 합니까?
데이터베이스 관리를 위한 인기 웹 인터페이스 도구인 phpMyAdmin은 개발자와 관리자에게 편리한 MySQL 작업을 제공합니다. 하지만 많은 사용자가 대용량 SQL 파일을 가져올 때 자주 발생하는 "스크립트 시간 초과" 또는 "500 내부 서버 오류" 오류에 좌절감을 느낍니다. 신중하게 준비한 수 기가바이트 규모의 데이터베이스 백업 파일이 가져오기 도중 중단되는 상황을 상상해 보세요. 이는 시간 낭비일 뿐만 아니라 데이터가 불완전하거나 손실될 수도 있습니다. 특히 공유 호스팅이나 리소스가 제한된 환경에서 이러한 문제는 흔히 발생합니다.
이 문제의 근본 원인은 phpMyAdmin의 실행 시간 제한(기본 300초)과 PHP에 설정된 메모리 제한(예: max_execution_time 및 memory_limit)에 있습니다. PHP 시간 제한을 9999초로 설정하더라도 phpMyAdmin의 내부 ExecTimeLimit 매개변수가 이 제한을 무시하는 경우가 많아 복잡한 쿼리나 대용량 데이터를 처리할 때 스크립트가 강제로 종료됩니다. 또한, 높은 서버 부하, 업로드 파일 크기 제한(upload_max_filesize) 또는 권한 문제는 시간 초과 위험을 악화시킬 수 있습니다. Stack Overflow와 MySQL 커뮤니티 피드백에 따르면 이러한 구성 병목 현상으로 인해 70% 이상의 가져오기 실패가 발생했습니다.
다행히 이 문제는 해결 불가능한 것은 아닙니다. phpMyAdmin 설정을 조정(예: $cfg['ExecTimeLimit'] = 0으로 설정하여 시간 초과를 비활성화)하고, PHP.ini 파일을 최적화(memory_limit을 512MB 이상으로 증가)하고, post_max_size를 조정하면 가져오기 효율성을 크게 향상시킬 수 있습니다. 매우 큰 파일의 경우 MySQL과 같은 명령줄 도구로 전환하여 소스 코드에서 직접 가져오는 것이 좋습니다(source your.sql). 이렇게 하면 웹 인터페이스의 제약을 완전히 피할 수 있습니다. 한편, 서버 로그(/var/log/apache2/error.log)를 모니터링하면 잠재적 위험을 미리 파악하는 데 도움이 될 수 있습니다. 간단히 말해, 이러한 기술을 숙달하면 현재의 문제점을 해결할 뿐만 아니라 향후 데이터베이스 운영 및 유지 관리를 위한 기반을 마련하여 개발 프로세스를 더욱 원활하고 효율적으로 만들 수 있습니다.
빠른 해결책
먼저, phpMyAdmin이 어떤 PHP 버전을 사용하는지 확인하세요. 홈페이지의 웹사이트 서버 열에서 PHP 버전이 8.0.30인 것을 확인할 수 있습니다.
CyberPanel로 돌아가서 PHP 구성 편집 페이지를 열고 PHP 버전을 선택한 후 PHP 8.0을 선택하세요.
max_execution_time과 memory_limit 값을 늘리세요. 서버에 메모리가 더 많으면 memory_limit을 더 높게 설정하고 max_execution_time을 3600 또는 9999로 설정하세요.
업로드 파일 크기 제한인 upload_max_filesize를 4096M으로 늘려주세요. 업로드 가능한 최대 파일 크기는 4G입니다.
변경 사항을 저장한 후 PHP 서비스를 다시 시작합니다.
phpMyAdmin에서 데이터베이스를 가져올 때 기본적으로 부분 가져오기가 선택되어 있습니다. 가져오기가 실패하면 다시 가져올 수 있습니다. 가져오기가 완료된 후 500 오류가 발생할 수 있습니다. 잠시 후 페이지를 새로 고치세요. 새로 고치고 phpMyAdmin에 접속하면 데이터베이스 가져오기가 성공적으로 완료됩니다!