Menggantikan MySQL dengan MariaDB pada VestaCP

Pembahasan kali ini adalah bagaimana cara menggantikan database server MySQL yang disertakan dalam VestaCP menjadi MariaDB. Topik ini awalnya ditanyakan oleh mas Putra dan saya pikir bisa dibahas lebih lanjut. Ya, sudah saatnya kita beralih ke yang lebih baik memang. 🙂

Sedikit catatan, walaupun prosesnya kalau anda ikuti tampaknya mudah tapi harap lakukan backup dulu. Ini kita akan memodifikasi satu bagian dari paket web server yang sudah terintegrasi, walau pas saya coba ya normal – normal saja tapi kan belum tentu pas anda coba lancar. Jadi resiko tetaplah ada. Lebih cocok langsung dilakukan pas instalasi baru VestaCP, kalau sudah secara aktif digunakan untuk web hosting maka sangat wajib backup.

Sekarang saya ingin mengubah MySQL 5.5.46 bawaan aslinya dengan (tidak nanggung – nanggung) ke MariaDB 10.1.10 yang adalah versi terbarunya saat ini. Tapi secara langkah demi langkah sama saja kok untuk MariaDB 5.5 dan MariaDB 10.0, cuma beda di repositorynya kalau saya amati. Oh ya, saya menggunakan Debian 8 untuk VPSnya.

Kita install dulu ya syarat – syaratnya:

apt-get install software-properties-common

Tambahkan kunci identifikasi repository MariaDB:

apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db

Akhirnya kita menambahkan repositorynya:

add-apt-repository 'deb [arch=amd64,i386] http://mariadb.mirror.triple-it.nl/repo/10.1/debian jessie main'

Baru kita install MariaDB:

apt-get install mariadb-server

Tinggal kita menunggu proses instalasi dan ini akan otomatis menghapus MySQL juga migrasi data – datanya ke MariaDB. Jadi kita tinggal menunggu saja prosesnya selesai. Di tengah – tengah prosesnya akan diminta mengisikan password rootnya, ini langsung tekan ENTER saja agar menggunakan defaultnya.

Reboot server anda untuk memastikan konversi MySQL ke MariaDB sukses dengan sempurna.

Kalau sudah selesai maka bisa anda cek sendiri kalau sudah berubah versinya:

mysql -V

Akan tampil balasan seperti berikut:

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

Sebenarnya prosesnya tidak berbeda sama sekali walaupun tanpa VestaCP dalam VPSnya, disini letak bagusnya control panel satu ini dimana mereka menggunakan paket aplikasi standar dari repository yang ada. Jadi lebih aman dan fleksible dalam modifikasi isinya.

