GNU/Linux >> Belajar Linux >  >> Linux

Konfigurasikan server MariaDB di CentOS

Artikel sebelumnya membahas pengaturan server MariaDB® dasar di CentOS Linux, termasuk mengatur kata sandi root, membuat database, dan membuat pengguna untuk database. Sekarang mari kita lihat MariaDB sedikit lebih detail untuk mengubah konfigurasinya dan bersiaplah jika terjadi kesalahan.

Temukan file konfigurasi

Secara default, Anda akan menemukan file konfigurasi MariaDB di lokasi berikut:

/etc/my.cnf

Jika tidak ada, Anda dapat menggunakan mysqld untuk mencari file konfigurasi dengan menjalankan perintah berikut:

/usr/libexec/mysqld --help --verbose

Anda akan mendapatkan banyak teks kembali. Bagian pertama menjelaskan opsi yang dapat Anda kirim ke server saat Anda meluncurkannya. Bagian kedua adalah semua informasi konfigurasi yang ditetapkan saat server dikompilasi.

Di dekat awal output, temukan beberapa baris yang terlihat mirip dengan baris berikut:

Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf

Server bekerja di bawah daftar sampai menemukan file konfigurasi.

my.cnf

Buka my.cnf file dan lihat ke dalamnya.

Setiap baris yang dimulai dengan # adalah komentar, dan sebagian besar mendokumentasikan untuk apa pengaturan yang berbeda. Anda akan menemukan detail seperti lokasi file log dan di mana file database disimpan.

Grup konfigurasi

Ada baris dalam file konfigurasi yang hanya berisi kata dalam tanda kurung siku, seperti [klien] atau [mysqld] . Itu adalah grup konfigurasi dan mereka memberi tahu program yang membaca file konfigurasi bagian mana yang harus mereka perhatikan.

MariaDB secara teknis adalah kumpulan alat yang menyertakan server (mysqld ), klien (mysql ), dan beberapa alat lainnya. Program terlihat di my.cnf untuk melihat bagaimana mereka harus bersikap.

Pada dasarnya, mysql bagian konfigurasi mengontrol klien, dan mysqld bagian mengontrol server.

Log file

Jika terjadi kesalahan, tempat terbaik untuk memulai pemecahan masalah program apa pun adalah lognya. Secara default MariaDB menyimpan file lognya di direktori berikut:

/var/log/mariadb

Catatan :Anda mungkin perlu menggunakan sudo untuk mendapatkan daftar file di direktori tersebut.

Jika Anda tidak menemukan log di direktori default, Anda perlu memeriksa konfigurasi MariaDB. Lihat di my.cnf file dan carilog_error baris, seperti pada:

log_error = /var/log/mariadb/mariadb.log

Jika Anda tidak melihat garis seperti itu, buat di mysqld bagian sehinggaMariaDB akan menggunakan log kesalahannya sendiri. Sebaiknya gunakan lokasi dalam contoh dan buat /var/log/mariadb direktori jika belum ada. Terapkan perubahan dengan memulai ulang MariaDB dengan perintah berikut:

systemctl restart mariadb

Pastikan direktori log yang Anda pilih dapat ditulisi oleh pengguna yang mengontrol proses MariaDB.

Setelan jaringan

Mungkin ada pelabuhan pengaturan di bawah bagian konfigurasi klien dan server. Port di bawah bagian server mengontrol port yang didengarkan server. Secara default, ini adalah 3306, tetapi Anda dapat mengubahnya menjadi apa pun yang Anda inginkan.

Port di bagian klien memberi tahu klien port untuk terhubung secara default. Biasanya Anda ingin kedua setelan port cocok.

Jika Anda tidak melihat entri port dalam file konfigurasi, itu berarti port tersebut menggunakan default. Jika Anda ingin mengubah port, tambahkan baris dalam kategori yang sesuai, seperti yang ditunjukkan pada contoh berikut:

[client]
port = 3306

[mysqld]
port = 3306

Setelan jaringan lain yang harus dicari adalah bind-address nilai. Biasanya diatur ke alamat untuk localhost, 127.0.0.1. Dengan mengikat ke localhost, server memastikan tidak ada yang dapat terhubung dari luar mesin lokal.

Jika Anda menjalankan server MariaDB Anda di mesin yang berbeda dari aplikasi Anda, Anda ingin mengikat ke alamat yang dapat diakses dari jarak jauh alih-alih localhost. Ubah bind-address setelan agar sesuai dengan alamat IP publik Anda (atau, lebih baik lagi, dengan alamat IP backend pada jaringan yang dapat diakses oleh lebih sedikit mesin).

