Thứ ba, 17/03/2015 | 00:00 GMT+7

Cách sử dụng MySQL với ứng dụng Ruby on Rails của bạn trên CentOS 7

Ruby on Rails sử dụng sqlite3 làm database mặc định của nó, nó hoạt động tốt trong nhiều trường hợp, nhưng có thể không đủ cho ứng dụng của bạn. Nếu ứng dụng của bạn yêu cầu khả năng mở rộng, tập trung và kiểm soát (hoặc bất kỳ tính năng nào khác) của database SQL client / server , chẳng hạn như PostgreSQL hoặc MySQL , bạn cần thực hiện một vài bước bổ sung để cài đặt và chạy nó.

Hướng dẫn này sẽ chỉ cho bạn cách cài đặt môi trường Ruby on Rails phát triển cho phép các ứng dụng của bạn sử dụng database MySQL, trên server CentOS 7 hoặc RHEL. Đầu tiên, ta sẽ giới thiệu cách cài đặt MySQL và viên ngọc bộ điều hợp MySQL. Sau đó, ta sẽ hướng dẫn bạn cách tạo một ứng dụng rails sử dụng MySQL làm server database của nó.

Yêu cầu

Hướng dẫn này yêu cầu phải có một môi trường phát triển Ruby on Rails đang hoạt động. Nếu bạn chưa có, bạn có thể làm theo hướng dẫn trong liên kết này: Cách cài đặt Ruby on Rails với rbenv trên CentOS 7 .

Bạn cũng cần phải có quyền truy cập vào account superuser, hoặc sudo , để có thể cài đặt phần mềm database MySQL.

Hướng dẫn này cũng giả định SELinux bị tắt.

Khi đã sẵn sàng , hãy cài đặt MySQL.

Cài đặt MySQL

Nếu bạn chưa cài đặt MySQL, hãy làm điều đó ngay bây giờ. CentOS sử dụng MariaDB để thay thế cho MySQL.

Cài đặt MySQL và các thư viện phát triển của nó:

sudo yum install mariadb-server mariadb-devel 

Khi quá trình cài đặt hoàn tất, ta cần khởi động MySQL bằng lệnh sau:

sudo systemctl start mariadb 

Bây giờ database MySQL của ta đang chạy, ta muốn chạy một tập lệnh bảo mật đơn giản sẽ loại bỏ một số mặc định nguy hiểm và khóa quyền truy cập vào hệ thống database của ta một chút. Bắt đầu tập lệnh tương tác bằng lệnh:

sudo mysql_secure_installation 

Dấu nhắc sẽ yêu cầu bạn nhập password root hiện tại của bạn. Vì bạn vừa cài đặt MySQL, rất có thể bạn sẽ không có, vì vậy hãy để trống bằng cách nhấn enter. Sau đó, dấu nhắc sẽ hỏi bạn có muốn đặt password root hay không. Hãy tiếp tục và nhấn Enter , và đặt password . Đối với các câu hỏi còn lại, bạn chỉ cần nhấn phím Enter qua từng dấu nhắc để chấp nhận các giá trị mặc định. Thao tác này sẽ xóa một số user và database mẫu, vô hiệu hóa đăng nhập root từ xa và tải các luật mới này để MySQL áp dụng ngay những thay đổi mà ta đã thực hiện.

Điều cuối cùng bạn cần làm là kích hoạt MariaDB để bắt đầu khi server khởi động . Sử dụng lệnh sau để thực hiện :

sudo systemctl enable mariadb.service 

MySQL hiện đã được cài đặt, nhưng ta vẫn cần cài đặt MySQL gem.

Cài đặt MySQL Gem

Trước khi ứng dụng Rails của bạn có thể kết nối với server MySQL, bạn cần cài đặt bộ điều hợp MySQL. mysql2 quý mysql2 cung cấp chức năng này.

Với quyền là user Rails, hãy cài đặt gem mysql2 , như sau:

gem install mysql2 

Như vậy, các ứng dụng Rails của bạn có thể sử dụng database MySQL.

Tạo ứng dụng rail mới

Tạo một ứng dụng Rails mới trong folder chính của bạn. Sử dụng tùy chọn -d mysql để đặt MySQL làm database và đảm bảo thay thế từ được đánh dấu bằng tên ứng dụng của bạn:

