[MySQL] yum으로 MySQL 설치 (CentOS 9)
VMware CentOS9 사용!
1. Yum 리포지토리 설치용 MySQL 다운로드 링크 확인
1-1. 하기 링크 접속
https://dev.mysql.com/downloads/repo/yum/
MySQL :: Download MySQL Yum Repository
Support EOL for Fedora 38 Per the MySQL Support Lifecycle policy regarding ending support for OS versions that have reached end of life, we plan to discontinue building all MySQL binaries for the Fedora 38 platform as of May 21, 2024. See Fedora 38 End of
dev.mysql.com
1-2. CentOS9에 설치할 예정이므로, 첫 번째 DownLoad 클릭
(*OS버전에 따라 링크가 다르게 구성 되어있으므로 잘 확인)
1-3. 아래 "No Thanks, just start my download."에서 마우스 우클릭 > [링크 주소 복사]
2. MySQL 레포지토리 RPM 파일 설치 (wget vs yum install)
MySQL은 yum으로 직접 설치가 불가능하기 때문에 mysql-community-release 패키지를 설치해
먼저 MySQL 저장소를 추가해야 함. (*이유는 하기 참조)
|
2-1.아래와 같은 명령어로 실행
( -y : 설치시 나타나는 모든 물음에 yes를 사용하겠다는 옵션값으로 입력시 추가 입력 없이 설치 가능)
sudo yum install https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm
이 과정에서
wget을 사용하면 안되나? 라는 의문이 들었다. (*하기 참조)
yum install과 wget의 차이점: wget:
|
2-2. yum --showduplicates list 명령으로 설치 가능한 모든 버전 확인 가능
3. MySQL 설치
3-1 위에서 가장 최신 버전을 확인하고 아래 명령어를 통해 설치해줌
(패치 더 된 버전 받으면 좋겠지만 연습이니까 ㄱㅊ^^)
sudo yum -y install mysql-community-server-8.4.2
중략
3-2. mysqladmin --version, mysql -V 명령어로 mysql 버전을 확인할 수 있음
4. MySQL 서버 시작 및 접속
처음부터 MySQL을 수동으로 설치하거나 특정 설정으로 초기화가 필요할 때는
(위에서 언급한 wget으로 리포지토리를 설치한 후에 MySQL을 설치한 경우 등)
mysqld --initialize 또는 mysqld --initialize-insecure 명령어를 실행해 데이터 디렉토리와 시스템 테이블을 준비해야 함
mysqld --default-file=/etc/my.cnf
mysqld --initialize : 비밀번호를 가진 관리자 계정을 생성 (비번은 에러 로그 파일로 기록)
mysqld --initialize-insecure : 비밀번호가 없는 관리자 계정을 생성
4-1. 하기 명령어를 통해 서버를 시작
systemctl start mysqld
4-2. 하기 명령어를 통해 서버 상태 확인
systemctl status mysqld
Active: active (running) / Status: "Server is operational" 으로 서버는 정상적으로 동작중
4-2-1. 재부팅시 MySQL 서버가 자동 시작되도록 설정
systemctl enable mysqld
명령어로 가능하지만 이미
Loaded: loaded (...; enabled; ...) : 부팅시 자동 시작으로 되어있음
4-3. 서버 연결 테스트 (서버에 접속하기)
4-3-1.서버에 접속하기 위해 root계정 비밀번호 확인
sudo grep 'temporary password' /var/log/mysqld.log
root@localhost : vSpuE2qk5/&1
4-3-2. 하기 명령행 인자를 통해 접속
* 여러 가지 형태의 명령행 인자를 통해 접속을 시도할 수 있음. 해당 게시글 최하단에 이어서..
mysql -uroot -p
비밀번호를 변경해야 함
5. root 계정 비밀번호 변경
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mysqlserver123!!!';
IDENTIFIED BY 뒤에 변경할 비밀번호 입력
exit 로 접속 종료
여기까지 기본적인 설치는 마무리!
6. MySQL 서버 종료
systemctl stop mysqld
# 원격으로 셧다운하는 경우
mysql> SHUTDOWN;
MySQL 서버가 종료될 때 모든 커밋된 내용을 데이터 파일에 기록하고 종료하기
mysql> SET GLOBAL innodb_fast_shutdown=0;
linux> systemctl stop mysqld // mysql> SHUTDOWN;
innodb_fast_shutdown=0 : 빠른 종료 비활성화.
이 경우 InnoDB는 모든 트랜잭션 로그를 정리하고, 필요한 모든 작업을 수행한 후에 종료.
추가1. 여러 가지 형태의 명령행 인자를 통해 접속
mysql -uroot -p --host=127.0.0.1 --port=3306
MySQL 서버가 로컬에 있다는 것을 의미하지만, TCP/IP 프로토콜을 통해 연결
원격 호스트에 있는 MySQL 서버에 접속할 때는 mysql -uroot -p --host=<IP주소> --port=<포트번호> 형태로만 접속 가능
추가2. 원격 서버에서 MySQL 서버의 접속 가능 여부만 확인
커넥션이 가능한지만 확인하는 경우 하기 명령을 통해 원격지 MySQL 서버가 응답 가능한 상태인지 확인할 수 있음
1. Telnet 프로그램으로 확인
sudo dnf install telnet
설치하고
telnet 10.2.40.61 3306
2. Netcat(nc) 프로그램으로 확인