Cara Memasang, Mengamankan dan Penalaan Prestasi Pelayan Pangkalan Data MariaDB

Cara Memasang, Mengamankan dan Penalaan Prestasi Pelayan Pangkalan Data MariaDB

Pelayan pangkalan data adalah komponen kritikal infrastruktur rangkaian yang diperlukan untuk aplikasi hari ini. Tanpa keupayaan untuk menyimpan, mengambil, mengemas kini, dan memadam data (apabila diperlukan), kegunaan dan skop aplikasi web dan desktop menjadi sangat terhad.

Memasang, selamat dan penalaan prestasi pelayan MariaDB

Di samping.

Dalam artikel ini, kami akan mengkaji secara ringkas cara memasang dan menjamin pelayan pangkalan data MariaDB dan kemudian kami akan menerangkan cara mengkonfigurasinya.

Memasang dan menjamin pelayan MariaDB

Dalam Centos 7.x, Mariadb menggantikan MySQL, yang masih boleh didapati di Ubuntu (bersama dengan Mariadb). Perkara yang sama berlaku untuk opensuse.

Untuk keringkasan, kita hanya akan menggunakan Mariadb Dalam tutorial ini, tetapi sila ambil perhatian bahawa selain mempunyai nama dan falsafah pembangunan yang berbeza, kedua -duanya Sistem Pengurusan Pangkalan Data Relasi (RDBMSS pendek) hampir sama.

Ini bermaksud bahawa arahan pihak klien adalah sama pada kedua-duanya Mysql dan Mariadb, dan fail konfigurasi dinamakan dan terletak di tempat yang sama.

Untuk memasang MariaDB, lakukan:

--------------- Pada Centos/RHEL 7 dan Fedora 23 --------------- # yum kemas kini && yum pasang mariadb mariadb-server # centos --------------- Di Debian dan Ubuntu --------------- $ sudo kemas kini aptitude & sudo aptitude memasang MariaDB-client MariaDB-server --------------- Pada OpenSuse --------------- # zyper update && zypper Pasang MariaDB MariaDB-Tools # OpenSuse 

Perhatikan bahawa, dalam Ubuntu, Anda akan diminta memasukkan kata laluan untuk pengguna root rdbms.

Setelah pakej di atas telah dipasang, pastikan perkhidmatan pangkalan data sedang berjalan dan telah diaktifkan untuk memulakan boot (masuk Centos dan opensuse anda perlu melaksanakan operasi ini secara manual, sedangkan dalam Ubuntu Proses pemasangan akan dijaga untuk anda):

--------------- Pada Centos/RHEL 7 dan Fedora 23 --------------- # Systemctl Mula MariaDB && Systemctl Dayakan MariaDB --------------- Pada OpenSuse --------------- # Systemctl Mula Mysql && Systemctl Dayakan Mysql 

Kemudian jalankan mysql_secure_installation Skrip. Proses ini akan membolehkan anda:

  1. Tetapkan / tetapkan semula kata laluan untuk pengguna root rdbms
  2. Keluarkan log masuk tanpa nama (dengan itu hanya membolehkan pengguna dengan akaun yang sah untuk log masuk ke RDBMS)
  3. Lumpuhkan akses root untuk mesin selain daripada localhost
  4. Keluarkan pangkalan data ujian (yang boleh diakses oleh sesiapa sahaja)
  5. Aktifkan perubahan yang berkaitan dengan 1 hingga 4.

Untuk penerangan yang lebih terperinci mengenai proses ini, anda boleh merujuk kepada bahagian pemasangan Pos dalam Pasang Pangkalan Data MariaDB dalam RHEL/Centos/Fedora dan Debian/Ubuntu.

Mengkonfigurasi pelayan MariaDB

Pilihan konfigurasi lalai dibaca dari fail berikut dalam urutan yang diberikan: /etc/mysql/my.cnf, /etc/my.cnf, dan ~/.saya.cnf.