Jika Anda tidak melihat bind-address entri, Anda harus memasukkannya ke dalammysqld kategori untuk membantu mengontrol akses ke server, mirip dengan contoh berikut:

[mysqld]
bind-address = 127.0.0.1

Ingatlah untuk memperhitungkan nama host klien saat Anda menyiapkan pengguna basis data Anda dan untuk mengonfigurasi firewall Anda jika Anda menjalankan iptables.

mysqld dan mysqld_safe

Di balik layar sebenarnya ada dua versi server MariaDB,mysqld dan mysqld_safe . Keduanya membaca bagian konfigurasi yang sama. Perbedaan utamanya adalah mysqld_safe diluncurkan dengan beberapa fitur keselamatan yang diaktifkan untuk mempermudah pemulihan dari kerusakan atau masalah lainnya.

Keduanya mysqld dan mysqld_safe akan membaca entri konfigurasi di mysqld bagian. Jika Anda menyertakan mysqld_safe bagian, maka hanya mysqld_safe membaca nilai-nilai tersebut.

Secara default mysql meluncurkan layanan mysqld_safe . Anda hanya boleh mengubah ini jika Anda benar-benar yakin dengan apa yang Anda lakukan.

mysqladmin

mysqladmin alat memungkinkan Anda untuk melakukan beberapa fungsi administratif dari baris perintah. Alat ini tidak tercakup dalam artikel ini karena artikel ini mencakup dasar-dasar untuk membuat Anda siap dan berjalan. Anda dapat melihat alat ini secara lebih mendalam nanti untuk melihat apa yang dapat dilakukannya, terutama jika Anda perlu membuat skrip yang menjalankan fungsi seperti memeriksa status server atau membuat dan menghapus database.

Cadangan

Ketika datang untuk membuat cadangan database Anda (terlepas dari pendekatan untuk membuat cadangan seluruh mesin), Anda memiliki beberapa pilihan. Opsi utama adalah menyalin file database dan menggunakan mysqldump .

Salinan file

Secara default, MariaDB membuat direktori untuk setiap database di direktori datanya yang terlihat mirip dengan contoh berikut:

/var/lib/mysql

Setelah Anda menemukan direktori data, jangan langsung menyalinnya. Ketika server database aktif, mungkin menulis nilai baru ke tabel setiap saat. Jika menulis ke tabel di tengah salinan Anda, beberapa file akan berubah dan menyebabkan cadangan yang rusak. Jika Anda mencoba merencanakan pemulihan bencana, ini bukan hal yang baik.

Untuk memastikan file database disalin dengan bersih, matikan server MariaDB sepenuhnya sebelum menyalin. Itu aman tetapi tidak selalu ideal.

Pendekatan lain yang dapat Anda ambil adalah mengunci database sebagai hanya-baca selama durasi penyalinan. Kemudian setelah selesai, lepaskan kuncinya. Dengan cara ini, aplikasi Anda masih dapat membaca data saat Anda mencadangkan file.

Kunci database ke read-only dengan menjalankan perintah berikut dari baris perintah:

mysql -u root -p -e "FLUSH TABLES WITH READ LOCK;"

Untuk membuka kunci database setelah selesai, jalankan perintah ini:

mysql -u root -p -e "UNLOCK TABLES;"

Opsi -e dengan mysql klien memberi tahu klien untuk menjalankan kueri dalam tanda kutip seolah-olah dimasukkan dengan mysql cangkang.

Jika Anda mengatur perintah ini dalam skrip, Anda dapat memasukkan kata sandi dalam tanda kutip tepat setelah -p tanpa spasi di antara keduanya, seperti pada contoh berikut:

mysql -u root -p"password" -e "FLUSH TABLES WITH READ LOCK;"
mysql -u root -p"password" -e "UNLOCK TABLES;"

Catatan: Pastikan Anda menyetel izin pada file tersebut untuk membatasi akses baca guna melindungi sandi.

mysqldump

Pendekatan lain untuk mencadangkan database Anda adalah dengan menggunakan mysqldump alat. Daripada menyalin file database secara langsung, mysqldump menghasilkan file teks yang mewakili database. Secara default, file teks berisi daftar pernyataan SQL yang akan Anda gunakan untuk membuat ulang database, tetapi Anda juga dapat mengekspor database dalam format lain seperti CSV atau XML. Anda dapat membaca mysqldump halaman manual untuk melihat semua opsinya.

Pernyataan yang dihasilkan oleh mysqldump pergi ke output standar. Anda ingin menentukan file untuk mengarahkan output ketika Anda menjalankannya. Misalnya:

mysqldump -u root -p demodb > dbbackup.sql

