Cách sử dụng MySQL trong Ruby on Rails trên CentOS 7
Ruby on Rails sử dụng sqlite3 là cơ sở dữ liệu mặc định, điều này hoạt động tốt trong nhiều trường hợp nhưng có thể không đáp ứng đủ yêu cầu ứng dụng của bạn. Nếu ứng dụng của bạn yêu cầu tính 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 cơ sở dữ liệu SQL máy khách/máy chủ, chẳng hạn như PostgreSQL hoặc MySQL, bạn sẽ 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ỉ bạn cách thiết lập môi trường Ruby on Rails phát triển để cho phép ứng dụng sử dụng cơ sở dữ liệu MySQL trên một máy chủ CentOS 7 hoặc RHEL. Trước tiên, chúng ta sẽ tìm hiểu cách cài đặt MySQL và gem adapter MySQL. Sau đó sẽ là hướng dẫn tạo một ứng dụng Rails sử dụng MySQL làm máy chủ cơ sở dữ liệu của nó.
Yêu cầu tiên quyết khi sử dụng MySQL trong ứng dụng Ruby on Rails
Hướng dẫn này đòi hỏi bạn phải có môi trường phát triển Ruby on Rails hoạt động. Nếu bạn chưa có môi trường đó, bạn thực hiện cài đặt Ruby on Rails với rbenv trên CentOS 7 trước.
Tiếp đến, bạn cũng cần có quyền truy cập vào một tài khoản superuser hoặc sudo để có thể cài đặt phần mềm cơ sở dữ liệu MySQL. Trong hướng dẫn này giả định rằng SELinux đã được tắt. Khi bạn đã sẵn sàng, hãy cài đặt MySQL.
Hướng dẫn sử dụng MySQL trong Ruby on Rails trên Centos 7
Cài đặt MySQL
Nếu bạn chưa cài đặt MySQL, chúng ta hãy tiến hành cài đặt bây giờ. CentOS sử dụng MariaDB như một phiên bản 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, chúng ta cần khởi động MySQL bằng lệnh sau:
sudo systemctl start mariadb
Bây giờ MySQL của chúng ta đang chạy, chạy một script bảo mật đơn giản sẽ loại bỏ một số giá trị mặc định nguy hiểm và khóa quyền truy cập vào hệ thống cơ sở dữ liệu một chút. Chạy script tương tác bằng cách chạy lệnh sau:
sudo mysql_secure_installation
Lúc này, bạn sẽ được yêu cầu nhập mật khẩu root hiện tại. Vì bạn mới cài đặt và sử dụng MySQL nên bạn không có mật khẩu nào, hãy để trống và nhấn Enter. Sau đó, bạn sẽ được yêu cầu xác định mật khẩu root. Nhập mật khẩu và nhấn Enter.
Đối với các câu hỏi còn lại, bạn chỉ cần nhấn phím Enter để chấp nhận các giá trị mặc định. Điều này sẽ xóa một số người dùng và cơ sở dữ liệu mẫu, vô hiệu hóa đăng nhập root từ xa và áp dụng các quy tắc mới để MySQL ngay lập tức thể hiện những thay đổi chúng ta đã thực hiện.
Cuối cùng, bạn sẽ kích hoạt MariaDB khởi động cùng hệ thống. Sử dụng lệnh sau để thực hiện điều này:
sudo systemctl enable mariadb.service
MySQL hiện đã được cài đặt, nhưng chúng ta vẫn cần cài đặt gem MySQL.
Cài đặt gem MySQL
Trước khi ứng dụng Rails của bạn có thể kết nối đến máy chủ MySQL, bạn cần cài đặt bộ kết nối MySQL. Gem mysql2 cung cấp chức năng này.
Dưới tài khoản Rails, cài đặt gem mysql2 như sau:
gem install mysql2
Bây giờ ứng dụng Rails của bạn có thể sử dụng MySQL database.
Tạo ứng dụng Rails mới
Tạo một ứng dụng Rails mới trong thư mục home của bạn. Sử dụng tùy chọn -d mysql để đặt MySQL làm cơ sở dữ liệu và hãy chắc chắn thay thế từ trước được làm nổi bật bằng tên ứng dụng của bạn:
cd ~ rails new appname -d mysql
Tiếp theo, di chuyển vào thư mục của ứng dụng:
cd appname
Bước tiếp theo là cấu hình kết nối cơ sở dữ liệu cho ứng dụng.
- Cấu hình kết nối cơ sở dữ liệu
Nếu bạn đã tuân theo hướng dẫn cài đặt MySQL từ bài viết này, bạn đã đặt mật khẩu cho người dùng root của MySQL. Người dùng root của MySQL sẽ được sử dụng để tạo cơ sở dữ liệu thử nghiệm và phát triển cho ứng dụng của bạn.
Mở file cấu hình cơ sở dữ liệu của ứng dụng trong trình soạn thảo văn bản yêu thích của bạn. Ví dụ, chúng ta sẽ sử dụng vi:
vi config/database.yml
Trong phần mục tiêu mặc định, tìm dòng có chứa từ "password:" và thêm mật khẩu vào cuối dòng đó. Nó sẽ trông giống như sau (thay phần được nhấn màu trong ví dụ dưới đây bằng mật khẩu root của MySQL của bạn):
password: mysql_root_password
Lưu lại và sau đó thoát ra.
- Tạo ứng dụng cơ sở dữ liệu
Tạo cơ sở dữ liệu phát triển và kiểm tra cho ứng dụng của bạn bằng lệnh rake sau đây:
rake db:create
Điều này sẽ tạo ra hai cơ sở dữ liệu trong máy chủ MySQL. Ví dụ, nếu tên ứng dụng của bạn là "appname", nó sẽ tạo ra các cơ sở dữ liệu có tên "appname_development" và "appname_test".
Nếu bạn gặp thông báo lỗi "Access denied for user 'root'@'localhost' (using password: YES) Please provide the root password for your MySQL installation", nhấn Ctrl-c để thoát. Sau đó, hãy kiểm tra lại phần trước đó (Configure Database Connection) để đảm bảo rằng mật khẩu trong database.yml là chính xác. Sau khi đảm bảo rằng mật khẩu là chính xác, hãy thử tạo lại cơ sở dữ liệu ứng dụng.
Cấu hình thử nghiệm
Cách đơn giản nhất để kiểm tra ứng dụng của bạn có thể sử dụng cơ sở dữ liệu MySQL là thử chạy nó. Ví dụ, để chạy môi trường phát triển (môi trường mặc định), sử dụng lệnh sau đây:
rails server
Điều này sẽ khởi động ứng dụng Rails của bạn trên localhost tại cổng 3000.
Nếu ứng dụng Rails đặt trên một máy chủ từ xa và bạn muốn truy cập vào nó thông qua trình duyệt web, một cách dễ dàng là ràng buộc nó với địa chỉ IP công cộng của máy chủ. Đầu tiên, tìm địa chỉ IP công cộng của máy chủ của bạn, sau đó sử dụng nó với lệnh rails server như sau:
rails server --binding=server_public_IP
Bây giờ bạn có thể truy cập vào ứng dụng Rails của mình thông qua trình duyệt web bằng địa chỉ IP công cộng của máy chủ trên cổng 3000:
http://server_public_IP:3000
Nếu bạn thấy trang "Welcome aboard" của Ruby on Rails, điều đó có nghĩa ứng dụng của bạn đã được cấu hình đúng và kết nối với cơ sở dữ liệu MySQL.
Bây giờ bạn đã sẵn sàng bắt đầu phát triển ứng dụng Ruby on Rails của mình, sử dụng MySQL là cơ sở dữ liệu trên CentOS 7.
Mọi người cũng tìm kiếm: cài đặt ruby on rails trên ubuntu, cài đặt ruby on rails trên windows, rails install mysql
Các gói dịch vụ Cloud VPS của KDATA mang đến cho bạn nhiều lựa chọn về hiệu suất cũng như khả năng lưu trữ, mọi nhu cầu về doanh nghiệp đều được đáp ứng. KDATA đảm bảo khả năng uptime lên đến 99,99%, toàn quyền quản trị và free backup hằng ngày. Tham khảo ngay các gói dịch vụ Cloud VPS:
👉 Liên hệ ngay KDATA hỗ trợ tận tình, support tối đa, giúp bạn trải nghiệm dịch vụ giá hời chất lượng tốt nhất