GNU/Linux >> Belajar Linux >  >> Cent OS

FAQ Penerapan MySQL

Apa itu MySQL ?

MySQL adalah sistem basis data relasional sumber terbuka yang cepat, andal, terukur, dan mudah digunakan, didukung oleh Oracle. MySQL Server dirancang untuk menangani aplikasi produksi yang sangat penting dan berat. Jika Anda mengembangkan situs web atau aplikasi web, MySQL adalah pilihan yang baik. MySQL adalah komponen penting dari LAMP stack, yang meliputi Linux, Apache, MySQL, dan PHP.

Mengapa menggunakan Bitnami MySQL Stack?

Bitnami MySQL Stack selalu up-to-date dan aman. Pemasangan dan konfigurasi tumpukan diotomatisasi sepenuhnya, sehingga memudahkan semua orang, termasuk mereka yang tidak terlalu teknis, untuk menyiapkan dan menjalankannya.

Tutorial dan dokumentasi Bitnami MySQL

  • Halaman MySQL Bitnami
  • Panduan Pengguna MySQL Bitnami
  • Log Perubahan MySQL Bitnami
  • Untuk Membuat Database &Pengguna MySQL
  • Untuk Memodifikasi Kata Sandi Administrator MySQL
  • Untuk Mengamankan MySQL
  • Untuk Melakukan Dump &Restore Pencadangan MySQL
  • Untuk Mengonfigurasi MySQL Workbench
  • Untuk Memeriksa File Log MySQL

Di mana Menemukan Kredensial Root MySQL?

Kredensial root instance/node/machine akan dikirim ke alamat email terdaftar Anda segera setelah instance MySQL diluncurkan.

Kredensial MySQL disimpan dalam file mandiri. Untuk mendapatkan kredensial kapan saja, ikuti langkah-langkah berikut:

  • Hubungkan ke instance/node/mesin melalui SSH menggunakan root kredensial pengguna.
  • Jalankan perintah berikut untuk mendapatkan kredensial aplikasi Anda:
      cat /home/bitnami/bitnami_credentials

Catatan:Untuk pengguna MySQL adalah root, dari atas hanya salin Kata Sandi

Cara membuka port MySQL 3306 menggunakan UFW Firewall

Secara default, port Bitnami MySQL dikonfigurasi untuk dapat diakses hanya di localhost. Untuk membuka port MySQL ke internet terbuka atau hanya ke alamat IP tertentu, ikuti langkah-langkah di bawah ini.

1.Hubungkan ke instance/node/mesin melalui SSH menggunakan root kredensial pengguna.

Risiko Keamanan :Membuat port jaringan Database ini ke internet publik adalah risiko keamanan yang signifikan. Sangat disarankan untuk membuka port MySQL hanya untuk alamat IP tepercaya.

2 (a) Jalankan perintah berikut untuk membuka port ke Internet:

      ufw allow mysql/tcp

2 (b) Jalankan perintah berikut untuk Membuka port ke alamat IP tertentu

      ufw allow from IPADDRESS to any port 3306 proto tcp

Bagaimana cara Menghubungkan Database MySQL ?

Setelah meluncurkan Anda Instance MySQL.Anda dapat terhubung ke database dari instance yang sama menggunakan mysql alat klien..

  • Hubungkan ke instance/node/mesin melalui SSH menggunakan root kredensial pengguna.
           ssh root@<public IP>
  • Jalankan perintah berikut untuk login Database mysql
         # mysql -u root -p

Anda akan diminta untuk memasukkan root kata sandi pengguna…

Bagaimana cara mengizinkan Akses MYSQL alamat IP Jarak Jauh?

Secara default, MySQL tidak mengizinkan klien jarak jauh untuk terhubung ke database MySQL. Jika Anda mencoba untuk mendapatkan akses ke database MYSQL server Anda dari jarak jauh, jelas bahwa Anda akan mendapatkan respons yang mirip dengan ini:

“ERROR 1130: Host is not allowed to connect to this MySQL server”
Example:
$ mysql -h XXX.168.X.8 -u root -p
Enter password:
ERROR 1130: Host 'xxx.xx.x.x' is not allowed to connect to this MySQL server

Solusi :

Untuk mengatasi kesalahan ini, Anda dapat mengizinkan klien tertentu ip -address (Static Ip) untuk mengakses database MySQL yang berjalan di server. Anda harus menjalankan perintah berikut di server yang menjalankan database MySQL:

 $ /opt/bitnami/mysql/bin/mysql -u root -p