Perintah itu memberi tahu mysqldump untuk membuat ulang demodb pernyataan database inSQL dan menuliskannya ke file dbbackup.sql . Perhatikan bahwa opsi nama pengguna dan sandi berfungsi sama dengan mysql klien, sehingga Anda dapat memasukkan sandi langsung setelah -p dalam naskah.

Pulihkan dari mysqldump

Memulihkan database yang disalin dengan mysqldump terlihat mirip dengan apa yang digunakan untuk membuatnya, tetapi Anda menggunakan mysql alih-alih mysqldump , seperti yang ditunjukkan pada perintah berikut:

mysql -u root -p demodb < dbbackup.sql

Anda juga mengubah dari menggunakan tanda lebih besar dari ke lebih kecil dari, yang mengalihkan perintah dari mengarahkan outputnya ke menyuruhnya membaca inputnya dari file yang ada. Masukan dikirim ke mysql commandand menyebabkan instruksi dalam salinan yang dibuat dengan mysqldump untuk membuat ulang basis data.

Secara default, pernyataan SQL yang dihasilkan menambahkan ke tabel database yang ada tanpa menimpanya. Jika Anda memulihkan cadangan melalui database yang ada, Anda harus menghapus tabel database terlebih dahulu, atau melepaskan dan membuat ulang database itu sendiri. Anda dapat mengubah perilaku itu dengan menggunakan –add-drop-table opsi dengan perintah yang membuat mysqldump . Melakukannya menyebabkan mysqldump untuk menambahkan perintah ke file cadangan yang ditulisnya yang menghapus tabel sebelum membuatnya kembali.

Mesin database

Konsep terakhir yang dibahas dalam artikel ini adalah mesin database .Mesin adalah proses yang berputar di belakang layar, menulis ke dan membaca dari file. Biasanya Anda tidak perlu mengetahui apa pun selain yang ada di sana, tetapi terkadang Anda ingin menjalankan aplikasi yang telah dioptimalkan untuk mesin basis data tertentu.

Jenis mesin diatur saat tabel dibuat. Tabel biasanya dibuat oleh aplikasi yang akan menggunakannya.

Untuk melihat mesin yang digunakan oleh tabel database Anda, Anda dapat menjalankan perintah berikut di shell MariaDB, mengubah demodb ke nama database Anda:

SHOW TABLE STATUS FROM demodb;

Memilih mesin

Idealnya Anda tidak perlu memilih mesin. Jika Anda tidak terlalu akrab dengan MariaDB, itu cara paling aman untuk dilakukan. Biarkan aplikasi yang menanganinya, dan jika Anda menulis aplikasi, gunakan mesin default hingga Anda merasa lebih nyaman dengan opsi Anda.

Mesin database yang paling sering digunakan dengan MariaDB adalah MyISAM danInnoDB .

MyISAM

Karena MyISAM telah menjadi default di MySQL untuk sementara waktu, ini adalah yang paling kompatibel dengan MariaDB. Jenis pencarian tertentu berkinerja lebih baik di MyISAM daripada InnoDB. Hanya karena ini lebih tua dari keduanya, bukan berarti itu tidak bisa menjadi yang terbaik untuk jenis aplikasi tertentu.

InnoDB

InnoDB lebih toleran terhadap kesalahan daripada MyISAM dan menangani kerusakan dan pemulihan dengan kemungkinan korupsi basis data yang jauh lebih kecil. Ini adalah hal yang baik.

Namun, untuk kinerja terbaik, InnoDB memerlukan banyak penyesuaian untuk lingkungan dan pola akses Anda. Jika Anda memiliki aDBA, pekerjaan ini mungkin tidak menjadi masalah. Tetapi jika Anda seorang pengembang yang ingin basis data aktif dan berjalan untuk server uji, Anda mungkin tidak ingin berurusan dengan penyetelan InnoDB.

Ringkasan

Pada titik ini, Anda harus memiliki pemahaman yang baik tentang MariaDB. Untuk informasi lebih lanjut, lihat situs dokumentasi MariaDB.


Linux
  1. Menginstal MariaDB di CentOS 7

  2. Instal MariaDB 10.0 di CentOS 6

  3. Instal MariaDB di Server CentOS 7 - Proses Langkah demi Langkah?

  1. Instal server MariaDB di CentOS

  2. CentOS / RHEL :Cara mengkonfigurasi server DHCP

  3. Centos 7:Instal, Konfigurasi, Kelola

  1. Instal MariaDB di CentOS 7

  2. Cara Menginstal MariaDB di CentOS 8

  3. Centos 7:Konfigurasi Server DNS