문제의 근본 원인
CentOS 7 기본 OpenSSL 버전은 1.1.1입니다. 그러나 MySQL 8.0.27 이하 el7 버전은 OpenSSL 1.0.2가 제공하는 libssl.so.10 및 libcrypto.so.10 라이브러리를 필수로 요구합니다. 따라서 심볼릭 링크로는 해결할 수 없으며, 해당 OpenSSL 버전을 직접 설치해야 합니다.
오프라인 환경을 포함한 완전한 해결 프로세스
1. 의존 패키지 준비 (순서대로 설치 필수)
CentOS 7.9.2009 공식 저장소에서 다음 두 패키지를 다운로드합니다.
openssl-libs-1.0.2k-19.el7.x86_64.rpm-libssl.so.10/libcrypto.so.10을 포함한 핵심 라이브러리openssl-1.0.2k-19.el7.x86_64.rpm- 메인 프로그램 패키지
2. 의존 패키지 설치 (버전 충돌 해결)
# libs 패키지를 먼저 설치해야 함
sudo rpm -ivh openssl-libs-1.0.2k-19.el7.x86_64.rpm --nodeps --force
# 그 다음 openssl 메인 프로그램 설치
sudo rpm -ivh openssl-1.0.2k-19.el7.x86_64.rpm --nodeps --force
3. 설치 확인
ls -l /usr/lib64/libssl.so.10 /usr/lib64/libcrypto.so.10
출력에 파일 경로가 표시되면 정상적으로 설치된 것입니다.
4. 호환 가능한 MySQL 버전 설치 (8.0.28 이상 권장)
# 압축 해제
tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar
# 모든 RPM 패키지 일괄 설치 (의존성 검사 생략)
sudo rpm -ivh mysql-community-*.rpm --nodeps --force
5. MySQL 초기화 및 실행
# 데이터 디렉토리 초기화 (기존 데이터 충돌 방지)
sudo rm -rf /var/lib/mysql
# 초기화 (임시 비밀번호 자동 생성)
sudo mysqld --initialize --user=mysql --datadir=/var/lib/mysql
# 권한 수정
sudo chown -R mysql:mysql /var/lib/mysql
# 서비스 시작 및 부팅 시 자동 실행 설정
sudo systemctl start mysqld
sudo systemctl enable mysqld
6. 로그인 및 비밀번호 변경
# 임시 비밀번호 확인
sudo grep 'temporary password' /var/log/mysqld.log
# MySQL 로그인
mysql -uroot -p
# root 비밀번호 변경 (대소문자, 숫자, 특수문자 포함 필수)
ALTER USER 'root'@'localhost' IDENTIFIED BY '새로운_강력한_비밀번호';
중요 주의사항
| 문제점 | 잘못된 방법 | 올바른 방법 |
|---|---|---|
| 의존성 설치 순서 | openssl 메인 패키지를 먼저 설치 | openssl-libs를 먼저 설치한 후 메인 패키지 설치 |
| 심볼릭 링크 사용 | OpenSSL 1.1 라이브러리를 libssl.so.10으로 링크 | 심볼릭 링크는 버전 검사를 통과하지 못하므로 1.0.2 버전 직접 설치 필수 |
| MySQL 버전 선택 | MySQL 8.0.27 이하 버전 설치 | MySQL 8.0.28+ 버전이 OpenSSL과 호환성이 더 좋음 |
| 권한 설정 누락 | /var/lib/mysql 디렉토리의 소유자 변경 생략 | 초기화 후 반드시 chown -R mysql:mysql /var/lib/mysql 실행 |