GNU/Linux >> Belajar Linux >  >> Linux

Konfigurasikan server MySQL pada sistem operasi Ubuntu

Artikel tersebut membahas tentang penyiapan server MySQL® dasar pada sistem operasi Ubuntu®. Ini menjelaskan cara mengatur kata sandi root, membuat database, dan menambahkan pengguna untuk database. Artikel ini membahas konfigurasi MySQL sedikit lebih detail sehingga Anda dapat menyesuaikan konfigurasinya dan siap jika terjadi kesalahan.

Temukan file konfigurasi

Secara default, Anda dapat menemukan file konfigurasi MySQL® di:

/etc/mysql

Namun, jika tidak ada, Anda dapat menggunakan mysqld untuk menemukan konfigurasi. Jalankan perintah berikut:

$ /usr/sbin/mysqld --help --verbose

Bagian pertama dari respons panjang menjelaskan opsi yang dapat Anda kirim ke server saat Anda meluncurkannya. Bagian kedua menampilkan set konfigurasi selama kompilasi server.

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

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

Server memeriksa daftar tersebut hingga menemukan file konfigurasi.

file konfigurasi my.cnf

Buka dan tinjau /etc/mysql/my.cnf berkas.

Baris komentar, dimulai dengan # , dokumentasikan penggunaan pengaturan yang berbeda. Mereka menunjukkan detail tentang lokasi file log, file database, dan detail lainnya.

Grup konfigurasi

File konfigurasi berisi baris dengan satu kata dalam tanda kurung siku, seperti [klien] atau [mysqld] .Bagian tersebut adalah grup konfigurasi. Mereka membuat elemen konfigurasi penting lebih terlihat oleh program yang membaca file konfigurasi.

Bagian konfigurasi server, secara teknis, adalah kumpulan alat. Itu termasuk server (mysqld ), klien (mysql ), dan alat lainnya. Program-program tersebut terlihat di my.cnf untuk melihat bagaimana mereka harus bersikap.

Bagian konfigurasi klien mengontrol mysql klien, dan mysqld bagian mengontrol konfigurasi server.

Log file

File log adalah tempat terbaik untuk memulai pemecahan masalah program apa pun. Secara default, MySQL menyimpan file lognya di direktori berikut:

/var/log/mysql

Anda mungkin perlu menggunakan sudo untuk mendapatkan daftar file dalam direktori tersebut.

Jika Anda tidak menemukan log MySQL® di direktori default, periksa konfigurasi MySQL. Lihat my.cnf file dan cari log_error baris, seperti pada:

log_error = /var/log/mysql/error.log

Jika Anda tidak melihat garis seperti itu, buat di mysqld bagian sehingga MySQL® dapat menggunakan log kesalahannya sendiri. Gunakan lokasi dalam contoh, buat /var/log/mysql direktori jika belum ada. Kemudian, restartMySQL untuk melakukan perubahan.

Pastikan pengguna dapat menulis ke direktori log yang dipilih dengan mengontrol mysql proses. Pengguna yang menjalankan proses ditentukan dalam konfigurasi pengguna nilai untuk mysqld di my.cnf .

Setelan jaringan

Mungkin ada setelan “port” di bawah klien dan server bagian konfigurasi. Port di bawah server bagian mengontrol port apa yang didengarkan server. Port default adalah 3306 tapi, Anda bisa mengubahnya.

Port di klien bagian memberitahu klien port apa yang akan dihubungkan secara default. Biasanya Anda ingin kedua pengaturan port cocok.

Jika Anda menggunakan pengaturan default, Anda tidak akan melihat entri port dalam file konfigurasi. Jika Anda ingin mengubah port, tambahkan baris berikut dalam kategori yang sesuai:

[client]
port = 3306

[mysqld]
port = 3306

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

