sugar.kim

[mysql] linux 서버 내에 mysql5.7 설치하기 본문

DEV/dev.실무내용정리

[mysql] linux 서버 내에 mysql5.7 설치하기

김슈가 2023. 2. 15. 11:36
728x90
반응형

국책 과제 프로젝트 서버에  mysql 설치 후 사용할 일이 생겼다.

국책 과제 프로젝트에서 사용중인 솔루션의 버전과 현재 배포된 솔루션의 버전이 달라 DB 정보에서 읽어오는 값이 달라지는 문제가 생겼다. 

로그인 시에 특정 테이블의 컬럼 값으로 외부 아이피 값을 받아와 처리 되는데, 국책 과제용으로 만들어진 솔루션은 외부 아이피 값 때문에 로그인 처리가 되지 않는 문제였다. 

해결 방안으로 국책과제 서버에 mysql 설치 후 동일하게 DB 이전 작업 진행 후, 국책 과제 서버의 mysql 을 DB로 사용하는 방법(국책과제 서버의 DB에는 특정 테이블의 컬럼 값을 바꾸어도 현재 배포된 솔루션이 영향을 받을 일이 없다)으로 처리했다.

1. mysql 5.7 버전 설치 전, 서버의 버전을 확인. (NAME="CentOS Linux" VERSION="7 (Core)")

cat /etc/os-release

2. mysql 5.7 버전 설치 진행 (※참고)

# (1) wget 설치
yum install wget
# (2) yum repository Package 다운로드
wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
# (3) Package 설치
yum localinstall mysql57-community-release-el7-7.noarch.rpm
# (4) MySQL yum repository 활성화
yum repolist enabled | grep "mysql.*-community.*"
# (5) MySQL 설치 
yum install mysql-community-server mysql mysql-libs mysql-devel mysql-server
# (6) MySQL 서비스 Start 
systemctl start  mysqld.service

 (6) 까지 진행하였는데 mysqld.service를 찾을 수 없다는 에러 메시지가 노출되었다. 이에 다른 버전의 mysql 설치를 진행했다. (패키지 꼬임의 시작...) 

3. mysql 5.7 버전인데 (mysql57-community-release-el7-11.noarch.rpm) 설치 진행 (※참고)

# wget이 없을 경우, yum -y install wget으로 wget을 먼저 설치 나는 앞에 했음
# (1) wget으로 rpm (RedHat Package Manager약자)파일 설치 
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
# (2) 관련 패키지 설치 rpm은 레드햇 계열의 패키지 설치 및 관리 도구(ivh옵션 붙여서 의존성 문제 나지 않도록하기)
sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm

(2)까지 진행했는데 버전이 앞에 설치했던 rpm 파일과 버전이 꼬여서 진행이 되지 않았다. rm -rf 명령어로 파일 삭제를 하여도 진행이 되지 않는 상황. 아래와 같이 해결했다. 

4. yum install/update 과정 꼬인 패키지 풀어내기 (※참고)

yum clean all
yum --skip-broken update
rpm --rebuilddb

다행스럽게도 해당 명령어들 실행 후, 설치가 정상적으로 진행되었다. 아래는 설치 진행중에 또 만난 에러. 

5. mysql 설치 오류 (RPM GPG Key Error) (※참고)

#  2022년용 GPG Key를 import 하고 난 뒤에 정상적으로 install 가능
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

6. mysqld 서비스 시작과 허용

systemctl start mysqld
systemctl enable mysqld

7. mysql 임시비밀번호 가져오기

awk '/temporary password/{print $11}' /var/log/mysqld.log

8. mysql 접속

mysql -uroot -p임시비밀번호

9. mysql 5.6 이후 부터 보안정책이 까다로워져서 비밀번호 변경해야만 mysql 사용 가능 어렵게 바꿔야함. (※참고)

# (1) 패스워드 입력
SET PASSWORD = PASSWORD('임시비밀번호');
# (2) mysql 비밀번호 정책 삭제
uninstall plugin validate_password;
# (3) 비밀번호 바꾸기
update mysql.user set authentication_string=password('바꾸고 싶은 비밀번호’) where user='root';"
# (4) 적용
FLUSH PRIVILEGES;"
# (5) mysql 나가기
exit
# (6) root 다시 접속하기 아래 명령어 친 후, 바꾼 비밀번호 치고 들어가면 됨.
mysql -uroot -p

 

728x90
반응형
Comments