Create a new Ruby on Rails application using MySQL instead of SQLite

前端 未结 19 1240
难免孤独
难免孤独 2020-12-04 05:46

I want to create my Rails application with MySQL, because I like it so much. How can I do that in the latest version of Rails instead of the default SQLite?

相关标签:
19条回答
  • 2020-12-04 06:16

    database.yml

    # 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 } %>
      host: localhost
      database: database_name
      username: username
      password: secret
    
    development:
      <<: *default
    
    # 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
    
    # 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
    

    Gemfile:

    # Use mysql as the database for Active Record
    gem 'mysql2', '>= 0.4.4', '< 0.6.0'
    
    0 讨论(0)
  • 2020-12-04 06:17

    First make sure that mysql gem is installed, if not? than type following command in your console

    gem install mysql2
    

    Than create new rails app and set mysql database as default database by typing following command in your console

    rails new app-name -d mysql
    
    0 讨论(0)
  • 2020-12-04 06:20
    rails new <project_name> -d mysql
    

    OR

    rails new projectname
    

    Changes in config/database.yml

    development:
      adapter: mysql2
      database: db_name_name
      username: root
      password:
      host: localhost
      socket: /tmp/mysql.sock
    
    0 讨论(0)
  • 2020-12-04 06:20

    You should use the switch -D instead of -d because it will generate two apps and mysql with no documentation folders.

      rails -D mysql project_name  (less than version 3)
    
      rails new project_name -D mysql (version 3 and up)
    

    Alternatively you just use the --database option.

    0 讨论(0)
  • 2020-12-04 06:21

    you first should make sure that MySQL driver is on your system if not run this on your terminal if you are using Ubuntu or any Debian distro

    sudo apt-get install mysql-client libmysqlclient-dev
    

    and add this to your Gemfile

    gem 'mysql2', '~> 0.3.16'
    

    then run in your root directory of the project

    bundle install
    

    after that you can add the mysql config to config/database.yml as the previous answers

    0 讨论(0)
  • 2020-12-04 06:22

    If you already have a rails project, change the adapter in the config/database.yml file to mysql and make sure you specify a valid username and password, and optionally, a socket:

    development:
      adapter: mysql2
      database: db_name_dev
      username: koploper
      password:
      host: localhost
      socket: /tmp/mysql.sock
    

    Next, make sure you edit your Gemfile to include the mysql2 or activerecord-jdbcmysql-adapter (if using jruby).

    0 讨论(0)
提交回复
热议问题