Ruby on rails uses sqlite3 as a default database which is good for small application. If your project size is big, i.e. you need to handle large data throughout your project then MySQL database is a better option.
If your machine already has a MySQL, then there is no need to install it again. In case, if MySQL is not present in your local machine, you can install it through the following procedure:
Command for installing MySQL:
- update apt-get first in your machine
sudo apt-get update - next install mysql and it libraries
sudo apt-get install mysql-server mysql-client libmysqlclient-dev*** Note: Durring installation, your local machine may ask the password for the root user - next, you should run 2 more command below
sudo mysql_install_db
sudo mysql_secure_installation - and finally, in your gemfile
gem install mysql2
If you have MySQL already, please skip the above 4 points.
Now, open the terminal and type
> rails new app -d mysql
rails setup is created in your local machine
> cd app
open the database.yml
> nano config/database.yml
You will see the below code in your editor
# MySQL. Versions 5.1.10 and up are supported.
#
# Install the MySQL driver
# gem install mysql2
#
# Ensure the MySQL gem is defined in your Gemfile
# gem ‘mysql2’
#
# And be sure to use new-style password hashing:
# https://dev.mysql.com/doc/refman/5.7/en/password-hashing.html
#
default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch(“RAILS_MAX_THREADS”) { 5 } %>
username: PUT YOUR USERNAME
password: PUT YOUR PASSWORD
socket: /var/run/mysqld/mysqld.sockdevelopment:
<<: *default
database: activeadmin_development# Warning: The database defined as “test” will be erased and
# re-generated from your development database when you run “rake”.
# Do not set this db to the same as development or production.
test:
<<: *default
database: activeadmin_test
# As with config/secrets.yml, you never want to store sensitive information,
# like your database password, in your source code. If your source code is
# ever seen by anyone, they now have access to your database.
#
# Instead, provide the password as a unix environment variable when you boot
# the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database
# for a full rundown on how to provide these environment variables in a
# production deployment.
#
# On Heroku and other platform providers, you may have a full connection URL
# available as an environment variable. For example:
#
# DATABASE_URL=”mysql2://myuser:mypass@localhost/somedatabase”
#
# You can use this database configuration with:
#
# production:
# url: <%= ENV[‘DATABASE_URL’] %>
#
production:
<<: *default
database: activeadmin_production
username: activeadmin
password: <%= ENV[‘ACTIVEADMIN_DATABASE_PASSWORD’] %>
Change the username and password and save the database.yml file.
Run
> rake db:create
Open your phpmyadmin, you can see the database which is newly created.
Senior Software Engineer at Openweb Solutions