개발노트
목록
록키 리눅스 MySQL 삭제 후 MariaDB 설치하기 : Rocky Linux
리눅스RockyLinuxMySQLMariaDB설치
Server 2024.04.11 286 회 읽음
Server 24.04.11 286


새로운 서버 설치 후 mysql 설치하여 사용하다가 서버가 먹통이 되는 증상이 발송되어 삭제 하고 MariaDB 설치하는 과정을 공유하고자 합니다. 서버를 재 시작 하면 잠시 동안은 잘 작동하다가 어느 순간에 서버에서 무한 루프가 도는 문제가 있어서 이전부터 사용 해 오던 MariaDB 를 설치하려고 합니다. MySQL 서비스가 Oracle 인수 후에 개발에 참여했던 팀이 MariaDB를 만들어서 대부분 호환이 되며 업그레이드도 지속되고 있어 워드프레스를 사용하고 있다면 추천하는 데이터베이스 입니다.


MySQL 삭제 후 MariaDB 설치하기


MySQL 설치 여부 먼저 확인 합니다.

# yum list installed | grep mysql
mysql.x86_64                                8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1  @appstream    
mysql-common.x86_64                         8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1  @appstream    
mysql-devel.x86_64                          8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1  @appstream    
mysql-errmsg.x86_64                         8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1  @appstream    
mysql-libs.x86_64                           8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1  @appstream    
mysql-selinux.noarch                        1.0.6-1.el8                                @appstream    
mysql-server.x86_64                         8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1  @appstream    
php82-php-mysqlnd.x86_64                    8.2.15-1.el8.remi                          @remi-safe    


설치되어 있는 MySQL 패키지를 삭제합니다.

# yum remove -y mysql*
종속성이 해결되었습니다.
===============================================================================================================================================
 꾸러미                       구조                  버전                                                       저장소                     크기
===============================================================================================================================================
삭제 중:
 mysql                        x86_64                8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1                  @appstream                 73 M
 mysql-common                 x86_64                8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1                  @appstream                466 k
 mysql-devel                  x86_64                8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1                  @appstream                389 k
 mysql-errmsg                 x86_64                8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1                  @appstream                9.7 M
 mysql-libs                   x86_64                8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1                  @appstream                7.3 M
 mysql-selinux                noarch                1.0.6-1.el8                                                @appstream                 49 k
 mysql-server                 x86_64                8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1                  @appstream                159 M
사용하지 않는 종속 꾸러미 제거:
 mecab                        x86_64                0.996-2.module+el8.8.0+1283+4b88a3a8                       @appstream                2.1 M
 protobuf-lite                x86_64                3.5.0-15.el8                                               @appstream                449 k
연결 요약
===============================================================================================================================================
삭제  9 꾸러미
사용 가능한 공간 : 253 M
연결 확인 실행 중
연결 확인에 성공했습니다.
연결 시험 실행 중
연결 시험에 성공했습니다.
연결 실행 중
  준비 중     :                                                                                                                            1/1 
  구현 중     : mysql-devel-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                               1/1 
  삭제 중     : mysql-devel-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                               1/9 
  삭제 중     : mysql-selinux-1.0.6-1.el8.noarch                                                                                           2/9 
  구현 중     : mysql-selinux-1.0.6-1.el8.noarch                                                                                           2/9 
libsemanage.semanage_direct_remove_key: mysql module at priority 100 is now active.
  구현 중     : mysql-server-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                              3/9 
  삭제 중     : mysql-server-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                              3/9 