Enter password:
mysql> use mysql
mysql> GRANT ALL ON *.* to root@'XXX.XXX.X.X' IDENTIFIED BY 'your-root-password';
mysql> FLUSH PRIVILEGES;

Ganti 'XXX.XXX.X.X' pada contoh di atas dengan static-Ip Anda dan kata sandi Root Anda sebagai ganti 'kata sandi root-Anda'.

Catatan:Ini hanya akan berfungsi jika Anda menjalankan internet pada layanan berbasis IP statis.

Alamat IP statis adalah nomor yang ditetapkan ke komputer oleh penyedia layanan Internet (ISP) sebagai alamat permanennya di Internet.

Eksekusi perintah di atas akan memberikan akses ke satu IP statis tertentu, yang dengannya MYSQL dapat diakses dari jarak jauh.

Juga, perbarui aturan firewall untuk memastikan port# 3306 di UFW terbuka di server yang menjalankan mysql basis data.

Cara Mengoptimalkan Kinerja MySQL Menggunakan MySQLTuner

Alat yang Dapat Membantu Mengoptimalkan MySQL:

Untuk menentukan apakah database MySQL Anda perlu dikonfigurasi ulang, yang terbaik adalah melihat bagaimana kinerja sumber daya Anda sekarang. Ini dapat dilakukan dengan perintah teratas atau dengan layanan pemantauan E2E. Paling tidak, Anda harus membiasakan diri dengan penggunaan RAM dan CPU server Anda, yang dapat ditemukan dengan perintah berikut:

#echo [PID]  [MEM]  [PATH] &&  ps aux | awk '{print $2, $4, $11}' | sort -k2rn | head -n 20
#ps -eo pcpu,pid,user,args | sort -k 1 -r | head -20

MySQLTuner:

Skrip MySQLTuner menilai MySQL instalasi, lalu mengeluarkan saran untuk meningkatkan kinerja dan stabilitas server Anda.

  • Untuk menginstal mysqltuner , unduh mysqltuner .pl skrip. Misalnya, Anda dapat mengunduhnya dengan wget :
#wget https://raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl
  • Untuk memantau server MySQL yang diinstal oleh tumpukan Bitnami, berikan nilai koneksi melalui baris perintah, seperti yang ditunjukkan di bawah ini. Perhatikan bahwa Anda perlu menginstal Perl di sistem.
#perl mysqltuner.pl --socket /opt/bitnami/mysql/tmp/mysql.sock
  • Script akan mengembalikan hasil yang mirip dengan output di bawah ini:

MySQLTuner menawarkan saran tentang cara meningkatkan kinerja database. Jika Anda khawatir tentang memperbarui database Anda sendiri, mengikuti saran MySQLTuner adalah salah satu cara yang lebih aman untuk meningkatkan kinerja database Anda.

Menyetel MySQL:

Saat mengubah konfigurasi MySQL, waspadalah terhadap perubahan dan pengaruhnya terhadap database Anda. Bahkan ketika mengikuti instruksi program seperti MySQLTuner, yang terbaik adalah memiliki pemahaman tentang prosesnya.

File konfigurasi Bitnami MySQL disimpan di lokasi berikut:/opt/bitnami/mysql/my.cnf.

Catatan:Sebelum memperbarui konfigurasi MySQL Anda, buat cadangan my file .cnf:

    # cp /opt/bitnami/mysql/my.cnf ~/my.cnf.backup

Praktik terbaik menyarankan agar Anda membuat perubahan, satu per satu, dan kemudian memantau server setelah setiap perubahan. Anda harus memulai ulang MySQL setelah setiap perubahan:

Mulai ulang server:

     # /opt/bitnami/ctlscript.sh restart mysql