Jika Anda menjalankan server MySQL di komputer yang berbeda dari aplikasi Anda, Anda harus mengikat ke alamat yang dapat diakses dari jarak jauh alih-alih localhost. Ubah pengaturan bind-address agar sesuai dengan alamat IP publik Anda. Untuk alasan keamanan, Anda harus menggunakan alamat IP backend di jaringan.

Jika Anda tidak melihat bind-address entri, Anda harus memasukkannya ke dalam mysqld kategori untuk membantu mengontrol akses ke server:

[mysqld]
$ bind-address = 127.0.0.1

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

mysqld dan mysqld_safe

Di balik layar, ada dua versi server MySQL, mysqld dan mysqld_safe . Keduanya membaca bagian konfigurasi yang sama. Namun, mysqld_safe diluncurkan dengan lebih banyak fitur keamanan yang diaktifkan untuk mempermudah pemulihan dari pemecahan masalah.

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

Secara default, layanan MySQL meluncurkan mysqld_safe , yang sesuai.

mysqladmin

mysqladmin alat ini memungkinkan Anda melakukan beberapa fungsi administratif dari baris perintah, yang tidak dibahas dalam artikel ini. Anda dapat menjelajahi 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 basis data.

Cadangan

Anda memiliki opsi berikut untuk mencadangkan basis data Anda, selain dari mencadangkan seluruh komputer yang biasa digunakan pendekatan. Dua opsi utama adalah menyalin file database atau menggunakan mysqldump .

Salinan file

Secara default, MySQL membuat direktori untuk setiap database di direktori datanya, /var/lib/mysql .

Setelah Anda menemukan direktori data, tunggu beberapa saat sebelum membuat salinannya. Saat server database aktif, ia menulis nilai baru ke tabel. Jangan hentikan proses ini untuk menghindari kemungkinan merusak cadangan Anda.

Untuk memastikan bahwa Anda menyalin file database dengan bersih, Anda harus mematikan server MySQL sepenuhnya sebelum menyalin.

Anda dapat mengunci database sebagai hanya-baca selama salinan. Saat Anda selesai, lepaskan kuncinya. Dengan begitu, aplikasi Anda tetap dapat membaca data saat Anda mencadangkan file.

Kunci database ke hanya-baca dengan menjalankan perintah berikut dari baris perintah:

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

Jalankan perintah berikut untuk membuka kunci database setelah selesai:

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

Opsi klien MySQL, -e , memberi tahu klien untuk menjalankan kueri dalam tanda kutip seolah-olah kita memasukkannya ke dalam shell MySQL®.

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

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

Pastikan Anda menyetel izin pada file tersebut untuk membatasi akses baca demi alasan keamanan sandi.

mysqldump

Pendekatan lain untuk membuat cadangan 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 untuk membuat ulang database, tetapi Anda juga dapat mengekspor database dalam format lain seperti .CSV atau .XML . Anda dapat membaca halaman manual untuk mysqldump untuk melihat semua opsinya.

Pernyataan yang dihasilkan oleh mysqldump langsung ke output standar. Anda dapat menentukan a untuk mengarahkan ulang output dengan menjalankan perintah berikut di baris perintah:

$ mysqldump -u root -p demodb > dbbackup.sql

Perintah ini memberitahu mysqldump untuk membuat ulang demodb database dalam pernyataan SQL dan menuliskannya ke filedbbackup.sql . Perhatikan bahwa opsi nama pengguna dan kata sandi berfungsi sama dengan klien MySQL sehingga Anda dapat memasukkan kata sandi langsung setelah -p dalam naskah.

Pulihkan dari mysqldump

Memulihkan mysqldump database mirip dengan cara Anda membuat dump, tetapi Anda menggunakan mysql alih-alih mysqldump , seperti yang ditunjukkan pada perintah pemulihan berikut:

$ mysql -u root -p demodb < dbbackup.sql

Perhatikan juga bahwa < kurung sudut berubah arah. Itu mengalihkan perintah dari mengarahkan outputnya ke mengekstrak input dari file yang ada. Masukan tersebut dikirim ke mysql perintah, menyebabkan instruksi untuk membuat ulang database.

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