Selalunya, hanya /etc/my.cnf ada. Ia berada di fail ini bahawa kami akan menetapkan tetapan seluruh pelayan (yang boleh ditindih dengan tetapan yang sama di ~/.saya.cnf untuk setiap pengguna).

Perkara pertama yang perlu kita perhatikan saya.cnf Adakah tetapan itu diatur ke dalam kategori (atau kumpulan) di mana setiap nama kategori ditutup dengan kurungan persegi.

Konfigurasi sistem pelayan diberikan dalam [mysqld] seksyen, di mana biasanya anda akan mendapati hanya dua tetapan pertama dalam jadual di bawah. Selebihnya adalah pilihan lain yang sering digunakan (di mana ditunjukkan, kami akan menukar nilai lalai dengan satu pilihan yang kami pilih):

Penetapan dan keterangan Nilai asal
Datadir adalah direktori di mana fail data disimpan. datadir =/var/lib/mysql
soket menunjukkan nama dan lokasi fail soket yang digunakan untuk sambungan pelanggan tempatan. Perlu diingat bahawa fail soket adalah sumber yang digunakan untuk menyampaikan maklumat antara aplikasi. soket =/var/lib/mysql/mysql.kaus kaki
bind_address adalah alamat di mana pelayan pangkalan data akan mendengar untuk sambungan TCP/IP. Sekiranya anda memerlukan pelayan anda untuk mendengar lebih daripada satu alamat IP, tinggalkan tetapan ini (0.0.0.0 yang bermaksud ia akan mendengar semua alamat IP yang diberikan kepada tuan rumah khusus ini).

Kami akan mengubahnya untuk mengarahkan perkhidmatan untuk mendengar hanya di alamat utamanya (192.168.0.13):

bind_address = 192.168.0.13

bind_address = 0.0.0.0
port mewakili port di mana pelayan pangkalan data akan mendengar.

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

Walaupun sesetengah orang akan berhujah bahawa keselamatan melalui kekaburan bukanlah amalan yang baik, mengubah port aplikasi lalai untuk yang lebih tinggi adalah kaedah berkesan -mentari -mentari untuk menghalang imbasan pelabuhan.

port = 3306
innodb_buffer_pool_size adalah kolam penampan (dalam bait) memori yang diperuntukkan untuk data dan indeks yang diakses dengan kerap apabila menggunakan innoDB (yang merupakan lalai dalam MariaDB) atau XTRADB sebagai enjin penyimpanan.

Kami akan menggantikan nilai lalai dengan 256 MB:

innodb_buffer_pool_size = 256m

innodb_buffer_pool_size = 134217728
skip_name_resolve menunjukkan sama ada nama host akan diselesaikan atau tidak pada sambungan masuk. Sekiranya ditetapkan kepada 1, seperti yang akan kita lakukan dalam panduan ini, hanya alamat IP.

Kecuali anda memerlukan nama host untuk menentukan kebenaran, adalah dinasihatkan untuk melumpuhkan pembolehubah ini (untuk mempercepat sambungan dan pertanyaan) dengan menetapkan nilainya kepada 1:

skip_name_resolve = 1

skip_name_resolve = 0
query_cache_size mewakili saiz (dalam bait) yang tersedia untuk cache pertanyaan dalam cakera, di mana hasil pertanyaan pilih disimpan untuk kegunaan masa depan apabila pertanyaan yang sama (ke pangkalan data yang sama dan menggunakan protokol yang sama dan set aksara yang sama) dilakukan.

Anda harus memilih saiz cache pertanyaan yang sesuai dengan keperluan anda berdasarkan 1) bilangan pertanyaan berulang, dan 2) anggaran jumlah rekod yang berulang -ulang. Kami akan menetapkan nilai ini kepada 100 MB buat masa ini:

query_cache_size = 100m