경고: /etc/my.cnf.d/mysql-server.cnf(이)가 /etc/my.cnf.d/mysql-server.cnf.rpmsave(으)로 저장되었습니다
  구현 중     : mysql-server-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                              3/9 
  삭제 중     : mysql-errmsg-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                              4/9 
  삭제 중     : mysql-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                                     5/9 
  삭제 중     : mysql-libs-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                                6/9 
  삭제 중     : mysql-common-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                              7/9 
  삭제 중     : mecab-0.996-2.module+el8.8.0+1283+4b88a3a8.x86_64                                                                          8/9 
  구현 중     : mecab-0.996-2.module+el8.8.0+1283+4b88a3a8.x86_64                                                                          8/9 
  삭제 중     : protobuf-lite-3.5.0-15.el8.x86_64                                                                                          9/9 
  구현 중     : protobuf-lite-3.5.0-15.el8.x86_64                                                                                          9/9 
  확인 중     : mecab-0.996-2.module+el8.8.0+1283+4b88a3a8.x86_64                                                                          1/9 
  확인 중     : mysql-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                                     2/9 
  확인 중     : mysql-common-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                              3/9 
  확인 중     : mysql-devel-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                               4/9 
  확인 중     : mysql-errmsg-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                              5/9 
  확인 중     : mysql-libs-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                                6/9 
  확인 중     : mysql-selinux-1.0.6-1.el8.noarch                                                                                           7/9 
  확인 중     : mysql-server-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                              8/9 
  확인 중     : protobuf-lite-3.5.0-15.el8.x86_64                                                                                          9/9 
제거되었습니다:
  mecab-0.996-2.module+el8.8.0+1283+4b88a3a8.x86_64                      mysql-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                
  mysql-common-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64          mysql-devel-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64          
  mysql-errmsg-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64          mysql-libs-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64           
  mysql-selinux-1.0.6-1.el8.noarch                                       mysql-server-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64         
  protobuf-lite-3.5.0-15.el8.x86_64                                     
완료되었습니다!


MySQL 폴더 삭제하기

rm 명령어를 이용하여 남아있는 폴더도 제거 합니다.

# rm -rf /var/lib/mysql


삭제가 잘 되었는지 RPM 명령어로 확인
아래와 같이 php82-php-mysqlnd-8.2.15-1.el8.remi.x86_64 패키지가 표시됩니다. 삭제 명령을 이용하여 제거 합니다.

# rpm -qa | grep mysql
php82-php-mysqlnd-8.2.15-1.el8.remi.x86_64 # rpm -e php82-php-mysqlnd






MariaDB 설치하기

먼저 기본 설치되어 있는 라이브러리를 확인합니다.

# yum list installed mariadb*
설치된 꾸러미
mariadb-connector-c.x86_64                                                  3.1.11-2.el8_3                                           @appstream
mariadb-connector-c-config.noarch                                           3.1.11-2.el8_3                                           @appstream


최신 버전과 관련 라이브러리를 다시 설치하기 위해 현재 버전을 삭제합니다.

# yum remove -y mariadb*
종속성이 해결되었습니다.
===============================================================================================================================================
 꾸러미                                  구조                버전                                                저장소                   크기
===============================================================================================================================================
삭제 중:
 mariadb-connector-c                     x86_64              3.1.11-2.el8_3                                      @appstream              509 k
 mariadb-connector-c-config              noarch              3.1.11-2.el8_3                                      @appstream              497  
종속 꾸러미지 제거:
 perl-DBD-MySQL                          x86_64              4.046-3.module+el8.9.0+1501+450eec3b                @appstream              358 k
연결 요약
===============================================================================================================================================
삭제  3 꾸러미
사용 가능한 공간 : 868 k
연결 확인 실행 중
연결 확인에 성공했습니다.
연결 시험 실행 중
연결 시험에 성공했습니다.
연결 실행 중
  준비 중     :                                                                                                                            1/1 
  삭제 중     : perl-DBD-MySQL-4.046-3.module+el8.9.0+1501+450eec3b.x86_64                                                                 1/3 
  삭제 중     : mariadb-connector-c-3.1.11-2.el8_3.x86_64                                                                                  2/3 
  삭제 중     : mariadb-connector-c-config-3.1.11-2.el8_3.noarch                                                                           3/3 
  구현 중     : mariadb-connector-c-config-3.1.11-2.el8_3.noarch                                                                           3/3 
  확인 중     : mariadb-connector-c-3.1.11-2.el8_3.x86_64                                                                                  1/3 
  확인 중     : mariadb-connector-c-config-3.1.11-2.el8_3.noarch                                                                           2/3 
  확인 중     : perl-DBD-MySQL-4.046-3.module+el8.9.0+1501+450eec3b.x86_64                                                                 3/3 
제거되었습니다:
  mariadb-connector-c-3.1.11-2.el8_3.x86_64                                   mariadb-connector-c-config-3.1.11-2.el8_3.noarch                 
  perl-DBD-MySQL-4.046-3.module+el8.9.0+1501+450eec3b.x86_64                 
