서버 운영/APM 서버 구축

MariaDB 업그레이드 (Upgrading from MariaDB 10.3 to MariaDB 10.4)

씨실과 날실 2019. 6. 27. 09:00

2019년 6월 18일, MariaDB 10.4가 베타 딱지를 떼고 안정 버전으로 공개되었습니다. 이 글을 작성하고 있는 시점에서 MariaDB의 최신 버전은 10.4.6입니다.

이 블로그에서 우분투에서 APT 패키지 관리자를 통한 설치와 업그레이드 방법을 다룬 적이 있습니다만 최근에 MariaDB가 업그레이드되었으므로 업그레이드 방법에 대해 한 번 더 다루어 보고자 합니다.

MariaDB 업그레이드 검토

MariaDB를 업그레이드하기 전에 반드시 해야 하는지, 한다면 어떤 이점이 있는지 검토할 필요가 있습니다. 만약 운영 중인 서버가 지극히 개인적인 용도로 쓰이고 있거나 테스트 또는 학습용으로 쓰이는 경우, 백업만 제대로 한다면 MariaDB 업그레이드에 대한 부담이 덜한 편입니다. 그러나 중·대규모 서비스를 제공하고 있다거나 소규모라 할지라도 회원 서비스를 제공하는 등 개인저기인 용도를 벗어나는 경우, DB의 업그레이드는 신중할 필요가 있습니다. 백업을 아무리 철저히 한다 하더라도 사고는 예기치 않고 찾아 오는 것이고, DB 업그레이드를 하는 동안은 서비스를 중단해야 할 필요가 생길 수도 있기 때문입니다. 따라서 DB 업그레이드의 손익을 충분히 계산하고 업그레이드하기로 결정했다면 백업과 업그레이드 계획을 충분히 세워 진행해야 합니다.

MariaDB 10.4에서 달라진 점

자세한 내용은 아래 링크를 참고하시기 바랍니다.

MariaDB 업그레이드 순서

[작업환경]

가상머신 : VirtualBox 6.0.8

OS : Ubuntu 18.04.2

Apache2 : Apache/2.4.29 (Ubuntu)

PHP7 : PHP 7.2.19-0ubuntu0.18.04.1

MariaDB : mysql  Ver 15.1 Distrib 10.3.15-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

phpMyAdmin : phpMyAdmin 4.9.0.1

위 상자의 내용처럼 이후의 글은 우분투를 기준으로 설명합니다.

APT 패키지 저장 목록 업데이트 및 업그레이드

study@study-VirtualBox:~$ sudo apt update 

가장 먼저 터미널에서 위 명령을 실행하여 APT 저장소 패키지 목록을 업데이트 해줍니다.

study@study-VirtualBox:~$ sudo apt update
[sudo] study의 암호: 
기존:1 http://mirror.kakao.com/ubuntu bionic InRelease
받기:2 http://mirror.kakao.com/ubuntu bionic-updates InRelease [88.7 kB]       
받기:3 http://mirror.kakao.com/ubuntu bionic-backports InRelease [74.6 kB]     
받기:4 http://mirror.kakao.com/ubuntu bionic-security InRelease [88.7 kB]      
무시:5 http://dl.google.com/linux/chrome/deb stable InRelease                  
기존:6 https://ftp.harukasan.org/mariadb/repo/10.3/ubuntu bionic InRelease     
받기:7 http://dl.google.com/linux/chrome/deb stable Release [943 B]         
받기:8 http://dl.google.com/linux/chrome/deb stable Release.gpg [819 B]

... 중략 ...

내려받기 7,683 k바이트, 소요시간 3초 (2,589 k바이트/초)                  
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
50 packages can be upgraded. Run 'apt list --upgradable' to see them.
study@study-VirtualBox:~$

업그레이드 가능한 패키지 수를 알려주며, 업그레이드 가능 목록를 확인하려면 apt list --upgradable 명령을 실행하라고 나옵니다. 확인하고 싶으신 분들은 해당 명령을 실행하시면 됩니다. 그러나 굳이 할 필요는 없습니다. 어차피 apt upgrade 명령을 실행하면 업그레이드되는 패키지 이름 정도는 확인할 수 있기 때문입니다.

study@study-VirtualBox:~$ sudo apt upgrade

위 명령을 실행함으로써 패키지를 모두 업그레이드해줍니다.