16 pemikiran pada “Menggantikan MySQL dengan MariaDB pada VestaCP

  1. Berhasil 😀 Makasih mas Chandra yang sudah meluangkan waktu membuat panduan yang sangat saya butuhkan ini. Kebetulan saya pake VPS OS Ubuntu 14.04 jadi langkah-langkahnya sama dari yang di atas.

    Ingin tahu juga mas, kalau boleh minta saran mengenai web server untuk VPS agar lebih hemat RAM dan peforma bagus yang pakai control panel VestaCP, lebih baik menggunakan apache + nginx(reverese proxy) ataukah nginx(murni) + php-fpm mas ?

    • Sama – sama mas. 🙂 Saya jadi ada niatan mencoba kalau ada yang butuh. Haha. 😀 Jadi pembelajaran juga ternyata mudah kok, persis konversi MySQL ke MariaDB biasa.

      Oh? Langsung bisa diterapkan mas? Memang sih Debian dan Ubuntu masih satu akar jadi wajar kalau kompatibel langkah – langkahnya. Tapi saya sisipkan kode untuk Ubuntu 14.04 buat referensi lain kali:

      apt-get install software-properties-common
      apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
      add-apt-repository 'deb [arch=amd64,i386] http://mariadb.mirror.triple-it.nl/repo/10.1/ubuntu trusty main'
      apt-get update
      apt-get install mariadb-server

      Kalau dipikir – pikir saya bicara panjang lebar dalam panduannya tapi intinya ya cuma 5 baris ini. Ahahaha. 😀

      Kalau masih ingin menggunakan VestaCP tapi hemat memori ya gunakan murni Nginx mas, tapi jangan lupa setting permalink CMSnya. Di Nginx tidak mendukung .htaccess soalnya untuk rewrite url, kalau lupa nanti error 404 - Not found semua linknya.

      Bila membutuhkan malah bisa dioptimalkan dari awal script instalasi VestaCP mas:

      1. Seperti biasa kita download dulu script instalasinya:
        wget http://vestacp.com/pub/vst-install.sh
      2. Kemudian eksekusi installernya dengan parameter berikut:

      3. bash vst-install.sh --nginx yes --phpfpm yes --apache no --vsftpd yes --proftpd no --exim no --dovecot no --spamassassin no --clamav no --named no --iptables yes --fail2ban yes --mysql yes --postgresql no --remi yes --quota no --hostname example.com --email admin@example.com --password example123

      Yang tidak diinstall nantinya adalah Apache (httpd), DNS server (named), dan Mail hosting (exim, dovecot, spamassassin, clamav). Ketiga hal ini tidak pernah saya gunakan dalam VestaCP jadi cuma memberatkan VPS saja menurut saya. Tapi kebutuhan setiap orang bisa berbeda, cuma masalah preferensi saja jadinya butuh fitur yang mana.

      Eh lebih tepatnya saya masih install Apache karena butuh rewrite urlnya, buat hosting situs klien. Tapi kalau hanya mengincar performa dan saya gunakan sendiri ya kurang lebih seperti diatas scriptnya.

      Jangan lupa diganti nilai pada 3 parameter akhirnya. Itu untuk setting hostname, email administrator dan password adminnya juga.

  2. Makasih tutorialnya mas.
    Mas Chandra mau tanya, kalau kita mau pindah dari perintah mysql -v ke root lagi gimana ya mas? saya ketik sudo su koq ga bisa, exit juga ga bisa, binggung jadinya.. hehe
    maaf tanyanya basic banget 😀

  3. Mas Chandra, sy mengalami error page not found 404.
    Bisanya hanya homepage selain itu page not found. Kl dirubah di permalinknya jadi default bisa, kalau di balikin ke format permalink post error lagi.
    Sudah nyoba cara menambahkan ” try_files $uri $uri/ /index.php?q=$uri&$args; ” pada nginx.conf di “/home/user/web/nginx.conf”
    namun masih sama.

    Mungkin ada konfigurasi tambahan untuk vestacp mas?

    • Oh mas edit konfigurasinya virtual host Nginx untuk website tersebut mas. Bukan edit miliknya Nginx.

      Kalau ga salah untuk Vesta ada di /home/nama_user/conf/nginx.conf

  4. mas ini saya kutipkan

    location / {
    
            location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
                expires     max;
            }
    
            location ~ [^/]\.php(/|$) {
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                  if (!-f $document_root$fastcgi_script_name) {
                    return  404;
                }
    
                fastcgi_pass    127.0.0.1:9003;
                fastcgi_index   index.php;
                include         /etc/nginx/fastcgi_params;
            }
    
    saya tambahkan
    
    try_files $uri $uri/ /index.php?q=$uri&$args;
    jadi seperti ini
    
    
    location / {
    
            location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
                expires     max;
            }
    
            location ~ [^/]\.php(/|$) {
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                  try_files $uri $uri/ /index.php?q=$uri&$args;if (!-f $document_root$fastcgi_script_name) {
                    return  404;
                }
    
                fastcgi_pass    127.0.0.1:9003;
                fastcgi_index   index.php;
                include         /etc/nginx/fastcgi_params;
            }
    bener ga ya mas, koq saya test ga mau ya?
    • Seharusnya:

      location / {
              try_files $uri $uri/ /index.php?q=$uri&$args;if (!-f $document_root$fastcgi_script_name)
              
              location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
                  expires     max;
              }
      
              location ~ [^/]\.php(/|$) {
                  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                     {
                      return  404;
                  }
      
                  fastcgi_pass    127.0.0.1:9003;
                  fastcgi_index   index.php;
                  include         /etc/nginx/fastcgi_params;
              }

      Jangan lupa setelah itu nginx direstart.

  5. Setelah saya edit kaya petunjuk mas Chandra, saya jalankan

    nginx -s reload

    malah keluar error

    nginx : [emerg] invalid condition "^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$" in /home/user/conf/web/nginx.conf:13

    Saya pakainya vestacp Nginx PHP-FPM mas.
    Setting nginx permalink di vestacp cukup membuat frustasi jg.. hehe

  6. Alhamdulillah sudah berhasil mas.. hehe 😀
    Trial dan error akhirnya bisa. Mungkin ada yang butuh, ini setingan permalink Nginx PHP-FPM

    location / {
            try_files $uri $uri/ /index.php?q=$uri&$args;
            }
            
            location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
                expires     max;try_files $uri $uri/ /index.php?q=$uri&$args;
            }
    
            location ~ [^/]\.php(/|$) {
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                if (!-f $document_root$fastcgi_script_name)
                    {
                    return  404;
                }
    
                fastcgi_pass    127.0.0.1:9003;
                fastcgi_index   index.php;
                include         /etc/nginx/fastcgi_params;
            }
    
        error_page  403 /error/404.html;
        error_page  404 /error/404.html;
        error_page  500 502 503 504 /error/50x.html;
    • Astaga… mohon maaf mas tadi menyesatkan berarti. Saya cuma ingat itu dimasukkan ke blok location / {} dan baru kelihatan salahnya dimana semuana digabung.

      Terimakasih buat koreksinya juga. 🙂

  7. Unable to locate package mariadb-server , hanya mengganti sudo add-apt-repository 'deb http://mirror.stshosting.co.uk/mariadb/repo/10.0/debian wheezy main' tapi masih tampil error E: Unable to locate package mariadb-server

    • Halo mas Junh, coba pakai repositorynya DigitalOcean London, UK:

      apt-get install python-software-properties
      apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
      add-apt-repository 'deb [arch=amd64,i386] http://lon1.mirrors.digitalocean.com/mariadb/repo/10.1/debian wheezy main'
      apt-get update
      apt-get install mariadb-server
  8. setelah diganti ke MariaDB fitur backup pada VestaCP error gan, tdk bisa backup database.

    mohon solusinya

    • Wajar mas, walaupun kompatibel tapi tetap saja ada yang berbeda. Sedangkan untuk memulihkan fitur backupnya saya belum ada pikiran masalahnya dimana dan bagaimana solusinya.

      Coba log DBnya dicopas disini.

Tinggalkan komentar