Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kinerja MySQL:Mengonversi MySQL ke MariaDB

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:

  1. Jadwalkan waktu henti yang akurat.
  2. Pastikan pencadangan yang memadai.
  3. Hapus binari/paket MySQL yang ada.
  4. Instal repositori MariaDB yang benar.
  5. Hapus cache repositori untuk menghapus data paket lama.
  6. Instal paket MariaDB melalui manajer paket sistem.
  7. Mulai MariaDB dengan memulai layanan MySQL.
  8. Jalankan skrip pemutakhiran MySQL.
  9. 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
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
Perintah ini tidak memiliki keluaran yang terlihat kecuali terjadi kesalahan.

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
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!
Dipotong untuk singkatnya.

Langkah 6: Instal server MariaDB danKlien MariaDB paket melalui yum.

yum install MariaDB-server MariaDB-client -y

Contoh Output:Installed:
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!
Dipotong untuk singkatnya.

Langkah 7: Mulai ulang layanan MySQL

service mysql start Contoh Keluaran:

~ $ service mysql start
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!
Langkah 8: Jalankan alat peningkatan versi MySQL

mysql_upgrade Contoh Keluaran:

~ $ mysql_upgrade
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
Dipotong untuk singkatnya.

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
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!
Dipotong untuk singkatnya.

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
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
Perintah ini tidak memiliki output yang terlihat kecuali terjadi kesalahan.

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:

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!
Dipotong untuk singkatnya.

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
~ $ 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
Dipotong untuk singkatnya.

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
~ $ 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
Dipotong untuk singkatnya.

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.

Navigasi Seri<>

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TIME_TO_SEC() Contoh – MySQL

  2. Dapatkan nilai AUTO_INCREMENT saat ini untuk tabel apa pun

  3. MySQL SELECT beberapa hari terakhir?

  4. Panduan Merancang Database Untuk Manajemen Blog Di MySQL

  5. Cara Mengatur Ulang Kata Sandi Root MySQL