study@study-VirtualBox:~$ sudo apt upgrade
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
업그레이드를 계산하는 중입니다... 완료
다음 패키지를 업그레이드할 것입니다:

업그레이드되는 패키지들

50개 업그레이드, 0개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.
122 M바이트 아카이브를 받아야 합니다.
이 작업 후 3,125 k바이트의 디스크 공간이 비워집니다.
계속 하시겠습니까? [Y/n] 

업그레이드 명령을 실행하면 위처럼 진행될 것입니다. y를 눌러 진행해줍니다.

MariaDB 버전 확인

study@study-VirtualBox:~$ mysql -V
mysql  Ver 15.1 Distrib 10.3.16-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
study@study-VirtualBox:~$  

위처럼 mysql -V 명령을 실행합니다. 그러면 현재 사용 중인 MariaDB의 버전을 알 수 있습니다. 현재 시스템의 MariaDB 버전은 10.3.16입니다.

MariaDB 업그레이드 사전 준비

innodb_fast_shutdown을 0으로 설정

study@study-VirtualBox:~$ sudo mysql -u root -p 

위 명령을 실행하여 MariaDB 콘솔로 들어갑니다.

Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.3.16-MariaDB-1:10.3.16+maria~bionic mariadb.org binary distribution

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)]> 

이 상태에서 innodb_fast_shutdown 설정을 해줍니다.

MariaDB [(none)]> SET GLOBAL innodb_fast_shutdown = 0;
Query OK, 0 rows affected (0.021 sec)

MariaDB [(none)]> 
설정한 후 아래의 명령을 실행하여 MaiaDB에서 빠져 나옵니다.
MariaDB [(none)]> \q
Bye
study@study-VirtualBox:~$

기존 DB 백업

study@study-VirtualBox:~$ sudo mysqldump -u root -p wp > ~/다운로드/backup_database_wp_190623.sql
Enter password: 
study@study-VirtualBox:~$

위 예시처럼 DB를 백업해줍니다. 위 예시에서 wp 대신 백업하고자 하는 DB명을 적고, ~/다운로드/backup_database_wp_190623.sql 대신 저장할 디렉토리 경로와 백업 파일 이름을 적어주시면 됩니다.

study@study-VirtualBox:~$ ls -al ~/다운로드 
... 생략 ...
-rw-r--r--  1 study study   1088296  6월 25 15:18 backup_database_wp_190623.sql
... 생략 ...
study@study-VirtualBox:~$

위처럼 ls 명령을 실행하면 제대로 백업업 파일이 생성되었는지 확인할 수 있습니다.

MariaDB 중지

이제 지금 작동 중인 MariaDB를 중지해주어야 합니다.

study@study-VirtualBox:~$ study@study-VirtualBox:~$ sudo systemctl stop mariadb.service

MariaDB 패키지 제거

study@study-VirtualBox:~$ sudo apt remove mariadb-server
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
다음 패키지를 지울 것입니다:
  mariadb-server
0개 업그레이드, 0개 새로 설치, 1개 제거 및 0개 업그레이드 안 함.
이 작업 후 10.2 k바이트의 디스크 공간이 비워집니다.
계속 하시겠습니까? [Y/n] y
(데이터베이스 읽는중 ...현재 185992개의 파일과 디렉터리가 설치되어 있습니다.)
Removing mariadb-server (1:10.3.16+maria~bionic) ...
study@study-VirtualBox:~$ 
 

이제 위처럼 MariaDB 패키지를 제거해줍니다. 이때 관련 패키지를 모두 제거할 필요는 없습니다. 우리가 할 작업은 기존 MaiaDB 패키지의 완전한 제거가 아니라 업그레이드 작업이기 때문입니다. 따라서 가장 핵심적인 패키지 하나만 일단 제거해주고 패키지를 업그레이드해주도록 합니다.

기존에 등록된 MariaDB 저장소 제거

기존에 추가했던 MariaDB 저장소를 제거해줍니다. 제 연재를 따라오신 분들은 하루카상 서버의 저장소를 이용하셨을 겁니다.

소프트웨어&업데이트를 이용한 제거

소프트웨어&업데이트를 실행하여 기타 소프트웨어 탭에서 MaiaDB 관련 저장소를 선택 후 제거 버튼을 눌러주시면 됩니다.

sources.list 파일 수정을 통한 제거

sources.list 파일은 우분투의 경우 /etc/apt에 존재합니다.
study@study-VirtualBox:~$ gedit admin:///etc/apt/sources.list