완료되었습니다!


Yum 을 이용하여 설치할 때 package 를 가져와서 설치하지 못하기에 패키지 저장소에 추가를 해야 합니다.

#vi /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.11/rhel9-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1


Yum 저장소 패키지 정보를 확인합니다.

# dnf repolist
저장소 ID                                        저장소 이름
appstream                                        Rocky Linux 8 - AppStream
baseos                                           Rocky Linux 8 - BaseOS
epel                                             Extra Packages for Enterprise Linux 8 - x86_64
epel-next                                        Extra Packages for Enterprise Linux 8 - Next - x86_64
extras                                           Rocky Linux 8 - Extras
mariadb                                          MariaDB
remi-modular                                     Remi's Modular repository for Enterprise Linux 8 - x86_64
remi-safe                                        Safe Remi's RPM repository for Enterprise Linux 8 - x86_64
webmin-noarch                                    Webmin - noarch


설치 명령어를 입력합니다.

# yum install MariaDB-server MariaDB-client


충돌이 발생하면 아래 명령어를 이용하세요.

# sudo dnf install mariadb-server --allowerasing

마지막 메타자료 만료확인(0:25:27 이전): 2024년 01월 31일 (수) 오후 02시 32분 33초.
종속성이 해결되었습니다.
===============================================================================================================================================
 꾸러미                             구조                버전                                                     저장소                   크기
===============================================================================================================================================
설치 중:
 mariadb-server                     x86_64              3:10.3.39-1.module+el8.8.0+1452+2a7eab68                 appstream                16 M
종속 꾸러미 설치 중:
 mariadb                            x86_64              3:10.3.39-1.module+el8.8.0+1452+2a7eab68                 appstream               6.0 M
 mariadb-common                     x86_64              3:10.3.39-1.module+el8.8.0+1452+2a7eab68                 appstream                63 k
 mariadb-connector-c                x86_64              3.1.11-2.el8_3                                           appstream               199 k
 mariadb-errmsg                     x86_64              3:10.3.39-1.module+el8.8.0+1452+2a7eab68                 appstream               234 k
 perl-DBD-MySQL                     x86_64              4.046-3.module+el8.9.0+1501+450eec3b                     appstream               155 k
취약한 종속 꾸러미 설치 중:
 mariadb-backup                     x86_64              3:10.3.39-1.module+el8.8.0+1452+2a7eab68                 appstream               6.1 M
 mariadb-gssapi-server              x86_64              3:10.3.39-1.module+el8.8.0+1452+2a7eab68                 appstream                51 k
 mariadb-server-utils               x86_64              3:10.3.39-1.module+el8.8.0+1452+2a7eab68                 appstream               1.1 M
종속 꾸러미지 제거:
 mysql                              x86_64              8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1                @appstream               73 M
 mysql-server                       x86_64              8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1                @appstream              159 M
모듈 스트림 활성화:
 mariadb                                                10.3                                                                                  
