Satu perintah wajib setelah upgrade MySQL

Langkah – langkah upgrade database server MySQL dan forknya MariaDB atau Percona itu urusan mudah. tinggal modifikasi repository bila perlu (jarang terjadi kecuali anda ingin upgrade misal MariaDB 5.5. ke 10.1) dan lakukan perintah update pada VPS anda seperti biasanya. Bahkan kalau anda cek versinya maka sudah tampak kalau telah digantikan versi paling barunya.

mysql  Ver 15.1 Distrib 10.1.11-MariaDB, for Linux (i686) using readline 5.1

Nah… disinilah bisa jadi letak kesalahpahamannya dan memang menyesatkan. Karena proses upgradenya sangat cepat dan mudah maka rata – rata orang akan langsung puas karena sukses prosesnya tanpa ada masalah. Service MySQL pun normal digunakan.

Tapi ini belum tentu menggunakan kemampuan penuh dari database server yang baru, anda wajib mengeksekusi perintah:

mysql_upgrade

Ini agar struktur konfigurasi dan database yang ada didalamnya disesuaikan seperti setting permissions juga apakah seluruh tabelnya tidak bermasalah pada versi terbaru MySQL.

Jalannya proses akan seperti berikut:

Phase 1/4: Fixing views
Phase 2/4: Fixing table and database names
Phase 3/4: Checking and upgrading tables
Processing databases
information_schema
mysql
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.event                                        OK
mysql.func                                         OK
mysql.help_category                                OK
mysql.help_keyword                                 OK
mysql.help_relation                                OK
mysql.help_topic                                   OK
mysql.host                                         OK
mysql.ndb_binlog_index                             OK
mysql.plugin                                       OK
mysql.proc                                         OK
mysql.procs_priv                                   OK
mysql.proxies_priv                                 OK
mysql.servers                                      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.user                                         OK
performance_schema
servernesia
servernesia.sib_model_contact                            OK
servernesia.wp_commentmeta                               OK
servernesia.wp_comments                                  OK
servernesia.wp_ewwwio_images                             OK
servernesia.wp_links                                     OK
servernesia.wp_options                                   OK
servernesia.wp_postmeta                                  OK
servernesia.wp_posts                                     OK
servernesia.wp_term_relationships                        OK
servernesia.wp_term_taxonomy                             OK
servernesia.wp_termmeta                                  OK
servernesia.wp_terms                                     OK
servernesia.wp_usermeta                                  OK
servernesia.wp_users                                     OK
Phase 4/4: Running 'mysql_fix_privilege_tables'
OK

Selesai.

Tapi kalau muncul pesan kesalahan seperti berikut:

Version check failed. Got the following error when calling the 'mysql' command line client
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
FATAL ERROR: Upgrade failed

Maka eksekusi perintahnya dengan tambahan parameter login root:

mysql_upgrade -u root -p

Perintah diatas juga berlaku untuk MariaDB dan Percona, sudah standarnya dari fork MySQL memang. Saya anjurkan agar selalu dijalankan setelah upgrade ke versi major, seperti MySQL 5.5 ke 5.7 atau malah loncat jauh seperti MariaDB 5.5 ke 10.1.

Semoga bermanfaat. 🙂

12 pemikiran pada “Satu perintah wajib setelah upgrade MySQL”

  1. mas chandra,
    sebelum proses update apa perlu dimatikan dulu proses mariadbnya baru eksekusi update setelah itu hidupkan lagi dan proses terakhir mysql_upgrade -u root -p ? trims mas.

    • Ya sangat disarankan sih mbak untuk mematikan proses MariaDB dulu baru menjalankan update/upgradenya. Lakukan backup juga sekalian.

      Seingat saya ga perlu dijalankan tetap bisa mengeksekusi perintah mysql_upgrade kok mbak. Baru setelahnya dijalankan lagi service/daemonnya. Apa saya yang salah ya. Haha. 😀 Nanti saya cek lagi.

  2. sukses dengan langkah2 sbb :

    /etc/init.d/mysql stop
    
    yum update -y
    
    /etc/init.d/mysql start
    
    mysql_upgrade -u root -p
    
    service memcached restart && /etc/init.d/php-fpm restart && service nginx restart && /etc/init.d/mysql restart

    trims berat buat tutorialnya mas chandra 🙂

  3. mas chandra,
    saya coba update versi mariadb dari versi 10.1.17 ke versi 10.1.18.
    pertama saya lakukan perintah berikut :

    /etc/init.d/mysql stop
    yum update -y

    saat proses start mariadb dengan perintah berikut :

    /etc/init.d/mysql start

    muncul tulisan berikut :

    Starting MySQL.161011 mysqld_safe Logging to '/var/log/mysqld.log'.

    apa itu normal ya mas?
    sebelumnya setiap start mariadb muncul pesan success.

    • Ini di CentOS 6 kan mbak? Repo resmi MariaDB? Saya barusan coba update dan muncul pesan yang sama. Mungkin ini tambahan pada versi terbaru ya. Saya asumsikan sih normal soalnya ga ada masalah terjadi setelahnya.

      • iya mas, centos 6 repo resmi mbak maria, tumben muncul pesan kayak gitu tapi sampai saat ini nggak ada masalah 🙂

  4. update ke mariadb 10.1.21, muncul satu lagi notif tambahan selain notif sebelumnya :

    Starting MySQL.170212 07:39:57 mysqld_safe Logging to '/var/log/mysqld.log'.
    170212 07:39:57 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
     SUCCESS!

    iseng coba instal dari awal LEMP stack, khusus untuk mariadb saat eksekusi perintah /etc/init.d/mysql start, muncul notif :

    /usr/bin/mysqld_safe_helper: Can't create/write to file '/var/log/mysqld.log' (Errcode: 13 "Permission denied")

    solved dengan perintah berikut :

    chown mysql:mysql /var/log

    coba gogling, error di atas hanya di centos 6, kalau di centos 7 nggak ada masalah.
    referensi https://jira.mariadb.org/browse/MDEV-11841

Tinggalkan komentar