MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Cara Memasang, Mengamankan, dan Menyetel Kinerja Server Database 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 cakupan aplikasi web dan desktop menjadi sangat terbatas.

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

Pada artikel ini kami akan mengulas secara singkat cara menginstal dan mengamankan server database MariaDB dan kemudian kami akan menjelaskan cara mengkonfigurasinya.

Memasang dan Mengamankan Server MariaDB

Di 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, namun harap diperhatikan bahwa selain memiliki nama dan filosofi pengembangan yang berbeda, keduanya Sistem Manajemen Basis Data Relasional (RDBMS singkatnya) hampir identik.

Ini berarti bahwa perintah sisi klien sama di kedua MySQL dan MariaDB , dan file konfigurasi diberi nama dan terletak di tempat yang sama.

Untuk menginstal MariaDB, lakukan:

--------------- On CentOS/RHEL 7 and Fedora 23 --------------- 
# yum update && yum install mariadb mariadb-server # CentOS 

--------------- On Debian and Ubuntu --------------- 
$ sudo aptitude update && sudo aptitude install mariadb-client mariadb-server 

--------------- On openSUSE --------------- 
# zypper update && zypper install mariadb mariadb-tools # openSUSE

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

Setelah paket-paket di atas terinstal, pastikan layanan database berjalan dan telah diaktifkan untuk memulai saat boot (di CentOS dan openSUSE Anda harus melakukan operasi ini secara manual, sedangkan di Ubuntu proses instalasi akan sudah mengurusnya untuk Anda):

--------------- On CentOS/RHEL 7 and Fedora 23 --------------- 
# systemctl start mariadb && systemctl enable mariadb 

--------------- On openSUSE --------------- 
# systemctl start mysql && systemctl enable mysql

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

  1. set / reset password untuk root user RDBMS
  2. hapus login anonim (sehingga hanya memungkinkan pengguna dengan akun yang valid untuk login ke RDBMS)
  3. nonaktifkan akses root untuk mesin selain localhost
  4. hapus database pengujian (yang dapat diakses siapa saja)
  5. mengaktifkan perubahan yang terkait dengan 1 hingga 4.

Untuk penjelasan lebih rinci tentang proses ini, Anda dapat merujuk ke bagian Posting instalasi di Instal Database MariaDB di RHEL/CentOS/Fedora dan Debian/Ubuntu.

Mengonfigurasi Server MariaDB

Opsi konfigurasi default dibaca dari file berikut dalam urutan yang diberikan:/etc/mysql/my.cnf , /etc/my.cnf , dan ~/.my.cnf .

Paling sering, hanya /etc/my.cnf ada. Pada file inilah kita akan mengatur pengaturan seluruh server (yang dapat diganti dengan pengaturan yang sama di ~/.my.cnf untuk setiap pengguna).

Hal pertama yang perlu kita perhatikan tentang my.cnf adalah bahwa pengaturan diatur ke dalam kategori (atau grup) di mana setiap nama kategori diapit dengan tanda kurung siku.

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

Setelan dan deskripsi Nilai default
datadir adalah direktori tempat file data disimpan. datadir=/var/lib/mysql
soket menunjukkan nama dan lokasi berkas soket yang digunakan untuk koneksi klien lokal. Ingatlah bahwa file soket adalah sumber daya yang digunakan untuk meneruskan informasi antar aplikasi. socket=/var/lib/mysql/mysql.sock
bind_address adalah alamat tempat server database akan mendengarkan koneksi TCP/IP. Jika Anda memerlukan server 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 pada 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 lagi yang menggunakan port tersebut):
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 belum sempurna -namun efektif- untuk mencegah pemindaian port.

port=3306
innodb_buffer_pool_size adalah kumpulan buffer (dalam byte) 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 masuk. Jika disetel ke 1, seperti yang akan kita lakukan dalam panduan ini, hanya alamat IP.

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

skip_name_resolve=1

skip_name_resolve=0
query_cache_size mewakili ukuran (dalam byte) yang tersedia untuk cache kueri dalam disk, tempat hasil kueri SELECT disimpan untuk digunakan di masa mendatang saat kueri identik (untuk 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 rekaman yang diharapkan akan dikembalikan oleh kueri berulang tersebut. Kami akan menetapkan nilai ini menjadi 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 ke 30:
max_connections=30Setiap koneksi akan menggunakan utas, dan dengan demikian akan menghabiskan memori. Pertimbangkan fakta ini saat menyetel max_connections.
max_connections=151
thread_cache_size menunjukkan jumlah utas yang dialokasikan server untuk digunakan kembali setelah klien memutuskan dan membebaskan utas yang digunakan sebelumnya. Dalam situasi ini, lebih murah (dari segi kinerja) untuk menggunakan kembali utas daripada membuat yang baru.

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

thread_cache_size=15

thread_cache_size=0 (dinonaktifkan secara default)

Di CentOS , kita perlu memberi tahu SELinux untuk mengizinkan MariaDB untuk mendengarkan pada port non-standar (20500 ) sebelum memulai ulang layanan:

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

Kemudian restart layanan MariaDB.

Menyetel Performa MariaDB

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

# wget https://github.com/major/MySQLTuner-perl/tarball/master
# tar xzf master

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

# cd major-MySQLTuner-perl-7dabf27

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

# ./mysqltuner.pl

Output dari skrip itu sendiri sangat menarik, tetapi mari kita lompat ke bawah di mana variabel yang akan disesuaikan dicantumkan dengan nilai yang disarankan:

query_cache_type setelan menunjukkan apakah cache kueri dinonaktifkan (0) atau diaktifkan (1) . Dalam hal ini, mysqltuner menyarankan kami untuk menonaktifkannya.

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

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

Ringkasan

Pada artikel ini kami telah menjelaskan cara mengkonfigurasi server database MariaDB setelah kami menginstal dan mengamankannya. Variabel konfigurasi yang tercantum dalam tabel di atas hanyalah beberapa pengaturan yang mungkin ingin Anda pertimbangkan saat menyiapkan server untuk digunakan atau saat menyetelnya nanti. Selalu lihat dokumentasi MariaDB resmi sebelum membuat perubahan atau lihat kiat penyetelan MariaDB Performance kami:

Jangan' t Nona: 15 Tips Penyesuaian dan Pengoptimalan 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 komunitas lainnya menggunakan formulir komentar di bawah.

Menjadi Administrator Sistem Bersertifikat Linux

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana PERIOD_ADD() Bekerja di MariaDB

  2. Bagaimana LTRIM_ORACLE() Bekerja di MariaDB

  3. Apa yang Baru di MariaDB 10.6

  4. Menjalankan ProxySQL sebagai Wadah Pembantu di Kubernetes

  5. Kembalikan Hanya Nilai Numerik di MariaDB