cd ~ rails new appname -d mysql 

Sau đó chuyển vào folder của ứng dụng:

cd appname 

Bước tiếp theo là cấu hình kết nối database của ứng dụng.

Cấu hình kết nối database

Nếu bạn đã làm theo hướng dẫn cài đặt MySQL từ hướng dẫn này, bạn đã đặt password cho user root của MySQL. Thông tin đăng nhập root MySQL sẽ được sử dụng để tạo database thử nghiệm và phát triển ứng dụng của bạn.

Mở file cấu hình database của ứng dụng trong editor yêu thích của bạn. Ta sẽ sử dụng vi:

vi config/database.yml 

Trong phần default , hãy tìm dòng có nội dung “mật khẩu:” và thêm password vào cuối. Nó sẽ trông giống như thế này (thay thế phần được đánh dấu bằng password root MySQL của bạn):

password: mysql_root_password 

Lưu và thoát.

Tạo database ứng dụng

Tạo database testdevelopment ứng dụng của bạn bằng cách sử dụng lệnh rake này:

rake db:create 

Thao tác này sẽ tạo hai database trong server MySQL của bạn. Ví dụ: nếu tên ứng dụng của bạn là “appname”, nó sẽ tạo database có tên “appname_development” và “appname_test”.

Nếu bạn gặp lỗi cho biết “Quyền truy cập bị từ chối đối với user 'root' @ 'localhost' (sử dụng password : CÓ) Vui lòng cung cấp password root cho cài đặt MySQL của bạn", hãy nhấn Ctrl-c để thoát. Sau đó truy cập lại tiểu mục trước đó ( Cấu hình kết nối database ) đảm bảo rằng password trong database.yml là chính xác. Sau khi đảm bảo password chính xác, hãy thử tạo lại database ứng dụng.

Cấu hình thử nghiệm

Cách dễ nhất để kiểm tra xem ứng dụng của bạn có thể sử dụng database MySQL hay không là thử chạy nó.

Ví dụ: để chạy môi trường phát triển (mặc định), hãy sử dụng lệnh này:

rails server 

Thao tác này sẽ khởi động ứng dụng Rails của bạn trên server local của bạn trên cổng 3000.

Nếu ứng dụng Rails của bạn nằm trên một server từ xa và bạn muốn truy cập nó thông qua trình duyệt web, một cách dễ dàng là liên kết nó với địa chỉ IP công cộng của server của bạn. Đầu tiên, hãy tra cứu địa chỉ IP công cộng của server của bạn, sau đó sử dụng nó với lệnh rails server như sau:

rails server --binding=server_public_IP 

Đến đây bạn sẽ có thể truy cập ứng dụng Rails của bạn trong trình duyệt web thông qua địa chỉ IP công cộng của server trên cổng 3000:

http://server_public_IP:3000 

Nếu bạn thấy trang Ruby on Rails “Chào mừng lên tàu”, ứng dụng của bạn đã được cấu hình đúng cách và được kết nối với database MySQL.

Kết luận

Đến đây bạn đã sẵn sàng để bắt đầu phát triển ứng dụng Ruby on Rails của bạn , với MySQL làm database , trên CentOS 7!

Chúc may mắn!


Tags:

Các tin liên quan

Cách đo hiệu suất truy vấn MySQL với mysqlslap
2014-10-02
Cách di chuyển database MySQL sang server mới trên Ubuntu 14.04
2014-05-22
Cách tối ưu hóa hiệu suất WordPress với MySQL Replication trên Ubuntu 14.04
2014-05-21
Cách sử dụng profile truy vấn MySQL
2014-04-07
Mở rộng quy mô Ruby on Rails: Thiết lập server MySQL chuyên dụng (phần 2)
2014-02-27
Cách sử dụng HAProxy để thiết lập cân bằng tải MySQL
2013-12-02
Cách sử dụng HAProxy để thiết lập cân bằng tải MySQL
2013-12-02
Cách cài đặt MySQL 5.6 từ kho lưu trữ chính thức của Yum
2013-11-13
Cách tối ưu hóa các truy vấn và bảng trong MySQL và MariaDB trên VPS
2013-11-11
Cách bảo mật sao chép MySQL bằng SSH trên VPS
2013-09-18