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.
Artikel terkait
- Instal server MySQL® pada sistem operasi Ubuntu
- Setel ulang kata sandi root MySQL®