위 명령을 실행하여 gedit로 sources.list 파일을 열어 보면 하단에 아래와 문구를 볼 수 있습니다.

deb [arch=arm64,amd64,ppc64el] https://ftp.harukasan.org/mariadb/repo/10.3/ubuntu bionic main
# deb-src [arch=arm64,amd64,ppc64el] https://ftp.harukasan.org/mariadb/repo/10.3/ubuntu bionic main

위 문구를 모두 삭제하거나 아니면 아래줄처럼 문구 앞에 #을 붙여 주석처리해줍니다. 개인적으로 주석처리해주실 것을 추천합니다.

MariaDB 새 버전 저장소 추가

위 주소는 리눅스 주요 배포판별 MariaDB 패키지 저장소 안내 페이지입니다. 해당 주소를 접속하면 아래와 같은 화면을 볼 수 있습니다.

자신이 사용하는 리눅스와 그 버전, 사용할 MariaDB 버전, 그리고 다운받을 서버를 선택해주시면 됩니다.

우리는 우분투 18.04 LTS를 사용 중이고 MariaDB를 10.4로 업그레이드할 예정입니다. 제가 이용할 미러 서버는 기존에 잘 사용해온 하루카상 서버를 선택했습니다.

그러면 하단에 아래와 같이 안내가 나옵니다.


Here are the commands to run to install MariaDB 10.4 from the MariaDB repository on your Ubuntu system:

sudo apt-get install software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://ftp.harukasan.org/mariadb/repo/10.4/ubuntu bionic main'

Once the key is imported and the repository added you can install MariaDB 10.4 from the MariaDB repository with:

sudo apt update sudo apt install mariadb-server

See Installing MariaDB .deb Files for more information and for instructions on installing MariaDB Galera Cluster.

You can also create a custom MariaDB sources.list file. To do so, after importing the signing key as outlined above, copy and paste the following into a file under /etc/apt/sources.list.d/(we suggest naming the file MariaDB.list or something similar), or add it to the bottom of your /etc/apt/sources.list file.

# MariaDB 10.4 repository list - created 2019-06-25 07:13 UTC # http://downloads.mariadb.org/mariadb/repositories/ deb [arch=amd64,arm64,ppc64el] https://ftp.harukasan.org/mariadb/repo/10.4/ubuntu bionic main deb-src https://ftp.harukasan.org/mariadb/repo/10.4/ubuntu bionic main


이미 전에 MaiaDB 업그레이드 방법을 다룬 적이 있습니다.

위 연재를 따라오신 분들은 이미 software-properties-common 패키지가 설치되어 있을 것이며, 인증키 또한 등록되어 있을 겁니다. 따라서 MariaDB 10.4의 저장소만 등록해주시면 됩니다.

study@study-VirtualBox:~$ sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://ftp.harukasan.org/mariadb/repo/10.4/ubuntu bionic main'


그럼 소프트웨어&업데이트의 기타 소프트웨어 탭에서 MariaDB 10.4의 패키지 저장소가 등록된 것을 확인할 수 있습니다.

MariaDB 10.4 설치

study@study-VirtualBox:~$ sudo apt install mariadb-server 

위 명령을 실행해줍니다. 그러면 아래와 같이 나오게 될 겁니다.

study@study-VirtualBox:~$ sudo apt install mariadb-server
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
다음의 추가 패키지가 설치될 것입니다 :
  galera-4 mariadb-client-10.4 mariadb-client-core-10.4 mariadb-common
  mariadb-server-10.4 mariadb-server-core-10.4
제안하는 패키지:
  mailx mariadb-test tinyca
다음 패키지를 지울 것입니다:
  galera-3 mariadb-client-10.3 mariadb-client-core-10.3 mariadb-server-10.3
  mariadb-server-core-10.3
다음 새 패키지를 설치할 것입니다:
  galera-4 mariadb-client-10.4 mariadb-client-core-10.4 mariadb-server
  mariadb-server-10.4 mariadb-server-core-10.4
다음 패키지를 업그레이드할 것입니다:
  mariadb-common
1개 업그레이드, 6개 새로 설치, 5개 제거 및 1개 업그레이드 안 함.
22.1 M바이트 아카이브를 받아야 합니다.
이 작업 후 9,409 k바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n] 
y를 눌러 진행해줍니다.

MariaDB 시작

study@study-VirtualBox:~$ sudo systemctl start mariadb.service 
굳이 해줄 필요는 없습니다.