Mesin database

Mesin basis data adalah proses yang bekerja di belakang layar, menulis dan membaca data dari file. Anda hanya perlu mengetahui hal ini jika ingin menjalankan aplikasi yang telah dioptimalkan untuk mesin database tertentu.

Aplikasi yang membutuhkan tabel membuatnya sesuai permintaan dan membuat tipe mesin secara otomatis. Untuk melihat mesin yang digunakan tabel database Anda, Anda dapat menjalankan perintah berikut di shell MySQL, mengubah demodb dengan nama database Anda.:

$ SHOW TABLE STATUS FROM demodb;

Pilih mesin

Idealnya, Anda tidak perlu memilih mesin. Jika Anda tidak terlalu akrab dengan MySQL, izinkan aplikasi untuk memilih satu secara default. Jika Anda sedang menulis aplikasi, gunakan mesin default sampai Anda merasa lebih nyaman dengan pilihan Anda.

Ikuti petunjuk administrator database (DBA), jika ada.

Dua mesin database yang paling sering digunakan dengan MySQL adalah MyISAM dan InnoDB . Mesin database default untuk MySQLversi 5.1 dan sebelumnya adalah MyISAM , sedangkan InnoDB adalah mesin database default yang dimulai dengan MySQL versi 5.5.

MyISAM

Karena MyISAM telah menjadi default di MySQL untuk sementara waktu, ini adalah pilihan yang paling kompatibel dari dua mesin utama. Jenis pencarian tertentu berkinerja lebih baik di MyISAM dari InnoDB . Meskipun lebih tua dari keduanya, ini mungkin pilihan terbaik untuk jenis aplikasi tertentu.

InnoDB

CATATAN: DBA dapat membantu Anda mencapai InnoDB terbaik kinerja karena InnoDB memerlukan banyak penyesuaian terhadap lingkungan dan pola akses Anda. Konfigurasi default optimal untuk penggunaan pengembangan perangkat lunak sehari-hari.

InnoDB lebih toleran terhadap kesalahan daripada MyISAM dan menangani kerusakan dan pemulihan dengan risiko korupsi basis data yang jauh lebih kecil.

Jika aplikasi Anda memerlukan InnoDB dan Anda menggunakan MySQL 5.1 atau yang lebih lama, mungkin tidak ada pengaturan apa pun di my.cnf berkas konfigurasi. Itu bisa menjadi masalah jika Anda menjalankan server yang tidak memiliki banyak memori.

Pengaturan berikut dapat membantu Anda memulai InnoDB di server bersama dengan 256 MB RAM:

innodb_buffer_pool_size = 32M
innodb_log_file_size = 8M
innodb_thread_concurrency = 8
innodb_file_per_table

Tambahkan itu ke [mysqld] bagian dari file konfigurasi. Sekali lagi, itu hanya panduan kasar. Mereka dapat membantu Anda memulai tetapi tidak dioptimalkan. Konsultasikan dengan DBA atau eksperimen Anda dengan perubahan bertahap dari waktu ke waktu untuk meningkatkan kinerja.

  • Instal server MySQL® pada sistem operasi Ubuntu
  • Setel ulang kata sandi root MySQL®

Linux
  1. Cara mengkonfigurasi server web Apache

  2. Konfigurasi Apache pada sistem operasi Ubuntu

  3. Berikan akses sudo di Debian dan sistem operasi Ubuntu

  1. Ubah Port SSH di sistem operasi Linux Ubuntu

  2. Instal IMAP untuk PHP 7.1 di sistem operasi Ubuntu

  3. Instal Server MySQL di sistem operasi Ubuntu

  1. Jadwalkan reboot di sistem operasi Ubuntu

  2. Siapkan host virtual Apache di sistem operasi Ubuntu

  3. Cara mengonfigurasi Database Budak MySQL