How to upgrade MySQL 5.5 to 5.6/5.7 or MariaDB 5.5 to 10.x on Linux?

Follow

Comments

258 comments

  • Avatar
    Sid B

    Is it just me, or does it seem that updating the now old MariaDB 5.5.68-1 to faster MariaDB 10.5.8-1
    (on Centos 7.9 with Plesk Obsidian 18.0.33) is much more convoluted/complicated than it should be?

    I actually expected it to be available as a module to update/upgrade in the Plesk installer, but it isn't?
    I would like to upgrade Maria on our production server but am hesitant to do so when you see posts like

    "I've restored the connections, services are running but there are still some damaged attributes in the plesk database"

    from those who have attempted it.

    We have the same config as Arno running on a dedicated server

    Product version: Plesk Obsidian 18.0.33.0
    OS version: CentOS 7.9.2009 x86_64
    mysql  Ver 15.1 Distrib 5.5.68-MariaDB, for Linux (x86_64)

    Is Plesk going to add MariaDB 10 as a module install or upgrade to the Plesk installer
    any time soon?

     

    Sid B.

     

    3
    Comment actions Permalink
  • Avatar
    Peter Debik (Edited )

    I'd like to add this confirmation for CentOS 7.9: Following the steps in the "Plesk on CentOS 7 / RHEL 7" section, the upgrade is correctly executed.

    However, here are some add-on suggestions to the instructions:

    1) Ensure that innodb_fast_shutdown variable is not 2 or 3. The default of this variable is 1. It can be 1 or 0 for the shutdown, but not higher. The reason for this is that only on 1 or 0 all open transactions are guaranteed to be completed and no redo/undo operations remain. Verify in SQL with

    > show variables LIKE 'innodb_fast_shutdown';

    Similar issue with innodb_force_recovery. This must be less then 3:

    > show variables LIKE 'innodb_force_recovery';

    2) I suggest to "service psa stopall" and also to stop dovecot and postfix before stopping MariaDB, because some services might need to access the database to look something up. Imagine a mail is coming in, some service needs to look something up for it in the database and fails so it might discard the mail etc. and we might never know ... The upgrade process on a server with approx. 300 databases only took a few minutes including the data directory backup.

    3) Removal of the existing MariaDB-server package is a must. If this step fails, do not proceed.

    rpm -e --nodeps `rpm -q --whatprovides mysql-server`

    It can fail for example when you are just as unattentive as me in one case when I copied the command from the script file and included the double quotes around the single-quoted rpm command. If the existing MariaDB-server package is not removed, the installation will not install the upgraded MariaDB-server package. Should you run into an issue where only some packages are installed, it is no problem to repeat the installation later for all. Yum will only install the ones that are new or updated.

    4) After the upgrade has finished and all seems well, run
    # plesk repair db -y
    because if you have been using an old version of MariaDB, some field definitions like date and time fields might not be up to date for the Plesk database with the new database scheme.l

    2
    Comment actions Permalink
  • Avatar
    Ivan Postnikov

    Hello @WeHoDo,

    There is no such functionality, please, follow the steps from this article.

    In case you want it to be done from Plesk side, submit a request to Plesk Professional Services: https://www.plesk.com/professional-services/administrative-services/

    1
    Comment actions Permalink
  • Avatar
    Denis Bykov

    @Jorge Salazar
    Thank you for noticing.

    @Tara
    Thank you for pointing in the right direction.
    Indeed, 'db-select-mysql' is fetching the wrong repository link now. I updated the article with the correct command.

    1
    Comment actions Permalink
  • Avatar
    Anastasia Zyrianova

    Hello MSZ,

    The error may appear when non-standard repositories are used. The solution from the following article will be helpful in this case: https://support.plesk.com/hc/en-us/articles/360002961854.

    It is always preferable to use official repositories.

    1
    Comment actions Permalink
  • Avatar
    Anastasia Zyrianova

    Hello MSZ,

    The article was updated.

    1
    Comment actions Permalink
  • Avatar
    Ivan Postnikov

    Hello @Domenico,

    From the provided logs I see that Plesk is not able to establish a connection with MariaDB.

    Initial troubleshooting steps are the same as provided by @Alexander:

    1. Check whether or not you can access MySQL with any of the following commands:

    # MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -uadmin psa

    OR 

    # plesk db

    OR 

    # mysql psa -uadmin -p`cat /etc/psa/.psa.shadow`

    2. I also would recommend checking whether or not you have /root/.my.cnf file and removing it if any.

     

    As the issue is rather complicated and there is Plesk downtime, I would suggest submitting a request for Plesk Support

     

    1
    Comment actions Permalink
  • Avatar
    Alexandr Redikultsev (Edited )

    Hi @Kevin Hudson!

    Instructions for CentOS 6 will not work as CentOS 6 has MySQL by default.

    What you need to do in order to achieve your goal is to replace MariaDB with MySQL 5.5 and then upgrade MySQL 5.5 to MySQL 5.7. Replacement might have some issues with compatibility.

    I was not able to find the repo for MySQL 5.5 for CentOS 7, however if you find one, something like this should do the trick for you:

    1. Stop MariaDB:

    # service mariadb stop

    2. Remove it:

    # rpm -e --nodeps mariadb-server

    3. Add your custom repo with mysql 5.5.

    4. Install packages from this repo:

    # yum install mysql-server mysql-community-server

    5. Then, start the service, run mysql_upgrade:

    # service mysqld start
    # mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`

    6. Refresh server components:

    # plesk sbin packagemng -sdf

    Note that you might want to install packages manually on step 4 in case you will not be able to find the repo on step 3. 

     

    Please, keep in mind that this instructions were not tested and I suggest to create a snapshot of the server as well as the backup of MySQL databases before doing so.

    1
    Comment actions Permalink
  • Avatar
    Alexey Lapshin

    Hello @Rashid.
    Please make sure that /etc/yum.repos.d/MariaDB.repo contained the following line:
    baseurl = http://yum.mariadb.org/10.2/centos7-amd64
    and repeat the installation.

    If you still unable to install MariaDB 10.x - submit a ticket to us https://support.plesk.com/hc/en-us

    1
    Comment actions Permalink
  • Avatar
    Ivan Postnikov

    Hello @Jan,

    Thank you for the valuable notice!

    The article will be updated by its author soon.

    1
    Comment actions Permalink
  • Avatar
    Md Rasel Khan (Edited )

    Thanks!

    The automatic method worked fine except Email sending & receiving due to a MariaDB bug #MDEV-24941: SElinux incorrect label for server socket.

    Although there is a solution for this here https://support.plesk.com/hc/en-us/articles/360017337699

    My system is Plesk Obsidian Version 18.0.35 CentOS 7.9 on Lightsail.

    1
    Comment actions Permalink
  • Avatar
    Sid B

    Plesk 'Installer & Updates'  lists/includes 6 versions of php, from 5.x to 8. We choose what to install, what not.

    The Instller lists/comes with 'standard' MariaDB 5.6. So why not MariaDB 10? Even as an option?

    CPanel does it, so I find it hard to believe Plesk can't.

     

    Sid

    1
    Comment actions Permalink
  • Avatar
    Nikita Nikushkin

    Hi @Jan Bludau.

    Thank you for the provided instructions! Suppose, other users can found them useful

    However, keep in mind that MariaDB 10.4 is not supported by Plesk yet and, thus, all actions are performed at your own risk

    1
    Comment actions Permalink
  • Avatar
    oןןǝɹǝɥɔuɐԀ

    Hi @Ivan,

    Thank you so much, I learnt something today. Completed :)

    1
    Comment actions Permalink
  • Avatar
    Rashid Siddiqui

    Using Plesk ONYX and CENTOS 7 I had previously upgraded to MariaDB 10.2 with the help of this post. Now I have installed Plesk Obsidian and wanted to upgrade to MariaDB 10.3 since it's compatible, and I was wondering if the procedure to do that would be the same as described here or I need to refer to another procedure to upgrade to MariaDB 10.3 on Obsidian. Will appreciate information.

    1
    Comment actions Permalink
  • Avatar
    Aptum Support

    Can you please make  sure that the step "mysql_upgrade" is added after upgrading / starting MySQL on the CentOS 7 instructions? 

    This checks and fixes any system tables

    Thank You

    1
    Comment actions Permalink
  • Avatar
    Del C (Edited )

    For the mysqldump command you should add --hex-blob to the parameters. 

    -hex-blob will dump binary columns using hexadecimal notation.

    If you do not do this, then depending on your db contents, if you need to rely on that dump then you may get an error similar to: Mysql ERROR at line 1153: Unknown command '\'

    1
    Comment actions Permalink
  • Avatar
    Ivan Postnikov

    Hello @oןןǝɹǝɥɔuɐԀ

    The below instruction will help to achieve your goal, it explains how to edit files using vi:

    https://support.plesk.com/hc/en-us/articles/360001084114-How-to-edit-file-using-vi-utility-on-Linux-

    > Are you planning on adding an updated video, updating from 5.1 to 5.5 worked as expected, just this next part, thanks in advance.

    Thank you for showing interest, I will forward your feedback to the person in charge.

     

     

    1
    Comment actions Permalink
  • Avatar
    Richard Anthony Secor (Edited )

    mariadb105 is missing in install-mysql ...

    # /usr/share/lve/dbgovernor/mysqlgovernor.py --mysql-version=mariadb105

    install-mysql: error: argument --mysql-version: invalid choice: 'mariadb105' (choose from 'auto', 'mysql51', 'mysql55', 'mysql56', 'mysql57', 'mysql80', 'mariadb55', 'mariadb100', 'mariadb101', 'mariadb102', 'mariadb103', 'mariadb104', 'percona56')

    Looks like a CloudLinux issue.
    MariaDB v 10.5 is not there yet
    1
    Comment actions Permalink
  • Avatar
    WeHoDo

    Hi, im quite new on Plesk.
    I have an VPS with Centos 7 installed with Plesk.
    SQL 5.5.60 is running.

    Is there an option to upgrade from Plesk gui?

    1
    Comment actions Permalink
  • Avatar
    Tara Kelly

    On CloudLinux - /usr/share/lve/dbgovernor/db-select-mysql is deprecated and doesn't seem to work any more.  Should be using /usr/share/lve/dbgovernor/mysqlgovernor.py --mysql-version mariadbXX

    1
    Comment actions Permalink
  • Avatar
    Alisa Kasyanova

    @Domenico

    Check if any Plesk-related packages were removed during the upgrade of MariaDB (in /var/log/yum.log they should be marked as "erased").
    If there were, run the autoinstaller and reinstall them:

    # wget https://autoinstall.plesk.com/plesk-installer
    # chmod +x plesk-installer
    # ./plesk-installer

    1
    Comment actions Permalink
  • Avatar
    Jan Bludau
    1. cp -a /var/lib/mysql/ /var/lib/mysql_backup

    for this command provide "-v"

    cp -v -a /var/lib/mysql/ /var/lib/mysql_backup  

    on lage Database you would be glad to see the output of copying and not a window where nothing happen....

    Plesk 18.11.x is MariaDB 10.3 compatible, works without Problems.

    ---- SNIP ----

    6.1. Open/create the MariaDB.repo file in any text editor. In this example, we are using the vi editor:

    vi /etc/yum.repos.d/MariaDB.repo

    6.2. Add the content below to the file:

    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/10.3/centos7-amd64
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1

    6.3. Save the changes and close the file.

     

    --- END OF SNIP ---

    1
    Comment actions Permalink
  • Avatar
    Ivan Postnikov

    Hello Learning Curve

    Thank you for the comment.

    The article was updated. Let us know in case you have something to add.

    1
    Comment actions Permalink
  • Avatar
    Markus

    Thank You very much Plesk Support Team ! ! ! It worked easy and successful like in the tutorial. Three days ago I reinitialized my 1und1 dedicated server with new Ubuntu 18.04.1 with Plesk 17.8.11 and MariaDB 10.1.36.

    NOW MariaDB 10.2.18 - PLESK is awesome 'n' great - Greets

    1
    Comment actions Permalink
  • Avatar
    Jan Bludau

    I would like to give a advise / complete the guide.

    if you have Watchdog configured to monitor mysql, it could happen that it will automatically try to start the server for example while copying cp -a the mariadb /data-folder/ ... then it woudn't succed. And i would recommend to disable watchdog monitoring while try to upgrade mysql / mariadb... it could cause errors...

    1
    Comment actions Permalink
  • Avatar
    Alexandr Redikultsev

    Hi @Bruno Schrotter!

    As MariaDB is a replacement for MySQL, upgrade it to MariaDB 10.1 (that is equal to MySQL 5.6). Just follow the instructions for CentOS 7, it should work as expected.

    1
    Comment actions Permalink
  • Avatar
    Signor Rossi

     Upgraded to MariaDB 10.3 on Plesk 17.8.11 on CentOS 7.5 successfully.

    1
    Comment actions Permalink
  • Avatar
    A T

    Dima Yaremenko Did you check the error messages ? in cat /var/log/messages | grep mariadb

    The redirecting is normal it should be named 'mariadb.service' to see all service type # systemctl
    Hmm and I notice on my server wdcollect.service failed. Just upgraded mariadb 5.5 to 10.5

    Please share some more error message,..

     

    1
    Comment actions Permalink
  • Avatar
    Learning Curve

    We followed the instructions provided on here and upgraded MariaDB 10.1 to MariaDB 10.2 on Ubuntu 18.04.1 running Plesk 17.8.11 #19 where MariaDB 10.2 is now officially supported. It worked first time, perfectly, with no issues.

    1
    Comment actions Permalink

Please sign in to leave a comment.

Have more questions? Submit a request