MariaDB 버전 재확인

study@study-VirtualBox:~$ mysql -V
mysql  Ver 15.1 Distrib 10.4.6-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
study@study-VirtualBox:~$

MariaDB 버전이 10.4.6으로 무사히 업그레이드되었음을 확인할 수 있습니다.

기존 DB 업그레이드

MariaDB 패키지를 무사히 업그레이드했으니 이제 기존의 DB 자료들을 MariaDB 10.4에 맞춰 바꿔주는 작업을 해줄 필요가 있습니다.

study@study-VirtualBox:~$ sudo mysql_upgrade --user=root --password 
위 명령을 실행하면 아래와 같이 진행될 겁니다.

study@study-VirtualBox:~$ sudo mysql_upgrade --user=root --password
Enter password: 
Phase 1/7: Checking and upgrading mysql database
Processing databases
mysql
mysql.column_stats                                 OK
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.event                                        OK
mysql.func                                         OK
mysql.gtid_slave_pos                               OK
mysql.help_category                                OK
mysql.help_keyword                                 OK
mysql.help_relation                                OK
mysql.help_topic                                   OK
mysql.host                                         OK
mysql.index_stats                                  OK
mysql.innodb_index_stats                           OK
mysql.innodb_table_stats                           OK
mysql.plugin                                       OK
mysql.proc                                         OK
mysql.procs_priv                                   OK
mysql.proxies_priv                                 OK
mysql.roles_mapping                                OK
mysql.servers                                      OK
mysql.table_stats                                  OK
mysql.tables_priv                                  OK
mysql.time_zone                                    OK
mysql.time_zone_leap_second                        OK
mysql.time_zone_name                               OK
mysql.time_zone_transition                         OK
mysql.time_zone_transition_type                    OK
mysql.transaction_registry                         OK
mysql.user                                         OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
Processing databases
information_schema
my_wiki
my_wiki.wactor                                     OK
my_wiki.warchive                                   OK
my_wiki.wbot_passwords                             OK
my_wiki.wcategory                                  OK
my_wiki.wcategorylinks                             OK
my_wiki.wchange_tag                                OK
my_wiki.wcomment                                   OK
my_wiki.wcontent                                   OK
my_wiki.wcontent_models                            OK
my_wiki.wexternallinks                             OK
my_wiki.wfilearchive                               OK
my_wiki.wgeo_tags                                  OK
my_wiki.wimage                                     OK
my_wiki.wimage_comment_temp                        OK
my_wiki.wimagelinks                                OK
my_wiki.winterwiki                                 OK
my_wiki.wip_changes                                OK
my_wiki.wipblocks                                  OK
my_wiki.wiwlinks                                   OK
my_wiki.wjob                                       OK
my_wiki.wl10n_cache                                OK
my_wiki.wlanglinks                                 OK
my_wiki.wlog_search                                OK
my_wiki.wlogging                                   OK
my_wiki.wmodule_deps                               OK
my_wiki.woathauth_users                            OK
my_wiki.wobjectcache                               OK
my_wiki.woldimage                                  OK
my_wiki.wpage                                      OK
my_wiki.wpage_props                                OK
my_wiki.wpage_restrictions                         OK
my_wiki.wpagelinks                                 OK
my_wiki.wprotected_titles                          OK
my_wiki.wquerycache                                OK
my_wiki.wquerycache_info                           OK
my_wiki.wquerycachetwo                             OK
my_wiki.wrecentchanges                             OK
my_wiki.wredirect                                  OK
my_wiki.wrevision                                  OK
my_wiki.wrevision_actor_temp                       OK
my_wiki.wrevision_comment_temp                     OK
my_wiki.wsearchindex                               OK
my_wiki.wsite_identifiers                          OK
my_wiki.wsite_stats                                OK
my_wiki.wsites                                     OK
my_wiki.wslot_roles                                OK
my_wiki.wslots                                     OK
my_wiki.wtag_summary                               OK
my_wiki.wtemplatelinks                             OK
my_wiki.wtext                                      OK
my_wiki.wtranscache                                OK
my_wiki.wupdatelog                                 OK
my_wiki.wuploadstash                               OK
my_wiki.wuser                                      OK
my_wiki.wuser_former_groups                        OK
my_wiki.wuser_groups                               OK
my_wiki.wuser_newtalk                              OK
my_wiki.wuser_properties                           OK
my_wiki.wvalid_tag                                 OK
my_wiki.wwatchlist                                 OK
nextcloud
nextcloud.oc_accounts                              OK
nextcloud.oc_activity                              OK
nextcloud.oc_activity_mq                           OK
nextcloud.oc_addressbookchanges                    OK
nextcloud.oc_addressbooks                          OK
nextcloud.oc_appconfig                             OK
nextcloud.oc_authtoken                             OK
nextcloud.oc_bruteforce_attempts                   OK
nextcloud.oc_calendar_invitations                  OK
nextcloud.oc_calendar_resources                    OK
nextcloud.oc_calendar_rooms                        OK
nextcloud.oc_calendarchanges                       OK
nextcloud.oc_calendarobjects                       OK
nextcloud.oc_calendarobjects_props                 OK
nextcloud.oc_calendars                             OK
nextcloud.oc_calendarsubscriptions                 OK
nextcloud.oc_cards                                 OK
nextcloud.oc_cards_properties                      OK
nextcloud.oc_comments                              OK
nextcloud.oc_comments_read_markers                 OK
nextcloud.oc_credentials                           OK
nextcloud.oc_dav_shares                            OK
nextcloud.oc_directlink                            OK
nextcloud.oc_federated_reshares                    OK
nextcloud.oc_file_locks                            OK
nextcloud.oc_filecache                             OK
nextcloud.oc_files_trash                           OK
nextcloud.oc_flow_checks                           OK
nextcloud.oc_flow_operations                       OK
nextcloud.oc_group_admin                           OK
nextcloud.oc_group_user                            OK
nextcloud.oc_groups                                OK
nextcloud.oc_jobs                                  OK
nextcloud.oc_migrations                            OK
nextcloud.oc_mimetypes                             OK
nextcloud.oc_mounts                                OK
nextcloud.oc_notifications                         OK
nextcloud.oc_notifications_pushtokens              OK
nextcloud.oc_oauth2_access_tokens                  OK
nextcloud.oc_oauth2_clients                        OK
nextcloud.oc_preferences                           OK
nextcloud.oc_properties                            OK
nextcloud.oc_schedulingobjects                     OK
nextcloud.oc_share                                 OK
nextcloud.oc_share_external                        OK
nextcloud.oc_storages                              OK
nextcloud.oc_systemtag                             OK
nextcloud.oc_systemtag_group                       OK
nextcloud.oc_systemtag_object_mapping              OK
nextcloud.oc_trusted_servers                       OK
nextcloud.oc_twofactor_backupcodes                 OK
nextcloud.oc_twofactor_providers                   OK
nextcloud.oc_users                                 OK
nextcloud.oc_vcategory                             OK
nextcloud.oc_vcategory_to_object                   OK
nextcloud.oc_whats_new                             OK
performance_schema
phpmyadmin
phpmyadmin.pma__bookmark                           OK
phpmyadmin.pma__central_columns                    OK
phpmyadmin.pma__column_info                        OK
phpmyadmin.pma__designer_settings                  OK
phpmyadmin.pma__export_templates                   OK
phpmyadmin.pma__favorite                           OK
phpmyadmin.pma__history                            OK
phpmyadmin.pma__navigationhiding                   OK
phpmyadmin.pma__pdf_pages                          OK
phpmyadmin.pma__recent                             OK
phpmyadmin.pma__relation                           OK
phpmyadmin.pma__savedsearches                      OK
phpmyadmin.pma__table_coords                       OK
phpmyadmin.pma__table_info                         OK
phpmyadmin.pma__table_uiprefs                      OK
phpmyadmin.pma__tracking                           OK
phpmyadmin.pma__userconfig                         OK
phpmyadmin.pma__usergroups                         OK
phpmyadmin.pma__users                              OK
wp
wp.wp_2_commentmeta                                OK
wp.wp_2_comments                                   OK
wp.wp_2_kboard_board_attached                      OK
wp.wp_2_kboard_board_content                       OK
wp.wp_2_kboard_board_latestview                    OK
wp.wp_2_kboard_board_latestview_link               OK
wp.wp_2_kboard_board_meta                          OK
wp.wp_2_kboard_board_option                        OK
wp.wp_2_kboard_board_setting                       OK
wp.wp_2_kboard_comments                            OK
wp.wp_2_kboard_comments_option                     OK
wp.wp_2_kboard_meida                               OK
wp.wp_2_kboard_meida_relationships                 OK
wp.wp_2_kboard_order_item                          OK
wp.wp_2_kboard_order_item_meta                     OK
wp.wp_2_kboard_vote                                OK
wp.wp_2_links                                      OK
wp.wp_2_options                                    OK
wp.wp_2_postmeta                                   OK
wp.wp_2_posts                                      OK
wp.wp_2_term_relationships                         OK
wp.wp_2_term_taxonomy                              OK
wp.wp_2_termmeta                                   OK
wp.wp_2_terms                                      OK
wp.wp_blog_versions                                OK
wp.wp_blogmeta                                     OK
wp.wp_blogs                                        OK
wp.wp_commentmeta                                  OK
wp.wp_comments                                     OK
wp.wp_kboard_board_attached                        OK
wp.wp_kboard_board_content                         OK
wp.wp_kboard_board_latestview                      OK
wp.wp_kboard_board_latestview_link                 OK
wp.wp_kboard_board_meta                            OK
wp.wp_kboard_board_option                          OK
wp.wp_kboard_board_setting                         OK
wp.wp_kboard_comments                              OK
wp.wp_kboard_comments_option                       OK
wp.wp_kboard_meida                                 OK
wp.wp_kboard_meida_relationships                   OK
wp.wp_kboard_order_item                            OK
wp.wp_kboard_order_item_meta                       OK
wp.wp_kboard_vote                                  OK
wp.wp_links                                        OK
wp.wp_options                                      OK
wp.wp_postmeta                                     OK
wp.wp_posts                                        OK
wp.wp_registration_log                             OK
wp.wp_signups                                      OK
wp.wp_site                                         OK
wp.wp_sitemeta                                     OK
wp.wp_term_relationships                           OK
wp.wp_term_taxonomy                                OK
wp.wp_termmeta                                     OK
wp.wp_terms                                        OK
wp.wp_usermeta                                     OK
wp.wp_users                                        OK
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
study@study-VirtualBox:~$ 
 



