새로운 서버 설치 후 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) 버전을 사용하고 있습니다.