Cara menginstal, mengamankan dan penyetelan kinerja server basis data mariadb

Cara menginstal, mengamankan dan penyetelan kinerja server basis data mariadb

Server database adalah komponen penting dari infrastruktur jaringan yang diperlukan untuk aplikasi saat ini. Tanpa kemampuan untuk menyimpan, mengambil, memperbarui, dan menghapus data (bila diperlukan), kegunaan dan ruang lingkup aplikasi web dan desktop menjadi sangat terbatas.

Instal, Aman, dan Tuning Kinerja Server MariaDB

Selain itu, mengetahui cara menginstal, mengelola, dan mengkonfigurasi server database (sehingga beroperasi seperti yang diharapkan) adalah keterampilan penting yang harus dimiliki setiap administrator sistem.

Di artikel ini kami akan meninjau secara singkat cara menginstal dan mengamankan server basis data mariadb dan kemudian kami akan menjelaskan cara mengkonfigurasinya.

Menginstal dan Mengamankan Server Mariadb

Di dalam Centos 7.X, Mariadb menggantikan mysql, yang masih dapat ditemukan di Ubuntu (bersama dengan Mariadb). Hal yang sama berlaku untuk OpenSuse.

Untuk singkatnya, kami hanya akan menggunakan Mariadb Dalam tutorial ini, tetapi harap dicatat bahwa selain memiliki nama yang berbeda dan filosofi pengembangan, keduanya Sistem Manajemen Database Relasional (RDBMSS singkatnya) hampir identik.

Ini berarti bahwa perintah sisi klien sama pada keduanya Mysql Dan Mariadb, dan file konfigurasi dinamai dan terletak di tempat yang sama.

Untuk menginstal Mariadb, lakukan:

--------------- Di Centos/Rhel 7 dan Fedora 23 --------------- # yum update && yum instal mariadb mariadb-server # centos --------------- Di Debian dan Ubuntu --------------- $ sudo aptitude update && sudo aptitude instal mariadb-client mariadb-server --------------- Di OpenSuse --------------- # zypper update && zypper instal mariadb mariadb-tools # opensuse 

Perhatikan bahwa, di Ubuntu, Anda akan diminta untuk memasukkan kata sandi untuk pengguna root RDBMS.

Setelah paket di atas telah diinstal, pastikan layanan database berjalan dan telah diaktifkan untuk memulai boot (masuk Centos Dan OpenSuse Anda perlu melakukan operasi ini secara manual, sedangkan di Ubuntu Proses instalasi sudah mengurusnya untuk Anda):

--------------- Di Centos/Rhel 7 dan Fedora 23 --------------- # Systemctl Mulai mariadb && Systemctl Aktifkan mariadb --------------- Di OpenSuse --------------- # Systemctl Mulai mysql && Systemctl Aktifkan mysql 

Lalu jalankan mysql_secure_installation naskah. Proses ini akan memungkinkan Anda untuk:

  1. Atur / setel ulang kata sandi untuk pengguna root RDBMS
  2. Hapus login anonim (sehingga memungkinkan hanya pengguna dengan akun yang valid untuk masuk ke RDBMS)
  3. nonaktifkan akses root untuk mesin selain localhost
  4. Hapus database uji (yang dapat diakses siapa saja)
  5. Aktifkan perubahan yang terkait dengan 1 hingga 4.

Untuk deskripsi yang lebih rinci tentang proses ini, Anda dapat merujuk ke bagian instalasi POST di basis data install mariadb di rhel/centos/fedora dan debian/ubuntu.

Mengkonfigurasi Server MariaDB

Opsi konfigurasi default dibaca dari file berikut dalam urutan yang diberikan: /etc/mysql/my.CNF, /etc/my.CNF, Dan ~/.-ku.CNF.

Paling sering, hanya /etc/my.CNF ada. Di file ini kami akan mengatur pengaturan di seluruh server (yang dapat ditimpa dengan pengaturan yang sama di ~/.-ku.CNF untuk setiap pengguna).

