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

Mengatur Variabel Konfigurasi MySQL – MySQL 5.7 vs MySQL 8.0

Variabel konfigurasi MySQL adalah sekumpulan variabel sistem server yang digunakan untuk mengonfigurasi operasi dan perilaku server. Dalam posting blog ini, kami akan menjelaskan perbedaan dalam mengelola variabel konfigurasi antara MySQL 5.7 dan MySQL 8.0.

Kami akan menjelaskan tiga cara berbeda untuk menyetel variabel konfigurasi berdasarkan kasus penggunaan Anda. Variabel konfigurasi yang dapat disetel pada saat dijalankan disebut variabel Dinamis dan variabel yang memerlukan server MySQL dimulai ulang agar berfungsi disebut variabel Non-Dinamis.

1:Atur Konfigurasi untuk Umur Saat Ini dari Server MySQL yang Berjalan

Sebagian besar konfigurasi MySQL bersifat dinamis dan dapat diatur saat dijalankan menggunakan perintah SET. Ini berarti bahwa perubahan tidak persisten dan akan hilang jika server MySQL dimulai ulang. Ini berguna untuk menguji perilaku perubahan konfigurasi Anda sebelum menjadikannya permanen.

Untuk MySQL 5.7 dan 8.0, Anda dapat melakukannya dengan menggunakan perintah SET GLOBAL

Contoh:

mysql> set global max_connect_errors=10000;

2:Tetapkan dan Pertahankan Perubahan Konfigurasi di MySQL Restart

Setelah Anda puas dengan pengaturan perubahan konfigurasi, Anda ingin menjadikannya permanen.

Di MySQL 5.7, Anda perlu melakukan ini dalam 2 langkah:

  1. Setel pengaturan konfigurasi run time menggunakan perintah SET GLOBAL
mysql> set global max_connect_errors=10000;
  1. Simpan perubahan ini di file my.cnf Anda dengan memperbarui entri yang ada untuk max_connect_errors atau dengan menambahkan yang baru.

Ini menjadi lebih mudah di MySQL 8.0. Anda dapat melakukan ini dalam satu langkah menggunakan perintah SET PERSIST

mysql> set persist max_connect_errors=10000;
Cara Mengatur Variabel Konfigurasi - MySQL 5.7 vs MySQL 8.0Klik Untuk Tweet

Ini akan menetapkan nilai run-time untuk konfigurasi dan juga mempertahankan perubahan dengan menyimpannya di file mysqld-auto.cnf yang ada di direktori data. Ini adalah file json dan Anda sekarang akan melihat entri berikut dalam file.

{

"Version": 1,

"mysql_server": {

"max_connect_errors": {

"Value": "10000",

"Metadata": {

"Timestamp": 1581135119397374,

"User": "sgroot",

"Host": "localhost"

}

}

}

}

Catatan: Pengaturan konfigurasi yang ada di mysqld-auto.cnf selalu mengesampingkan nilai yang ada di file my.cnf. Jadi, setiap perubahan lebih lanjut yang Anda buat di file my.cnf untuk variabel “max_connect_errors” tidak akan berpengaruh. Ini mungkin membingungkan bagi mereka yang bertransisi dari MySQL 5.7 karena mereka mungkin digunakan untuk menyimpan semua pengaturan mereka di my.cnf

3:Mengatur Variabel Konfigurasi yang Tidak Dinamis

Beberapa variabel konfigurasi tidak dapat disetel pada waktu proses dan akan memerlukan restart MySQL untuk diterapkan.

Di MySQL 5.7, Anda akan membuat entri untuk variabel-variabel ini di file my.cnf Anda dan memulai ulang server MySQL agar dapat diterapkan. Contoh untuk variabel tersebut adalah innodb_log_file_size.

Di MySQL 8.0, Anda dapat menjalankan perintah yang disebut SET PERSIST ONLY yang akan membuat entri di mysqld-auto.cnf.

Contoh:

mysql> set persist_only innodb_log_file_size=134217728;

Hal ini juga memungkinkan untuk me-restart server MySQL dari baris perintah menggunakan perintah RESTART. Ini akan menyebabkan perubahan nilai innodb_log_file_size berlaku.

Catatan: Perintah RESTART hanya berfungsi jika MySQL dikelola menggunakan program eksternal seperti systemd atau mysqld_safe. Silakan lihat detail lebih lanjut tentang ini di sini.

Jika tidak, perintah RESTART gagal dengan pesan seperti berikut.

mysql> RESTART;

ERROR 3707 (HY000): Restart server failed (mysqld is not managed by supervisor process).

Manajemen Konfigurasi MySQL di Beberapa Server

Mengelola konfigurasi MySQL di lingkungan replika sumber adalah proses yang membosankan jika Anda harus mengelola beberapa cluster yang menjalankan versi MySQL yang berbeda. Di sinilah solusi terkelola seperti ScaleGrid akan bermanfaat.

Konsol UI ScaleGrid dapat digunakan untuk meninjau setelan saat ini dari berbagai variabel konfigurasi atau menyetel nilainya.

ScaleGrid dapat mengenali ketika pengaturan konfigurasi non-dinamis dan akan memperingatkan pengguna jika diperlukan restart MySQL agar nilai dapat diterapkan. ScaleGrid juga akan membuat cadangan file my.cnf saat ini sebelum menerapkan perubahan konfigurasi baru.

Di lingkungan replika sumber, ScaleGrid mengubah pengaturan konfigurasi secara bergulir satu server pada satu waktu. Jika variabel non-dinamis perlu disetel, ScaleGrid melakukan failover dari master saat ini untuk meminimalkan waktu henti yang terlibat jika MySQL harus dimulai ulang.

Kunjungi tautan di bawah untuk mengetahui lebih lanjut tentang berbagai fitur solusi hosting MySQL ScaleGrid.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. tambahkan kolom ke tabel mysql jika tidak ada

  2. Bagaimana saya bisa bergabung dengan beberapa tabel SQL menggunakan ID?

  3. MySQL:Alternatif untuk ORDER BY RAND()

  4. MySQL:VARCHAR besar vs. TEXT?

  5. Bagaimana cara menggunakan tipe int/long yang tidak ditandatangani dengan Entity Framework?