Seperti yang telah kita jelajahi di artikel sebelumnya tentang Seri Kinerja MySQL:MySQL vs. MariaDB, ada sedikit kerugian menggunakan MariaDB dibandingkan MySQL standar. Ketersediaan tinggi MariaDB kami telah membuktikan dirinya sebagai penerus yang layak dengan kekurangan yang mudah dikurangi. Sebagai artikel terakhir dalam seri kami, kami akan fokus pada peningkatan ke berbagai versi MySQL dan MariaDB di server berikut:
CentOS 6/7
- MySQL ke MariaDB di CentOS 6/7 dengan cPanel
- MySQL ke MariaDB di CentOS 7 dengan Plesk Onyx 17
- MySQL 5.1-5.5 hingga MariaDB 5.5 di CentOS 6
- MariaDB 5.5 hingga MariaDB 10.0 pada CentOS 6
Ubuntu 14.04/16.04
- MySQL 5.1-5.5 hingga MariaDB 5.5 di Ubuntu 14.04
- MySQL 5.7 hingga MariaDB 10.2 di Ubuntu 16.04
Memilih Paket Peningkatan MariaDB
Memilih rencana peningkatan yang tepat memerlukan penentuan versi MySQL mana yang berjalan pada sistem yang dimaksud. Metode universal untuk menentukan versi MySQL yang sedang dijalankan oleh server adalah dengan meminta server itu sendiri untuk melaporkan versi tersebut. Ini berfungsi sama meskipun distribusi Linux berjalan di server:
mysql -h localhost -e 'SHOW VARIABLES LIKE "version"\G'
Contoh Keluaran:
~ $ mysql -h localhost -p -e 'SHOW VARIABLES LIKE "version"\G'
*************************** 1. row ***************************
Variable_name: version
Value: 5.5.61-MariaDB
Setelah Anda mengidentifikasi versi MySQL Anda, gunakan kunci di bawah ini untuk menemukan prosedur peningkatan yang benar untuk server khusus Anda. Beberapa versi MySQL memerlukan peningkatan ke MariaDB 5.5 sebelum meningkatkan ke versi MariaDB 10.x.
Meningkatkan versi dari MySQL ke MariaDB
Proses peningkatan serupa di antara sebagian besar jenis server. Ada perbedaan dengan perintah khusus yang dijalankan, tetapi keseluruhan prosedur mengikuti Prosedur Peningkatan Umum:
- Jadwalkan waktu henti yang akurat.
- Pastikan pencadangan yang memadai.
- Hapus binari/paket MySQL yang ada.
- Instal repositori MariaDB yang benar.
- Hapus cache repositori untuk menghapus data paket lama.
- Instal paket MariaDB melalui manajer paket sistem.
- Mulai MariaDB dengan memulai layanan MySQL.
- Jalankan skrip pemutakhiran MySQL.
- Konfirmasi bahwa database MySQL dapat diakses dan data sudah benar
Kami telah menyertakan prosedur khusus di bawah ini untuk berbagai sistem Liquid Web. Sebelum memilih prosedur peningkatan versi yang berlaku, izinkan kami meninjau dua langkah pertama dalam Prosedur Peningkatan Umum di atas . Langkah-langkah ini umumnya bersifat universal dan sangat penting untuk keberhasilan rencana pemeliharaan apa pun.
Jadwalkan Waktu Henti yang Akurat
Menjadwalkan jendela perawatan yang tepat untuk melakukan perubahan yang memengaruhi lingkungan produksi bisa jadi rumit. Jendela peristiwa pemeliharaan harus mencakup waktu yang cukup untuk melakukan semua tugas yang diperlukan dalam rencana pemeliharaan, ditambah pemecahan masalah dan waktu ekstra untuk menyelesaikan Rencana Pengembalian jika diperlukan.
Pastikan Cadangan yang Memadai
Ada lebih banyak rencana pencadangan pemeliharaan daripada sekadar mencadangkan file dan basis data. Anda juga perlu membentuk Rencana Pengembalian, yang menguraikan proses untuk memulihkan lingkungan ke keadaan semula sebelum dimulainya pemeliharaan.
Peristiwa pemeliharaan terkadang dapat menyebabkan masalah yang tidak terduga dengan alternatif kembali ke cadangan. Memiliki rencana pencadangan yang valid dan rencana pengembalian yang valid untuk memulihkan layanan merupakan komponen penting dari pemeliharaan yang berhasil. Di bawah ini adalah garis besar dari keduanya Contoh Rencana Pencadangan dan Contoh Rencana Pengembalian yang dapat digunakan dengan prosedur peningkatan versi artikel ini.
Contoh Paket Cadangan
+Contoh Rencana Pengembalian
+MySQL ke MariaDB di CentOS 6/7 dengan cPanel
Semua image server Liquid Web cPanel termasuk MariaDB 5.5 yang sudah diinstal. Ini termasuk gambar server CentOS 6 dan CentOS 7. Tidak perlu memutakhirkan kecuali seri MariaDB 10.x diperlukan. Untuk pemutakhiran manual, prosedur seperti yang disediakan oleh MariaDB di sini:Pemutakhiran dari MariaDB 5.5 ke MariaDB 10.0, jika tidak, cPanel menyediakan antarmuka tunjuk &klik yang mudah untuk Anda. Ikuti salah satu prosedur di bawah ini baik dalam bentuk 'Teks Saja' atau bentuk Grafik.
Petunjuk Peningkatan cPanel MariaDB:
Langkah A) Konfirmasi bahwa cadangan tersedia sebelum melanjutkan pada waktu yang dijadwalkan.
Langkah B) Masuk ke WHM dan muat Peningkatan MySQL/MariaDB halaman:
① Gunakan kotak telusur cepat di sebelah kiri dan ketik: upgrade mysql
② Temukan dan Klik Peningkatan MySQL/MariaDB tautan.
Memilih versi MariaDB yang Anda inginkan.
Klik tombol Berikutnya.
Langkah C) Tunggu hingga “Peringatan Peningkatan Versi ” halaman untuk menyelesaikan pemuatan.
① Baca &akui setiap pesan peringatan dengan mengaktifkan setiap kotak centang.
Klik tombol Lanjutkan .
Langkah D) Tunggu hingga “Jenis Peningkatan ” halaman untuk menyelesaikan pemuatan.
① Pilih Upgrade Tanpa Pengawasan untuk pengalaman upgrade yang lancar.
Klik tombol Lanjutkan .
Langkah E) Tunggu hingga Proses Upgrade selesai.
MySQL ke MariaDB di CentOS 7 dengan Plesk Onyx 17
Semua image server Liquid Web CentOS 7 termasuk MariaDB 5.5 yang sudah diinstal, termasuk server CentOS 7 Plesk Onyx 17 kami. Tidak perlu memutakhirkan kecuali seri MariaDB 10.x diperlukan. Dalam kasus ini, ikuti Prosedur Pemutakhiran Plesk MariaDB standar di sini:Cara memutakhirkan MySQL 5.5 ke 5.6/5.7 atau MariaDB 5.5 ke 10.0/10.1/10.2 di Linux
MySQL 5.1-5.5 hingga MariaDB 5.5 pada CentOS 6
Karena keterbatasan kompatibilitas, MySQL 5.1, 5.2, 5.3 dan 5.5.x harus diupgrade ke MariaDB 5.5 dan tidak dapat diupgrade ke MariaDB 10.0 secara langsung. Rencana peningkatan ini akan berjalan dengan mendapatkan salah satu dari versi MySQL yang tidak digunakan lagi ini ditingkatkan ke MariaDB 5.5. Setelah upgrade ke MariaDB 5.5 selesai, ikuti Cara meningkatkan MariaDB 5.5 ke MariaDB 10.0 di CentOS 6 petunjuk untuk melanjutkan proses peningkatan ke MariaDB 10.
Langkah 1: Konfirmasi bahwa cadangan ada sebelum melanjutkan pada waktu yang dijadwalkan.
Langkah 2: Hentikan layanan MySQL.
service mysqld stop
Contoh Output:
~ $ service mysqld restart
Stopping mysqld: [ OK ]
Langkah 3: Instal repositori MariaDB 5.5 untuk CentOS 6
cat < /etc/yum.repos.d/MariaDB.repo
Perintah ini tidak memiliki keluaran yang terlihat kecuali terjadi kesalahan.
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
Langkah 4: Bersihkan cache repositori yum
yum clean all
Contoh Keluaran:
~ $ yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base extras mariadb updates
Cleaning up Everything
Cleaning up list of fastest mirrors
Langkah 5: Hapus paket MySQL
yum remove mysql-server mysql
Contoh Keluaran:
Running Transaction Test
Dipotong untuk singkatnya.
Transaction Test Succeeded
Running Transaction
Erasing : mysql-server-5.1.73-8.el6_8.x86_64 1/1
warning: /var/log/mysqld.log saved as /var/log/mysqld.log.rpmsave
Verifying : mysql-server-5.1.73-8.el6_8.x86_64 1/1
Removed:
mysql-server.x86_64 0:5.1.73-8.el6_8
Complete!
Langkah 6: Instal server MariaDB danKlien MariaDB paket melalui yum.
yum install MariaDB-server MariaDB-client -y
Contoh Output:Installed:
Dipotong untuk singkatnya.
MariaDB-client.x86_64 0:10.1.35-1.el6 MariaDB-compat.x86_64 0:10.1.35-1.el6 MariaDB-server.x86_64 0:10.1.35-1.el6
Dependency Installed:
MariaDB-common.x86_64 0:10.1.35-1.el6 boost-program-options.x86_64 0:1.41.0-28.el6
galera.x86_64 0:25.3.23-1.rhel6.el6 jemalloc.x86_64 0:3.6.0-1.el6
Replaced:
mysql-libs.x86_64 0:5.1.73-8.el6_8
Complete!
Langkah 7: Mulai ulang layanan MySQL
service mysql start
Contoh Keluaran:
~ $ service mysql start
Langkah 8: Jalankan alat peningkatan versi MySQL
Starting MariaDB.180808 18:21:13 mysqld_safe Logging to '/var/lib/mysql/cent6.hostname.err'.
180808 18:21:13 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
SUCCESS!
mysql_upgrade
Contoh Keluaran:
~ $ mysql_upgrade
Dipotong untuk singkatnya.
MySQL upgrade detected
Phase 1/4: Fixing views from mysql
mysql
mysql.columns_priv OK
mysql.db OK
mysql.event OK
mysql.func 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
Phase 4/4: Running 'mysql_fix_privilege_tables'
OK
Langkah 9: Konfirmasi bahwa server MariaDB berjalan seperti yang diharapkan
mysql -e 'SHOW VARIABLES LIKE "version"\G'
Contoh Keluaran:
~ $ mysql -e 'SHOW VARIABLES LIKE "version"\G'
*************************** 1. row ***************************
Variable_name: version
Value: 5.5.61-MariaDB
Langkah 10: Pembaruan selesai, periksa apakah basis data Anda ada dan berfungsi.
[ Opsional ] ikuti petunjuk Cara memutakhirkan MariaDB 5.5 ke MariaDB 10.0 pada CentOS 6.
MariaDB 5.5 hingga MariaDB 10.0 pada CentOS 6
Langkah 1: Konfirmasi bahwa cadangan ada sebelum melanjutkan pada waktu yang dijadwalkan.
Langkah 2: Hapus semua paket MariaDB.
yum remove MariaDB-*
Contoh Output:Running Transaction Test
Dipotong untuk singkatnya.
Transaction Test Succeeded
Running Transaction
Erasing : MariaDB-server-5.5.61-1.el6.x86_64 1/2
Erasing : MariaDB-client-5.5.61-1.el6.x86_64 2/2
Verifying : MariaDB-server-5.5.61-1.el6.x86_64 1/2
Verifying : MariaDB-client-5.5.61-1.el6.x86_64 2/2
Removed:
MariaDB-client.x86_64 0:5.5.61-1.el6 MariaDB-server.x86_64 0:5.5.61-1.el6
Complete!
Langkah 3: Hapus repositori MariaDB yang ada.
rm -f /etc/yum.repos.d/MariaDB*.repo
Perintah ini tidak memiliki output yang terlihat kecuali terjadi kesalahan.
Langkah 4: Buat file repositori MariaDB 10.O Yum.
cat < /etc/yum.repos.d/MariaDB.repo
Perintah ini tidak memiliki output yang terlihat kecuali terjadi kesalahan.
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
Langkah 5: Bersihkan cache Yum.
yum clean all
Contoh Keluaran:
~ $ yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base extras mariadb updates
Cleaning up Everything
Cleaning up list of fastest mirrors
Langkah 6: Instal server MariaDB dan MariaDB-klien paket melalui Yum.
yum install MariaDB-server MariaDB-client
Contoh Output:
Dipotong untuk singkatnya.
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : MariaDB-client-10.0.36-1.el6.x86_64 1/2
Installing : MariaDB-server-10.0.36-1.el6.x86_64 2/2
Verifying : MariaDB-server-10.0.36-1.el6.x86_64 1/2
Verifying : MariaDB-client-10.0.36-1.el6.x86_64 2/2
Installed:
MariaDB-client.x86_64 0:10.0.36-1.el6 MariaDB-server.x86_64 0:10.0.36-1.el6
Complete!
Langkah 7: Mulai Layanan MySQL.
service mysql start
Langkah 8: Jalankan skrip Peningkatan MySQL.
mysql_upgrade
Langkah 9: Upgrade selesai, periksa apakah database Anda ada dan berfungsi.
MySQL 5.1-5.5 hingga MariaDB 5.5 di Ubuntu 14.04
Langkah 1: Konfirmasi bahwa cadangan ada sebelum melanjutkan pada waktu yang dijadwalkan.
Langkah 2: Instal repositori MariaDB 5.5 dengan one-liner ini, ini akan menginstal alat yang diperlukan yang diperlukan (jika tidak ada), kunci GPG Ubuntu 14.04 dan repositori MariaDB 5.5 saat memperbarui cache paket apt.
sudo apt-get install software-properties-common -y
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://ftp.osuosl.org/pub/mariadb/repo/5.5/ubuntu trusty main'
sudo apt-get update
Contoh Output:~ $ sudo apt-get install software-properties-common -y > /dev/null
Dipotong untuk singkatnya.
~ $ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.PtpHIXMNvY --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
gpg: requesting key 1BB943DB from hkp server keyserver.ubuntu.com
gpg: key 1BB943DB: public key "MariaDB Package Signing Key <[email protected]>" imported
gpg: Total number processed: 1
gpg: imported: 1
~ $ sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://ftp.osuosl.org/pub/mariadb/repo/5.5/ubuntu trusty main'
~ $ sudo apt-get update > /dev/null
Langkah 3: Hentikan layanan mysql.
sudo service mysql stop
Contoh Output:~ $ sudo service mysql stop
mysql stop/waiting
Langkah 4: Ganti nama file konfigurasi MySQL /etc/mysql/my.cnf menjadi /etc/mysql/my.cnf.bak. Langkah ini diperlukan untuk memastikan semua arahan/variabel yang tidak kompatibel telah dihapus dari konfigurasi untuk mencegah masalah dengan penginstalan.
sudo mv /etc/mysql/my.cnf{,.bak}
Langkah 5: Instal mariadb-server kemasan. Ini secara bersamaan akan menghapus binari MySQL yang ada dan kemudian menginstal binari MariaDB baru. sudo apt-get install mariadb-server -y
Contoh Keluaran:
+Langkah 6: Selama instalasi, dialog di layar akan muncul meminta untuk mengubah kata sandi root MySQL dua kali. Ikuti petunjuk untuk mengubah kata sandi atau melewati perubahan dengan memberikan kata sandi kosong.
Langkah 7 Ketika berhasil diselesaikan, layanan mysql akan secara otomatis memulai dan skrip mysql_upgrade selesai secara otomatis selama proses instalasi.
A) Periksa apakah layanan mysql berjalan.sudo service mysql status
Contoh Output:~ $ sudo service mysql status
mysql start/running, process 4745
B) Periksa apakah mysql_upgrade berhasil.sudo mysql_upgrade
Contoh Output:~ $ sudo mysql_upgrade
This installation of MySQL is already upgraded to 5.5.61-MariaDB, use --force if you still need to run mysql_upgrade
Langkah 8: Upgrade selesai, periksa apakah database Anda ada dan berfungsi.
MySQL 5.7 hingga MariaDB 10.2 di Ubuntu 16.04
Langkah 1: Konfirmasi bahwa cadangan ada sebelum melanjutkan pada waktu yang dijadwalkan.
Langkah 2: Periksa akun root lokal memiliki kata sandi yang tepat. Sebelum memutakhirkan ke MariaDB 10.2, periksa 'root' @ 'localhost' pengguna untuk memastikan sandi ditetapkan sebaliknya, auth_socket plugin menggunakan kata sandi kosong. Ini adalah praktik umum dalam pengaturan lama dan menyebabkan masalah dengan proses peningkatan karena mode default MariaDB 10.2 di SQL Ketat.
Skrip berikut akan mencetak detail pengguna root lokal.
mysql -e 'select User,Host,Plugin,authentication_string from user where authentication_string = "" and plugin = "auth_socket";' mysql
Contoh Output:~ $ mysql -e 'select User,Host,Plugin,authentication_string from user where authentication_string = "" and plugin = "auth_socket";' mysql
+------+-----------+-------------+-----------------------+
| User | Host | Plugin | authentication_string |
+------+-----------+-------------+-----------------------+
| root | localhost | auth_socket | |
+------+-----------+-------------+-----------------------+
Berikut adalah dua contoh cara memperbarui entri ini.
Metode Otomatis :Baris berikut membaca kata sandi dari /root/.my.cnf dan menggunakan kata sandi itu untuk memperbarui entri pengguna MySQL, jika file tersebut ada.
sudo test -e /root/.my.cnf && sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$(awk -F"[=']" 'tolower($1)~/password/{print $(NF-1)}' /root/.my.cnf)'; select User,Host,Plugin,authentication_string from user where user = 'root' and host = 'localhost';" mysql || echo “ERROR: /root/.my.cnf does not exist, are you root?”
Contoh Output:~ $ sudo test -e /root/.my.cnf && sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$(awk -F"[=']" 'tolower($1)~/password/{print $(NF-1)}' /root/.my.cnf)'; select User,Host,Plugin,authentication_string from user where user = 'root' and host = 'localhost';" mysql || echo “ERROR: /root/.my.cnf does not exist, are you root?”
+------+-----------+-----------------------+-------------------------------------------+
| User | Host | Plugin | authentication_string |
+------+-----------+-----------------------+-------------------------------------------+
| root | localhost | mysql_native_password | *40C5E49F0CC7BDC637FEEDFBF14FF100C37619D7 |
+------+-----------+-----------------------+-------------------------------------------+
Metode Manual: Sintaks berikut diperlukan untuk menambahkan kata sandi yang tepat ke akun pengguna root. Jangan lupa untuk memperbarui file /root/.my.cnf dengan kata sandi yang benar atau pembaruan Anda mungkin mengalami kesalahan. Pastikan untuk mengganti kata sandi yang benar untuk SuperSecretPass.
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘SuperSecretPass’;
Langkah 3: Instal repositori MariaDB 10.2. Ini adalah bait multi-perintah yang akan menginstal alat yang diperlukan, kunci GPG, repositori, dan memperbarui cache paket.
sudo apt-get install software-properties-common -y > /dev/null
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,arm64,i386,ppc64el] http://ftp.osuosl.org/pub/mariadb/repo/10.2/ubuntu xenial main'
sudo apt-get update > /dev/null
Contoh Output:~ $ sudo apt-get install software-properties-common -y
Dipotong untuk singkatnya.
~ $ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
Executing: /tmp/tmp.J8PdET9w5B/gpg.1.sh --recv-keys
--keyserver
hkp://keyserver.ubuntu.com:80
0xF1656F24C74CD1D8
gpg: requesting key C74CD1D8 from hkp server keyserver.ubuntu.com
gpg: key C74CD1D8: public key "MariaDB Signing Key <[email protected]>" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
~ $ sudo add-apt-repository 'deb [arch=amd64,arm64,i386,ppc64el] http://ftp.osuosl.org/pub/mariadb/repo/10.2/ubuntu xenial main'
~ $ sudo apt-get update > /dev/null
Langkah 4: Hentikan layanan mysql.
sudo service mysql stop
Contoh Output:~ $ sudo service mysql stop
mysql stop/waiting
Langkah 5: Ganti nama file konfigurasi MySQL /etc/mysql/my.cnf menjadi /etc/mysql/my.cnf.bak. Langkah ini diperlukan untuk memastikan semua arahan/variabel yang tidak kompatibel telah dihapus dari konfigurasi untuk mencegah masalah dengan instalasi.sudo mv /etc/mysql/my.cnf{,.bak}
Langkah 6: Instal paket mariadb-server. Ini secara bersamaan akan menghapus binari MySQL yang ada dan kemudian menginstal binari MariaDB yang baru.
sudo apt-get install mariadb-server -y
Contoh Output:~ $ sudo apt install mariadb-server -y</code?
Langkah 7: Selama penginstalan, dialog di layar akan muncul yang menanyakan bahwa kata sandi root tidak dapat diubah karena sudah ada. Tekan enter untuk melanjutkan.
Langkah 8: Ketika berhasil diselesaikan, layanan mysql akan otomatis dimulai.sudo service mysql status
Contoh Output:~ $ sudo service mysql status
mysql start/running, process 4745
Langkah 9: Terakhir, jalankan mysql_upgrade untuk menyelesaikan upgrade.sudo mysql_upgrade
Outputnya menggambarkan kesalahan normal saat memutakhirkan.
Contoh Keluaran:
+Langkah 10: Upgrade selesai, periksa apakah database Anda ada dan berfungsi.