Loading...
MySQL 9.5 Reference Manual 9.5의 2.10.3 Problems Using the Perl DBI/DBD Interface의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
Perl에서 ../mysql/mysql.so 모듈을 찾을 수 없다고 보고하는 경우, 문제는 아마도 Perl이 libmysqlclient.so 공유 라이브러리를 찾지 못하기 때문입니다. 다음 방법 중 하나로 이 문제를 해결할 수 있습니다:
libmysqlclient.so를 다른 공유 라이브러리들이 위치한 디렉터리(아마도 /usr/lib 또는 /lib)로 복사합니다.
libmysqlclient.so의 실제 위치를 반영하도록 DBD::mysql을 컴파일할 때 사용한 -L 옵션을 수정합니다.
Linux에서는 libmysqlclient.so가 위치한 디렉터리의 경로명을 /etc/ld.so.conf 파일에 추가할 수 있습니다.
libmysqlclient.so가 위치한 디렉터리의 경로명을 LD_RUN_PATH 환경 변수에 추가합니다. 일부 시스템은 대신 LD_LIBRARY_PATH를 사용합니다.
링커가 다른 라이브러리를 찾지 못하는 경우에도 -L 옵션을 수정해야 할 수 있습니다. 예를 들어, 링커가 libc를 찾지 못하는데 그것이 /lib에 있고, 링크 명령이 -L/usr/lib를 지정하고 있다면, -L 옵션을 -L/lib로 변경하거나 기존 링크 명령에 -L/lib를 추가합니다.
DBD::mysql에서 다음과 같은 오류가 발생하는 경우, 아마도 gcc를 사용하고 있거나(gcc로 컴파일된 오래된 바이너리를 사용 중이거나)일 것입니다:
/usr/bin/perl: can't resolve symbol '__moddi3' /usr/bin/perl: can't resolve symbol '__divdi3'
mysql.so 라이브러리가 빌드될 때 링크 명령에 -L/usr/lib/gcc-lib/... -lgcc를 추가합니다(Perl 클라이언트를 컴파일할 때 make의 출력에서 mysql.so에 대한 부분을 확인하십시오). -L 옵션은 시스템에서 libgcc.a가 위치한 디렉터리의 경로명을 지정해야 합니다.
이 문제의 또 다른 원인은 Perl과 MySQL이 둘 다 gcc로 컴파일되지 않았기 때문일 수 있습니다. 이 경우, 둘 다 gcc로 컴파일하여 불일치를 해결할 수 있습니다.
2.10.2 Installing ActiveState Perl on Windows
3 Upgrading MySQL