Hal pertama yang perlu kita perhatikan -ku.CNF adalah bahwa pengaturan diatur ke dalam kategori (atau kelompok) di mana setiap nama kategori dilampirkan dengan tanda kurung persegi.

Konfigurasi sistem server diberikan di [mysqld] bagian, di mana biasanya Anda hanya akan menemukan dua pengaturan pertama dalam tabel di bawah ini. Sisanya adalah opsi lain yang sering digunakan (di mana ditunjukkan, kami akan mengubah nilai default dengan salah satu yang kami pilih):

Pengaturan dan Deskripsi Nilai default
datadir adalah direktori tempat file data disimpan. datadir =/var/lib/mysql
Soket menunjukkan nama dan lokasi file soket yang digunakan untuk koneksi klien lokal. Perlu diingat bahwa file soket adalah sumber daya yang digunakan untuk meneruskan informasi antar aplikasi. socket =/var/lib/mysql/mysql.kaus kaki
Bind_Address adalah alamat di mana server database akan mendengarkan untuk koneksi TCP/IP. Jika Anda membutuhkan server Anda untuk mendengarkan lebih dari satu alamat IP, tinggalkan pengaturan ini (0.0.0.0 yang berarti akan mendengarkan semua alamat IP yang ditetapkan untuk host khusus ini).

Kami akan mengubah ini untuk menginstruksikan layanan untuk mendengarkan hanya di alamat utamanya (192.168.0.13):

Bind_Address = 192.168.0.13

bind_address = 0.0.0.0
Port mewakili port tempat server database akan mendengarkan.

Kami akan mengganti nilai default (3306) dengan 20500 (tetapi kami perlu memastikan tidak ada hal lain yang menggunakan port itu):
port = 20500

Sementara beberapa orang akan berpendapat bahwa keamanan melalui ketidakjelasan bukanlah praktik yang baik, mengubah port aplikasi default untuk yang lebih tinggi adalah metode yang efektif -yet.

port = 3306
innodb_buffer_pool_size adalah kumpulan buffer (dalam byte) dari memori yang dialokasikan untuk data dan indeks yang sering diakses saat menggunakan InnodB (yang merupakan default di mariadb) atau Xtradb sebagai mesin penyimpanan.

Kami akan mengganti nilai default dengan 256 MB:

innodb_buffer_pool_size = 256m

innodb_buffer_pool_size = 134217728
Skip_name_resolve menunjukkan apakah nama host akan diselesaikan atau tidak pada koneksi yang masuk. Jika diatur ke 1, seperti yang akan kami lakukan di panduan ini, hanya alamat IP.

Kecuali Anda memerlukan nama host untuk menentukan izin, disarankan untuk menonaktifkan variabel ini (untuk mempercepat koneksi dan kueri) dengan menetapkan nilainya menjadi 1:

skip_name_resolve = 1

skip_name_resolve = 0
query_cache_size mewakili ukuran (dalam byte) yang tersedia untuk cache kueri di disk, di mana hasil kueri terpilih disimpan untuk penggunaan di masa depan ketika kueri yang identik (ke database yang sama dan menggunakan protokol yang sama dan set karakter yang sama) dilakukan.

Anda harus memilih ukuran cache kueri yang sesuai dengan kebutuhan Anda berdasarkan 1) Jumlah kueri berulang, dan 2) perkiraan jumlah catatan kueri berulang yang diharapkan untuk kembali. Kami akan menetapkan nilai ini ke 100 MB untuk saat ini:

query_cache_size = 100m