연결 요약
===============================================================================================================================================
설치  9 꾸러미
삭제  2 꾸러미
전체 내려받기 크기: 30 M
진행할까요? [y/N]: y
꾸러미 내려받기 중:
(1/9): mariadb-common-10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64.rpm                                        1.2 MB/s |  63 kB     00:00    
(2/9): mariadb-connector-c-3.1.11-2.el8_3.x86_64.rpm                                                           8.5 MB/s | 199 kB     00:00    
(3/9): mariadb-10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64.rpm                                                46 MB/s | 6.0 MB     00:00    
(4/9): mariadb-gssapi-server-10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64.rpm                                 6.9 MB/s |  51 kB     00:00    
(5/9): mariadb-errmsg-10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64.rpm                                        3.0 MB/s | 234 kB     00:00    
(6/9): mariadb-server-utils-10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64.rpm                                   31 MB/s | 1.1 MB     00:00    
(7/9): mariadb-backup-10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64.rpm                                         27 MB/s | 6.1 MB     00:00    
(8/9): perl-DBD-MySQL-4.046-3.module+el8.9.0+1501+450eec3b.x86_64.rpm                                          3.9 MB/s | 155 kB     00:00    
(9/9): mariadb-server-10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64.rpm                                         77 MB/s |  16 MB     00:00    
-----------------------------------------------------------------------------------------------------------------------------------------------
합계                                                                                                            36 MB/s |  30 MB     00:00     
연결 확인 실행 중
연결 확인에 성공했습니다.
연결 시험 실행 중
연결 시험에 성공했습니다.
연결 실행 중
  준비 중     :                                                                                                                            1/1 
  구현 중     : mariadb-common-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64                                                             1/1 
  설치 중     : mariadb-common-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64                                                            1/11 
  설치 중     : mariadb-errmsg-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64                                                            2/11 
  설치 중     : perl-DBD-MySQL-4.046-3.module+el8.9.0+1501+450eec3b.x86_64                                                                3/11 
  설치 중     : mariadb-connector-c-3.1.11-2.el8_3.x86_64                                                                                 4/11 
  설치 중     : mariadb-backup-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64                                                            5/11 
  설치 중     : mariadb-gssapi-server-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64                                                     6/11 
  설치 중     : mariadb-server-utils-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64                                                      7/11 
  구현 중     : mariadb-server-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64                                                            8/11 
  설치 중     : mariadb-server-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64                                                            8/11 
  구현 중     : mariadb-server-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64                                                            8/11 
  설치 중     : mariadb-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64                                                                   9/11 
  구현 중     : mysql-server-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                            10/11 
  삭제 중     : mysql-server-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                            10/11 
  구현 중     : mysql-server-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                            10/11 
  삭제 중     : mysql-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                                   11/11 
  구현 중     : mysql-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                                   11/11 
  확인 중     : mariadb-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64                                                                   1/11 
  확인 중     : mariadb-backup-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64                                                            2/11 
  확인 중     : mariadb-common-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64                                                            3/11 
  확인 중     : mariadb-connector-c-3.1.11-2.el8_3.x86_64                                                                                 4/11 
  확인 중     : mariadb-errmsg-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64                                                            5/11 
  확인 중     : mariadb-gssapi-server-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64                                                     6/11 
  확인 중     : mariadb-server-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64                                                            7/11 
  확인 중     : mariadb-server-utils-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64                                                      8/11 
  확인 중     : perl-DBD-MySQL-4.046-3.module+el8.9.0+1501+450eec3b.x86_64                                                                9/11 
  확인 중     : mysql-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                                   10/11 
  확인 중     : mysql-server-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64                                                            11/11 
설치되었습니다:
  mariadb-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64            mariadb-backup-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64           
  mariadb-common-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64     mariadb-connector-c-3.1.11-2.el8_3.x86_64                                
  mariadb-errmsg-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64     mariadb-gssapi-server-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64    
  mariadb-server-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64     mariadb-server-utils-3:10.3.39-1.module+el8.8.0+1452+2a7eab68.x86_64     
  perl-DBD-MySQL-4.046-3.module+el8.9.0+1501+450eec3b.x86_64        
제거되었습니다:
  mysql-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64             mysql-server-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64            
완료되었습니다!


부팅 할 때 자동 실행되도록 등록

systemctl enable mariadb 명령어는 심볼리 링크를 생성하여 명령어 실행 시 연결이 되도록 합니다. systemctl enable mariadb 설정을 하게 되면 부팅 할 때 자동 실행 되도록 하는 명령어 입니다.

# systemctl enable mariadb
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.


서비스 시작하기

# systemctl start mariadb
#mysql_secure_installation


기본 설정

root 패스워드를 설정 할지 여부와 anonymous 사용자 삭제 여부 등 대부분 y를 누르시면 됩니다.

# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!


설치가 모두 완료되었습니다. 루트 비밀번호를 설정한 경우 비밀번호를 입력하고 그렇지 않으면 엔터 키만 누르면 접속이 가능합니다.

# mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 16
Server version: 10.3.39-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

MariaDB [(none)]> 





기본으로 설치되어 있는 MySQL 삭제하고 MariaDB 를 설치하는 방법에 대해서 소개 해 드렸습니다. 사용하고 있는 리눅스 버전은 cat /etc/redhat-release 명령어로 확인할 수 있으며 Rocky Linux release 8.9 (Green Obsidian) 버전을 사용하고 있습니다.

목록