study@study-VirtualBox:~$ mysql -V
mysql  Ver 15.1 Distrib 10.4.13-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
study@study-VirtualBox:~$ sudo mysql_upgrade --user=root --password
Enter password: 
This installation of MariaDB is already upgraded to 10.4.13-MariaDB, use --force if you still need to run mysql_upgrade
study@study-VirtualBox:~$ 

참고로 MariaDB 설치시 자동으로 설치되는 DB 외에 다른 DB가 없는 경우(사용자가 따로 생성한 DB가 없는 경우) 위와 같이 출력될 수 있습니다.

이럴 땐 굳이 DB를 업그레이드할 필요 없습니다. 그러나 아래와 같이 --force 옵션을 사용해 강제로 업그레이드할 수도 있습니다.


study@study-VirtualBox:~$ mysql -V
mysql  Ver 15.1 Distrib 10.4.13-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
study@study-VirtualBox:~$ sudo mysql_upgrade --user=root --password
Enter password: 
This installation of MariaDB is already upgraded to 10.4.13-MariaDB, use --force if you still need to run mysql_upgrade
study@study-VirtualBox:~$ sudo mysql_upgrade --force --user=root --password
Enter password: 
Phase 1/7: Checking and upgrading mysql database
Processing databases
mysql
mysql.column_stats                                 OK
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.event                                        OK
mysql.func                                         OK
mysql.global_priv                                  OK
mysql.gtid_slave_pos                               OK
mysql.help_category                                OK
mysql.help_keyword                                 OK
mysql.help_relation                                OK
mysql.help_topic                                   OK
mysql.index_stats                                  OK
mysql.innodb_index_stats                           OK
mysql.innodb_table_stats                           OK
mysql.plugin                                       OK
mysql.proc                                         OK
mysql.procs_priv                                   OK
mysql.proxies_priv                                 OK
mysql.roles_mapping                                OK
mysql.servers                                      OK
mysql.table_stats                                  OK
mysql.tables_priv                                  OK
mysql.time_zone                                    OK
mysql.time_zone_leap_second                        OK
mysql.time_zone_name                               OK
mysql.time_zone_transition                         OK
mysql.time_zone_transition_type                    OK
mysql.transaction_registry                         OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user                                         OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
Processing databases
information_schema
performance_schema
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
study@study-VirtualBox:~$ 

이것으로 MariaDB 업그레이드 작업을 끝마쳤습니다. 제 글이 여러분들께 조금이나마 도움이 되었기를 바랍니다.