query_cache_size = 0 (yang bermaksud ia dilumpuhkan secara lalai)
max_connections adalah bilangan maksimum sambungan klien serentak ke pelayan. Kami akan menetapkan nilai ini kepada 30:
max_connections = 30seach Connection akan menggunakan benang, dan dengan itu akan memakan memori. Ambil kira fakta ini semasa menetapkan max_connections.
max_connections = 151
thread_cache_size menunjukkan bilangan benang yang diperuntukkan pelayan untuk digunakan semula selepas pelanggan memutuskan sambungan dan membebaskan benang (s) sebelum ini digunakan. Dalam situasi ini, lebih murah (prestasi-bijak) untuk menggunakan semula benang daripada meneliti yang baru.

Sekali lagi, ini bergantung pada bilangan sambungan yang anda harapkan. Kami dapat dengan selamat menetapkan nilai ini kepada separuh bilangan max_connections:

thread_cache_size = 15

thread_cache_size = 0 (dilumpuhkan secara lalai)

Dalam Centos, kita perlu memberitahu Selinux membenarkan Mariadb untuk mendengar di pelabuhan bukan standard (20500) sebelum memulakan semula perkhidmatan:

# yum Pasang PolicCoreUtils -Python # Semanage Port -A -T MySQLD_PORT_T -P TCP 20500 

Kemudian mulakan semula perkhidmatan MariaDB.

Tuning MariaDB Prestasi

Untuk membantu kami dalam memeriksa dan menala konfigurasi mengikut keperluan khusus kami, kami boleh memasang mysqltuner (Skrip yang akan memberikan cadangan untuk meningkatkan prestasi pelayan pangkalan data kami dan meningkatkan kestabilannya):

# wget https: // github.com/Major/Mysqltuner-Perl/Tarball/Master # Tar XZF Master 

Kemudian tukar direktori ke dalam folder yang diekstrak dari tarball (versi yang tepat mungkin berbeza dalam kes anda):

# CD Major-Mysqltuner-Perl-7dabf27 

dan jalankannya (anda akan diminta memasuki kelayakan akaun MariaDB Pentadbiran anda)

# ./mysqltuner.pl 

Output skrip itu sendiri sangat menarik, tetapi mari melangkau ke bahagian bawah di mana pembolehubah untuk menyesuaikan disenaraikan dengan nilai yang disyorkan:

Tunning Prestasi MariaDB

The query_cache_type tetapan menunjukkan sama ada cache pertanyaan dilumpuhkan (0) atau didayakan (1). Dalam kes ini, mysqltuner menasihati kami untuk melumpuhkannya.

Jadi mengapa kita dinasihatkan untuk menyahaktifkannya sekarang? Sebabnya ialah cache pertanyaan berguna kebanyakannya dalam senario yang dibaca / rendah tulis (yang bukan kes kami, kerana kami baru memasang pelayan pangkalan data).

Amaran: Sebelum membuat perubahan pada konfigurasi pelayan pengeluaran, anda sangat digalakkan untuk berunding.

Ringkasan

Dalam artikel ini, kami telah menjelaskan cara mengkonfigurasi pelayan pangkalan data MariaDB setelah kami memasang dan mengamankannya. Pembolehubah konfigurasi yang disenaraikan dalam jadual di atas hanya beberapa tetapan yang mungkin anda ingin pertimbangkan semasa menyediakan pelayan untuk digunakan atau ketika menala kemudian. Sentiasa merujuk kepada dokumentasi MariaDB rasmi sebelum membuat perubahan atau merujuk kepada petua penalaan prestasi MariaDB kami:

Jangan ketinggalan: 15 Tips Tuning dan Pengoptimuman MariaDB Berguna

Seperti biasa, jangan ragu untuk memberitahu kami jika anda mempunyai sebarang pertanyaan atau komen mengenai artikel ini. Adakah terdapat tetapan pelayan lain yang anda suka gunakan? Jangan ragu untuk berkongsi dengan seluruh komuniti menggunakan borang komen di bawah.

Menjadi Pentadbir Sistem Bersertifikat Linux