본문 바로가기

Linux/MySQL

Perl-DBD-MySQL 설치 후 libmysqlclient.so.xx를 찾지 못해 발생하는 에러..

서버 관리를 해주다보면.. 참 어처구니 없는 일들이 많이 일어난다.

오늘의 문제는 다음과 같은 에러가 뜨는것.....

/usr/bin/perl: relocation error: /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/auto/DBD/mysql/mysql.so: symbol mysql_init, version libmysqlclient_15 not defined in file libmysqlclient.so.15 with link time reference

구글을 찾아보고 이것 저것 해봤는데..
고객 서버의 구성이 참 독특하기도 하고, 서비스가 죽으면 안된다는 이야기...
원인은 perl에서 MySQL커넥션을 위한 라이브러리를 찾을때 MySQL의 라이브러리를 찾지 못한다는 이야기 인데..

머 에러야 그렇다고 치자..

원인을 찾아 /usr/lib/mysql을 찾았는데..
엥?? 폴더가 없다.. -_-;;;;;;

어쩌라는거지;;;

ldd /usr/bin/mysqlbinlog를 해보니 libmysqlclient.so.15의 경로가 들어가 있어야 할 자리에.. 아무런 내용이 없다.

쩝.. 그냥 mysql을 재설치 하면 간단하게 해결이 되겠지만..
고객은 MySQL서버가 단 1초라도 죽으면 안된단다 ..

그래서 내린 특단의 야매 조치..

동일한 OS를 Virtual Box를 이용해 설치 한 뒤 동일한 버전의 MySQL을 설치.
그리고 /usr/lib에 있는 mysql 폴더를 통째로 압축.
문제의 서버로 압축파일 전송 후 압축 해제.

perl 에러가 발생한 파일을 다시 확인해 보니 정상 동작.

후...... /usr/lib/mysql을 왜 지웠을까.. '_' ?