[MySQL] yum 설치 By starseat 2022-09-22 11:34:23 db Post Tags 저번 [nginx 설치](https://starseat.net/blog/view/94) 에 이서 `MySQL` 도 설치할 일이 생겨 `MySQL` 설치법을 기록하려 한다. # 설치 준비 - 설치 환경: `Red Hat v7.6` ![image.png](/uploads/_temp/20220922/810fd30acf071fdf26c922525ae92308.png) `yum` 을 사용하여 설치할 것이기 때문에 `yum` 설치 정보를 확인해야 한다. 먼저 [MySQL Community Downloads](https://dev.mysql.com/downloads/repo/yum/) 에 접속하여 설치 버전을 확인해야 한다. 설치할 OS 가 v7 이기에 해당되는 버전의 `Download` 버튼을 클릭한다. ![image.png](/uploads/_temp/20220922/9a3e8a78086ddb772f6e2602d8fbb456.png) 하단의 `No thanks, just start my download.` 를 우클릭 후에 `링크 주소 복사` ![image.png](/uploads/_temp/20220922/c69c2af934768f4add6cf8bf390018b3.png) - 복사된 링크 주소 ``` https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm ``` # 설치 ## MySQL Repository 추가 이제 터미널로 서버에 접속하여 `yum` 으로 설치해야 한다. `yum install` 뒤에 복사된 링크를 붙여 넣는다. ``` yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm ``` ![image.png](/uploads/_temp/20220922/0015698a59dbd9ddfb190d4284b26210.png) 아래 명령어로 `MySQL Repository` 를 확인해보자. ``` // MySQL Repository 목록 확인 yum repolist enabled | grep "mysql.*" // yum search 명령어로 설치 가능한 mysql 패키지 목록 확인 yum search mysql // yum 리스트 확인 yum list mysql* ``` ## MySQL 설치 이제 `MySQL Repository` 가 추가되었으니 설치해보자 ``` yum install -y mysql-server ``` ![image.png](/uploads/_temp/20220922/a22c287ae0f4dc5641046022a8c15155.png) 하단에 `Complete!` 문구가 보이면 정상 설치된 것이다. ## 설치 확인 `mysqld -V` 명령어로 설치된 버전을 확인해보자. ``` [root@-------db ~]# mysqld -V /usr/sbin/mysqld Ver 8.0.30 for Linux on x86_64 (MySQL Community Server - GPL) ``` # 기동 및 접속 ## MySQL 기동 - 기동 ``` systemctl enable mysqld systemctl start mysqld ``` - 확인 ``` systemctl status mysqld ``` ![image.png](/uploads/_temp/20220922/106d3fad9cbe685a0dd9a5712eeecfed.png) ## 접속 서버 설치 과정에서 임시 비밀번호가 발급되는데 이 비밀번호로 접속 - 임시 비밀번호 확인 ``` grep 'temporary password' /var/log/mysqld.log ``` ![image.png](/uploads/_temp/20220922/c681e81a4b51705deea1e55c0a07f998.png) - 접속 (임시 비밀번호 사용) ``` mysql -u root -p ``` ![image.png](/uploads/_temp/20220922/71daaf8159b2f858e51f632d5fd25f05.png) ## Root 계정 비밀번호 변경 임시 발급된 비밀번호를 계속 사용할 수 없으니 비밀번호를 변경해야 한다. ``` mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '{비밀번호}'; ``` 만약 아래와 같은 오류가 나타난다면 비밀번호가 간단해서 그런 것이다. 복잡한 비밀번호를 하거나 비밀번호 정책을 바꿔주면 된다. ``` mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'test'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements ``` ### 비밀번호 정책 확인 ``` mysql> show variables like 'validate_password%'; +--------------------------------------+--------+ | Variable_name | Value | +--------------------------------------+--------+ | validate_password.check_user_name | ON | | validate_password.dictionary_file | | | validate_password.length | 8 | | validate_password.mixed_case_count | 1 | | validate_password.number_count | 1 | | validate_password.policy | MEDIUM | | validate_password.special_char_count | 1 | +--------------------------------------+--------+ 7 rows in set (0.02 sec) ``` ### 비밀번호 정책 변경 비밀번호 정책을 보고 `value` 값을 변경하면 된다. 아래는 `policy` 값을 `LOW` 로 바꾸는 예시이다. 이와 유사하게 다른 옵션도 변경해주면 된다. ``` mysql> set global validate_password.policy=LOW; Query OK, 0 rows affected (0.00 sec) ``` # 외부 접속 지금까지의 과정으로 설치는 끝났으나 외부 접속은 불가능하다. `root` 계정으로 접속 `host` 가 `localhost` 만 있기 때문이다. 따라서 외부 허용이 가능한 설정이 필요하다. ## 설정 - 계정 확인 ``` mysql> select host, user from mysql.user; +-----------+------------------+ | host | user | +-----------+------------------+ | localhost | mysql.infoschema | | localhost | mysql.session | | localhost | mysql.sys | | localhost | root | +-----------+------------------+ 4 rows in set (0.00 sec) ``` - 외부 접속용 계정 생성 ``` mysql> create user 'root'@'%' identified by '{비밀번호}'; ``` - 권한 할당 ``` mysql> grant all privileges on *.* to 'root'@'%'; mysql> flush privileges; ``` ## 확인 이제 터미널이 아닌 db 접속 툴로 설치된 db에 접속 테스트를 해보자. `DBeaver` 로 테스트 하였다. ![image.png](/uploads/_temp/20220922/d0236e641372d6ca8d37a16a104652b6.png) 그런데... 바로 안되고 아래와 같은 에러 팝업이 나타나네?? ![image.png](/uploads/_temp/20220922/f759d956667b53094735153c82e51bd3.png) `Dirver properties` 탭에서 `allowPublicKeyRetrieval` 항목을 `false > true` 로 변경한다. ![image.png](/uploads/_temp/20220922/5886ec70a4cb397596d5afc06ef12475.png) 이제 `Test Connection` 버튼을 클릭하면 정상 접속이 가능해진다. ![image.png](/uploads/_temp/20220922/ad14696df0956831cf3151191a349a03.png) # Reference - [[MySQL 8.0] CentOS7에 MySQL 8.0설치하기](https://1mini2.tistory.com/86) - [MySQL Password Validation](https://dev.mysql.com/doc/refman/8.0/en/validate-password-options-variables.html) - [MySQL 원격 접속 허용](https://zetawiki.com/wiki/MySQL_%EC%9B%90%EA%B2%A9_%EC%A0%91%EC%86%8D_%ED%97%88%EC%9A%A9) Previous Post [DBeaver] tibero 연결 Next Post Oracle -> Mariadb 전환