Saat mengubah nilai dalam file my.cnf, pastikan bahwa baris yang Anda ubah belum dikomentari dengan awalan pound (#).

key_buffer

Mengubah key_buffer mengalokasikan lebih banyak memori ke MySQL, yang secara substansial dapat mempercepat database Anda, dengan asumsi Anda memiliki memori bebas. Ukuran key_buffer umumnya tidak boleh lebih dari 25 persen dari memori sistem saat menggunakan mesin tabel MyISAM, dan hingga 70 persen untuk InnoDB. Jika nilainya ditetapkan terlalu tinggi, sumber daya akan terbuang sia-sia.

Menurut dokumentasi MySQL, untuk server dengan 256MB (atau lebih) RAM dengan banyak tabel, pengaturan 64M direkomendasikan. Server dengan RAM 128MB dan tabel yang lebih sedikit dapat diatur ke 16M, nilai default. Situs web dengan sumber daya dan tabel yang lebih sedikit dapat menetapkan nilai ini lebih rendah.

max_allowed_packet

Parameter ini memungkinkan Anda mengatur ukuran maksimum paket yang dapat dikirim. Paket adalah status SQL tunggal, satu baris dikirim ke klien, atau log dikirim dari master ke budak. Jika Anda tahu bahwa server MySQL Anda akan memproses paket besar, yang terbaik adalah meningkatkannya ke ukuran paket terbesar Anda. Jika nilai ini disetel terlalu kecil, Anda akan menerima kesalahan di log kesalahan Anda.

thread_stack

Nilai ini berisi ukuran tumpukan untuk setiap utas. MySQL menganggap nilai default dari variabel thread_stack cukup untuk penggunaan normal; namun, jika kesalahan yang berkaitan dengan thread_stack dicatat, ini dapat ditingkatkan.

ukuran_cache_utas

Jika thread_cache_size "dimatikan" (diatur ke 0), maka koneksi baru apa pun yang dibuat memerlukan utas baru yang dibuat untuk itu. Ketika koneksi terlepas, utas dihancurkan. Jika tidak, nilai ini menetapkan jumlah utas yang tidak digunakan untuk disimpan dalam cache hingga perlu digunakan untuk koneksi. Umumnya pengaturan ini memiliki sedikit pengaruh pada kinerja, kecuali jika Anda menerima ratusan koneksi per menit, pada saat itu nilai ini harus ditingkatkan sehingga sebagian besar koneksi dapat dibuat pada utas yang di-cache.

Kolam Penyangga InnoDB

Kumpulan buffer InnoDB adalah ruang memori yang menampung banyak struktur data dalam memori dari InnoDB, buffer, cache, indeks, dan bahkan data baris. innodb_buffer_pool_size adalah parameter konfigurasi MySQL yang menentukan jumlah memori yang dialokasikan ke kumpulan buffer InnoDB oleh MySQL. Ini adalah salah satu pengaturan terpenting dalam konfigurasi hosting MySQL dan harus dikonfigurasi berdasarkan RAM sistem yang tersedia.

80% mungkin merupakan awal yang baik dan aturan praktis. Anda ingin memastikan server memiliki banyak RAM gratis untuk OS dan beban kerja yang biasanya tidak diketahui. Namun, seperti yang dapat kita lihat di bawah, semakin besar server, semakin besar kemungkinan aturan tersebut akan membuang-buang RAM. Saya pikir bagi kebanyakan orang itu dimulai dan diakhiri dengan aturan praktis, sebagian besar karena mengubah kumpulan buffer InnoDB memerlukan restart dalam rilis saat ini.

Total Server RAM Buffer pool dengan aturan 80% Sisa RAM

1G                                 800MB           200MB

16G                               13G              3G

32G                                26G              6G

64G                                51G               13G

128G                              102G             26G

256G                             205G               51G

512G                              409G               103G

1024G                           819G                 205G

Jadi apa aturan praktis yang lebih baik? Aturan saya adalah Anda menyetel innodb_buffer_pool_size sebesar mungkin tanpa menggunakan swap saat sistem menjalankan beban kerja produksi. Ini terdengar bagus pada prinsipnya, tetapi sekali lagi, ini membutuhkan banyak restart dan mungkin lebih mudah diucapkan daripada dilakukan.

koneksi_maks

Parameter ini menetapkan jumlah maksimum koneksi bersamaan. Yang terbaik adalah mempertimbangkan jumlah maksimum koneksi yang Anda miliki di masa lalu sebelum menetapkan nomor ini, sehingga Anda akan memiliki buffer antara nomor atas dan nilai max_connections. Perhatikan, ini tidak menunjukkan jumlah maksimum pengguna di situs web Anda pada satu waktu; melainkan menunjukkan jumlah maksimum pengguna yang membuat permintaan secara bersamaan.

tabel_cache

Nilai ini harus disimpan lebih tinggi dari nilai open_tables Anda. Untuk menentukan nilai ini gunakan:

TAMPILKAN STATUS SEPERTI 'open%';


Cent OS
  1. Bagaimana Mengubah Susunan Database MySQL?

  2. Cara menyalin database MySQL

  3. Tingkatkan caching Database MySQL

  1. Optimalkan database MySQL

  2. Cara Menginstal Server Database MySQL 8 di CentOS 8

  3. Cara Menginstal MySQL 8.0 di CentOS/RHEL 8

  1. Cara Menginstal Server Database MySQL di CentOS

  2. Cara Memperbaiki Tabel Database Mysql yang Rusak

  3. Manajer MySQL CWP