query_cache_size = 0 (yang berarti dinonaktifkan secara default)
Max_connections adalah jumlah maksimum koneksi klien simultan ke server. Kami akan menetapkan nilai ini menjadi 30:
max_connections = 30each Connection akan menggunakan utas, dan dengan demikian akan mengkonsumsi memori. Mempertimbangkan fakta ini saat mengatur max_connections.
max_connections = 151
thread_cache_size menunjukkan jumlah utas yang dialokasikan server untuk digunakan kembali setelah klien memutuskan dan membebaskan utas yang sebelumnya digunakan. Dalam situasi ini, lebih murah (dari segi kinerja) untuk menggunakan kembali utas daripada instantiasi yang baru.

Sekali lagi, ini tergantung pada jumlah koneksi yang Anda harapkan. Kami dapat mengatur nilai ini dengan aman menjadi setengah dari jumlah max_connections:

thread_cache_size = 15

thread_cache_size = 0 (dinonaktifkan secara default)

Di dalam Centos, Kami perlu memberi tahu Selinux untuk memungkinkan Mariadb untuk mendengarkan di port non-standar (20500) Sebelum memulai kembali layanan:

# yum menginstal policycoreutils -python # semanage port -a -t mysqld_port_t -p tcp 20500 

Kemudian restart layanan Mariadb.

Menyetel kinerja Mariadb

Untuk membantu kami dalam memeriksa dan menyetel konfigurasi sesuai kebutuhan spesifik kami, kami dapat menginstal mysqltuner (Skrip yang akan memberikan saran untuk meningkatkan kinerja server database kami dan meningkatkan stabilitasnya):

# wget https: // github.com/mayor/mysqltuner-perl/tarball/master # tar xzf master 

Kemudian ubah direktori ke dalam folder yang diekstraksi dari tarball (versi yang tepat mungkin berbeda dalam kasus Anda):

# CD Mayor-Mysqltuner-Perl-7DABF27 

dan jalankan (Anda akan diminta untuk memasukkan kredensial akun MariaDB administrasi Anda)

# ./mysqltuner.pl 

Output dari skrip itu sendiri sangat menarik, tetapi mari kita lewati ke bawah di mana variabel untuk menyesuaikan terdaftar dengan nilai yang disarankan:

Tunning kinerja Mariadb

Itu query_cache_type Pengaturan menunjukkan apakah cache kueri dinonaktifkan (0) atau diaktifkan (1). Pada kasus ini, mysqltuner menyarankan kami untuk menonaktifkannya.

Jadi mengapa kami disarankan untuk menonaktifkannya sekarang? Alasannya adalah bahwa cache kueri sangat berguna sebagian besar dalam skenario membaca tinggi / rendah-tulisan (yang bukan kasus kami, karena kami baru saja menginstal server database).

PERINGATAN: Sebelum membuat perubahan pada konfigurasi server produksi, Anda sangat dianjurkan untuk berkonsultasi dengan administrator basis data ahli untuk memastikan bahwa rekomendasi yang diberikan oleh MySQltuner tidak akan berdampak negatif pada pengaturan yang ada.

Ringkasan

Di artikel ini kami telah menjelaskan cara mengkonfigurasi server basis data mariadb setelah kami menginstal dan mengamankannya. Variabel konfigurasi yang tercantum dalam tabel di atas hanya beberapa pengaturan yang mungkin ingin Anda pertimbangkan saat mempersiapkan server untuk digunakan atau saat menyetelnya nanti. Selalu merujuk ke dokumentasi MariaDB resmi sebelum membuat perubahan atau merujuk ke Tips Tuning Kinerja Mariadb kami:

Jangan lewatkan: 15 Tips dan Tip Penyetelan Kinerja Mariadb yang Berguna

Seperti biasa, jangan ragu untuk memberi tahu kami jika Anda memiliki pertanyaan atau komentar tentang artikel ini. Apakah ada pengaturan server lain yang ingin Anda gunakan? Jangan ragu untuk berbagi dengan anggota komunitas lainnya menggunakan formulir komentar di bawah ini.

Menjadi Administrator Sistem Bersertifikat Linux