Trong bài hướng dẫn này, người dùng sẽ thiết lập môi trường phát triển Ruby on Rails cho phép các ứng dụng dùng cơ sở dữ liệu MySQL trên hệ thống server CentOS hay RHEL. Đầu tiên bạn sẽ cần cài sẵn MySQL cũng như MySQL adapter gem rồi mới tạo ứng dụng rails và dùng MySQL như server cơ sở dữ liệu. Tìm hiểu ngay cách sử dụng MySQL với Ruby on Rails trên CentOS 7 qua bài hướng dẫn dưới đây.
Yêu cầu để sử dụng MySQL với Ruby on Rails trên CentOS 7
Điều quan trọng chính là môi trường Ruby on Rails, tiếp theo người dùng cũng cần truy cập vào được quyền root (superuser), hoặc user non-root với quyền sudo thay vào đó, để thiết lập và cài đặt MySQL.
Ngoài ra, trong bài viết này, Vietnix giả định rằng SELinux đã bị vô hiệu hóa.
Trình tự tiến hành
Ruby on Rails sử dụng sqlite3 làm database mặc định, phương thức này hoạt động tương đối hiệu quả trong nhiều trường hợp nhưng chưa chắc đã tối ưu với ứng dụng của bạn. Nếu ứng dụng đó yêu cầu khả năng mở rộng, tập trung hóa và kiểm soát (hoặc bất kỳ tính năng khác) mà với database SQL/client như PostgreSQL hoặc MySQL thì bạn sẽ cần thêm một số bước bổ sung để thiết lập và chạy.
Để có thể tập trung vào phát triển ứng dụng với Ruby on Rails mà không phải lo lắng về cơ sở hạ tầng và quản lý hệ thống bạn có thể tham khảo dịch vụ VPS của Vietnix. Thuê máy ảo tốc độ cao của Vietnix để phát triển ứng dụng với Ruby on Rails mang lại sự linh hoạt về tài nguyên, quản lý độc lập, bảo mật cao, hiệu suất tốt và nhận được sự hỗ trợ kỹ thuật chuyên nghiệp.
Hiện tại Vietnix đang cung cấp các gói VPS như sau: VPS NVMe, VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp và VPS GPU.
Nhanh tay liên hệ Vietnix để được tư vấn gói VPS tốc độ cao phù hợp với nhu cầu ngay hôm nay.
Bước 1 – Cài đặt MySQL
CentOS sử dụng MariaDB như một phiên bản thay thế cho MySQL trên Ubuntu hay các OS khác.
Cài đặt MySQL và thư viện phát triển bằng cách nhập:
sudo yum install mariadb-server mariadb-devel
Sau khi hoàn tất cài đặt, khởi động MySQL bằng lệnh dưới đây:
sudo systemctl start mariadb
Bây giờ, database MySQL đã hoạt động, chạy một script bảo mật đơn giản để loại bỏ một số mặc định nguy hiểm và hạn chế truy cập vào hệ thống database. Bắt đầu script tương tác bằng:
sudo mysql_secure_installation
Bạn sẽ nhận được yêu cầu mật khẩu root hiện tại. Vì MySQL chỉ vừa mới được cài đặt, việc có mật khẩu root gần như là không thể xảy ra, nên hãy cứ để trống bằng cách nhấn Enter
. Sau đó bạn sẽ nhận được thông báo đề nghị lập mật khẩu root.
Nhấn Enter
và thiết lập mật khẩu của bạn. Với những câu hỏi tiếp theo, bạn chỉ cần nhấn Enter
để chấp nhận giá trị mặc định. Việc này sẽ loại bỏ một số user mẫu và database, vô hiệu hóa đăng nhập root từ xa và load các rules mới để MySQL lập tức tuân thủ các thay đổi vừa thực hiện.
Cuối cùng, hãy cho phép MariaDB bắt đầu khởi động. Sử dụng lệnh sau để thực hiện:
sudo systemctl enable mariadb.service
Vậy là MySQL đã được cài đặt xong, tiếp theo, bạn sẽ cần phải cài đặt Gem MySQL.
Xem thêm: Cách cài đặt MySQL trên CentOS 7
Bước 2 – Cài đặt Gem MySQL
Trước khi để ứng dụng Rails có thể kết nối với server MySQL, bạn cần phải cài đặt adapter MySQL. Gem msql2
sẽ cung cấp cho bạn các chức năng này. Dùng user Rails, cài đặt mysql2
như sau:
gem install mysql2
Giờ thì ứng dụng Rails của bạn đã có thể dùng các database MySQL.
Bước 3 – Tạo một ứng dụng Rails mới
Tạo một ứng dụng Rails mới trong home directory của bạn. Sử dụng option -d mysql
để lấy MySQL làm database và thay appname
trong lệnh dưới đây thành tên ứng dụng tương ứng của bạn.
cd ~
rails new appname -d mysql
Sau đó vào directory 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 như bạn thực hiện đúng theo hướng dẫn cài đặt MySQL trong bài viết này, đồng nghĩa với bạn đã đặt mật khẩu cho user root của MySQL. Đăng nhập MySQL sẽ được dùng để tạo kiểm tra và database phát triển cho ứng dụng của bạn.
Mở file cấu hình database của ứng dụng bằng text editor. Sử dụng vi:
vi config/database.yml
Dưới phần default
, tìm dòng có chứa “password:” và thêm mật khẩu của bạn vào cuối dòng đó. Ví dụ: (thay phần được highlight bằng mật khẩu MySQL root của bạn):
password: mysql_root_password
Lưu và thoát.
Tạo database ứng dụng
Tạo database development
và test
cho ứng dụng của bạn bằng cách dùng lệnh rake sau:
rake db:create
Lệnh này sẽ tạo hai database trong server MySQL của bạn. Ví dụ nếu tên ứng dụng là “appname” thì tên của hai database sẽ là “appname_development” và “appname_test”.
Nếu bạn gặp lỗi “Access denied for user ‘root’@‘localhost’ (using password: YES)Please provide the root password for your MySQL installation” thì hãy nhấn Ctrl-C
để thoát. Sau đó truy cập lại vào phần trước đó (Cấu hình kết nối database) để kiểm tra mật khẩu ở database.yml
đã chính xác hay chưa. Nếu mật khẩu đã đúng, hãy thử tạo lại ứng dụng lần nữa.
Bước 4 – Kiểm tra cấu hình
Cách dễ nhất để kiểm tra xem ứng dụng của bạn có thể sử dụng MySQL database hay không là thử chạy trên database đó.
Chẳng hạn, hãy khởi chạy môi trường phát triển (mặc định) bằng lệnh sau:
rails server
Lệnh này sẽ khởi động ứng dụng Rails trên localhost ở cổng 3000.
Nếu ứng dụng Rails của bạn đang ở trên một server từ xa và bạn muốn truy cập từ trình duyệt web, có một cách đó là liên kết với một địa chỉ IP public của server bạn. Đầu tiên, tìm một địa IP public của server của bạn, sau đó dùng rails server
với lệnh như sau:
rails server --binding=server_public_IP
Bây giờ bạn đã có thể truy cập ứng dụng Rails của bạn bằng trình duyệt web qua một địa chỉ IP public của server trên cổng 3000:
http://server_public_IP:3000
Nếu bạn thấy “Welcome aboard” trên trang Ruby on Rails, tức là ứng dụng đã được cấu hình và kết nối với database MySQL.
Vietnix với hơn 10 năm hoạt động đã đồng hành với hơn 50.000 khách hàng cá nhân và doanh nghiệp. Đến năm 2022 Vietnix vinh dự được nhận giải Thương hiệu Việt Nam xuất sắc nhất. Đồng thời, với tỷ lệ 97% khách hàng sau khi sử dụng dịch vụ tại Vietnix đã giới thiệu đến bạn bè, đồng nghiệp cũng là một minh chứng cho chất lượng dịch vụ luôn đáp ứng được mọi nhu cầu của khách hàng.
Nhanh tay đăng ký Vietnix VPS ngay và trải nghiệm dịch vụ ổn định, tốc độ cao, hỗ trợ nhanh chóng với nhiều ưu đãi hấp dẫn nhất.
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
- Hotline: 1800 1093
- Email: sales@vietnix.com.vn
Lời kết
Đến đây bạn đã có thể sẵn sàng phát triển trên ứng dụng Ruby on Rails với database MySQL trên CentOS 7. Nếu thấy bài viết này hữu ích, đừng quên chia sẻ có nhiều người biết hơn. Chúc bạn thành công.