Ruby di atas Rel menggunakan SQLite3 sebagai database default. Meskipun Sqlite bekerja sangat baik dengan Rails, terkadang itu mungkin tidak cukup untuk aplikasi Rails Anda. Jika Anda menginginkan skalabilitas, konkurensi, sentralisasi, dan kontrol, Anda mungkin ingin mencoba database yang lebih kuat seperti MySQL atau PostgreSQL. Dalam panduan ini, kita akan melihat bagaimana menggunakan MySQL dengan aplikasi Ruby on Rails di Ubuntu Linux.
1. Instal MySQL di Ubuntu
MySQL tersedia di repositori default sebagian besar distribusi Linux dan Unix.
Untuk menginstal MySQL di Debian, Ubuntu dan turunannya, jalankan:
$ sudo apt install mysql-server mysql-client libmysqlclient-dev
libmysqlclient-dev
package menyediakan file yang diperlukan untuk mengkompilasi mysql2
permata. Ruby on Rails menggunakan mysql2
gem untuk terhubung ke MySQL saat Anda menyiapkan aplikasi Rails.
1.1. Siapkan kata sandi Root MySQL
Selanjutnya, atur kata sandi pengguna root MySQL dengan menjalankan perintah berikut:
$ sudo mysql_secure_installation
Masukkan "y" untuk menyiapkan komponen VALIDATE PASSWORD:
Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: y
Pilih tingkat validasi kata sandi. Validasi sandi yang tersedia rendah , sedang dan kuat . Di sini, saya memilih validasi kata sandi tingkat rendah dengan memasukkan nol (0).
There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
Selanjutnya, masukkan kata sandi Root MySQL dua kali. Kata sandi harus kuat dan harus memiliki minimal 8 karakter. Tekan Y untuk melanjutkan:
Please set the password for root here. New password: Re-enter new password: Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
Selanjutnya, Anda akan diberikan serangkaian pertanyaan. Ketik y dan tekan ENTER untuk setiap pertanyaan. Ini akan menghapus pengguna anonim, melarang login pengguna root dari jarak jauh, dan menghapus basis data pengujian.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y Success. Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y Success. By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y - Dropping test database... Success. - Removing privileges on test database... Success. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Success. All done!
Selesai! Kami telah menetapkan kata sandi pengguna root MySQL.
1.2. Instal driver MySQL
Instal driver MySQL bernama mysql2
gem yang memungkinkan aplikasi Rails terhubung ke database MySQL.
$ gem install mysql2
Semua selesai! Aplikasi Rails sekarang dapat terhubung ke server database MySQL.
Mari kita maju dan membuat aplikasi Rails baru dengan database MySQL.
2. Gunakan MySQL dengan aplikasi Ruby on Rails
Untuk membuat aplikasi Rails baru bernama ostechnixapp
dan gunakan database MySQL sebagai database default, jalankan:
$ rails new ostechnixapp -d mysql
Ini akan membuat aplikasi Rails bernama ostechnixapp di direktori bernama ostechnixapp
dan instal dependensi permata yang telah disebutkan di Gemfile
menggunakan bundle install
.
Setelah membuat ostechnixapp
aplikasi, pindah ke direktorinya:
$ cd ostechnixapp/
Edit file konfigurasi database aplikasi:
$ vi config/database.yml
Di bawah bagian default, ganti MySQL root
kata sandi pengguna dengan yang Anda buat sebelumnya:
[...] default: &default adapter: mysql2 encoding: utf8mb4 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: Password123#@! socket: /var/run/mysqld/mysqld.sock [...]
Simpan dan tutup file.
Sekarang buat database baru untuk aplikasi Rails Anda menggunakan perintah:
$ rake db:create
Ini akan membuat dua database dengan nama aplikasi Rails Anda. Misalnya, jika nama aplikasinya adalah ostechnixapp, maka itu akan membuat ostechnixapp_development
dan ostechnixapp_test
.
Anda dapat memverifikasinya jika database berhasil dibuat dari MySQL juga.
Masuk ke MySQL sebagai root
pengguna:
$ mysql -u root -p
Verifikasi apakah database dibuat dengan memasukkan perintah berikut:
mysql> show databases;
Contoh keluaran:
+--------------------------+ | Database | +--------------------------+ | information_schema | | mysql | | ostechnixapp_development | | ostechnixapp_test | | performance_schema | | sys | +--------------------------+ 6 rows in set (0.01 sec) mysql>
Keluar dari perintah MySQL.
Sekarang mulai server web Rails Anda menggunakan perintah:
$ rails server -b 0.0.0.0
Ini akan memulai aplikasi Rails Anda pada port default 3000
. Di sini, kami melewati argumen -b 0.0.0.0
untuk mengakses aplikasi Rails dari mesin mana pun di jaringan area lokal.
Anda dapat mengakses halaman pengujian Rails di browser web Anda dengan menavigasi ke URL:http://ip-address:3000
Jika Anda ingin menggunakan port yang berbeda, lewati -p tandai beserta nomor port seperti di bawah ini:
$ rails server -b 0.0.0.0 -p 8080
Sekarang, Anda dapat mengakses aplikasi Rails Anda menggunakan URL ini:http://ip-address:8080
3. Hapus aplikasi Rails
Jika Anda telah menggunakan database default yaitu SQLite, Anda dapat menghapus aplikasi Rails hanya dengan menghapus direktori aplikasinya.
$ rm -fr ostechnixapp
Jika Anda telah menggunakan MySQL, pertama-tama Anda harus menghapus database terkait aplikasi Anda menggunakan perintah:
$ rake db:drop
Dan kemudian hapus direktori aplikasi:
$ rm -fr ostechnixapp
Kesimpulan
Dalam tutorial ini, kita membahas mengapa kita perlu menggunakan database model klien/server untuk aplikasi Rails kita dan cara membuat aplikasi Rails dengan database MySQL. Kami juga telah melihat cara menghapus aplikasi Rails.
Jika beberapa salinan aplikasi Rails berjalan pada saat yang sama, beberapa aplikasi dan pengguna menggunakan database yang sama, Anda harus menjauh dari Sqlite dan mencoba database model klien/server seperti MySQL. Jika Anda menginginkan penyimpanan data lokal untuk aplikasi individual, Sqlite sudah lebih dari cukup.
Bacaan terkait:
- Cara Menggunakan PostgreSQL Dengan Aplikasi Ruby On Rails
- Konfigurasi Koneksi Database Menggunakan Variabel Lingkungan Dalam Rails