[Ruby on Rails] De la construction de MySQL au changement de base de données

introduction

J'ai réussi à l'introduire en me référant à divers articles, donc Je vais le laisser comme un mémorandum. S'il y a quelque chose d'étrange ou quelque chose qui devrait être fait comme ça Je vous serais reconnaissant si vous pouviez m'apprendre.

Environnement de développement

ruby 2.5.7 Rails 5.2.4.3 Vagrant 2.2.4 VirtualBox 6.0.14 OS: macOS Catalina centos 7

couler

1 Construisez MySQL sur vagrant 2 Changer l'application existante de Sqlite à MySQL 3 Définissez la nouvelle application sur MySQL

Construisez MySQL sur vagrant

Confirmation CentOS

Commencez par vérifier le CentOS actuel. Pour vérifier, vérifiez le Vagrantfile dans le fichier vagrant.

Vagrantfile


Vagrant.configure("2") do |config|
    GUEST_RUBY_VERSION = '2.5.7'
    config.vm.box = "centos/7"

...

Cette fois, nous partirons de l'hypothèse que CentOS vaut 7. CentOS est un système d'exploitation Linux typique utilisé pour créer un environnement virtuel.

Installez MySQL (pour CentOS7)

Construction de l'environnement de développement Vagrant + Rails6 + MySQL Tout d'abord, construisez MySQL sur vagrant en vous référant à cet article.

Terminal


$ vagrant ssh
$ sudo yum -y install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
$ sudo yum -y install mysql-community-server
$ mysqld --version

Si la version est affichée, c'est OK.

Après avoir configuré le démarrage automatique, démarrez MySQL

Réglez pour démarrer automatiquement lorsque vagrant commence. La deuxième ligne est OK si mysqld.service est activé.

Terminal


$ sudo systemctl enable mysqld.service
$ sudo systemctl list-unit-files -t service | grep mysqld
$ sudo systemctl start mysqld.service

Initialisation MySQL (facultatif)

https://style.potepan.com/articles/19020.html Cet article était facile à comprendre, donc Après avoir exécuté $ mysql_secure_installation Faisons la configuration initiale de MySQL dans cet article! Veuillez définir à partir de.

#Définir le mot de passe pour l'utilisateur root(Définissez le mot de passe root cette fois)
$ /usr/bin/mysqladmin -u root password 'root'

#Paramètres initiaux liés à la sécurité(Lorsqu'on vous demande un mot de passe ici'root'À)
$ mysql_secure_installation

Après le réglage, exécutez ce qui suit et entrez le mot de passe mysql> C'est OK si cet affichage est affiché.

Terminal


$ mysql -u root -p

Changer l'application existante de Sqlite à MySQL

J'étais accro à l'installation de mysql2 avec Rails [Débutant] Comment changer la base de données d'une application existante en MySQL Nous l'introduirons en référence à l'article ci-dessus.

Créer une application de rails, vérifier la base de données

Créez une table de poteau avec échafaudage comme essai.

Terminal


$ rails new sam
$ cd sam
$ rails g scaffold post name:string

Je pense que config / database.yml est écrit comme ça. Par défaut, la base de données sqlite3 est utilisée.

config/database.yml


default: &default
  adapter: sqlite3
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000

development:
  <<: *default
  database: db/development.sqlite3

# 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: db/test.sqlite3

production:
  <<: *default
  database: db/production.sqlite3

Introduction de gemme

Gemfile


# Use sqlite3 as the database for Active Record
gem 'sqlite3'
↓
gem 'mysql2'

Terminal


$ bundle install

Si vous obtenez une erreur, procédez comme suit ou Version Gemfile gem'mysql2 ' gem 'mysql2', '~> 0.4.4' Essayez de changer en.

Terminal


$ sudo yum install -y mysql-devel

Modifiez les paramètres de la base de données sur MySQL

congig/database.yml


default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password:Saisissez le mot de passe si vous avez effectué les réglages initiaux
  host: localhost

development:
  <<: *default
  database: sam_development #sam est le nom de l'application.

# 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: sam_test #sam est le nom de l'application.

production:
  <<: *default
  database: sample_production
  username: sample_app
  password: <%= ENV['SAMPLE_DATABASE_PASSWORD'] %>

Créez une base de données ci-dessous.

Terminal


$ bundle exec rake db:create
$ rails db:migrate

Terminal


$ mysql -u root -p
$ show tables from sam_development;
+---------------------------+
| Tables_in_sam_development |
+---------------------------+
| ar_internal_metadata      |
| posts                     |
| schema_migrations         |
+---------------------------+
3 rows in set (0.00 sec)

Si cela ressemble à ceci, le réglage est terminé.

Définir une nouvelle application sur MySQL

C'est plus facile que de changer une application existante.

Terminal


$ rails new sample -d mysql
$ cd sample
$ rails g scaffold post name:string

congig/database.yml


default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password:Saisissez le mot de passe si vous avez effectué les réglages initiaux
  socket: /var/lib/mysql/mysql.sock

development:
  <<: *default
  database: sample_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: sample_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: sample_production
  username: sample
  password: <%= ENV['SAMPLE_DATABASE_PASSWORD'] %>

Gemfile


# Use mysql as the database for Active Record
gem 'mysql2', '>= 0.4.4', '< 0.6.0'

Terminal


$ bundle exec rake db:create
$ rails db:migrate

Si vous obtenez une erreur Accès refusé, Veuillez vous connecter une fois comme indiqué ci-dessous, puis exécutez à nouveau ce qui précède.

Terminal


$ mysql -u root -p
exit

Résumé

Il peut être joué avec l'accès refusé par le réglage initial, Cela peut être inévitable pour des raisons de sécurité. J'apprécierais si vous pouviez m'apprendre s'il existe des descriptions ou des méthodes incorrectes.

De plus, sur Twitter, les technologies et les idées qui n'ont pas été téléchargées sur Qiita sont également téléchargées, donc Je vous serais reconnaissant si vous pouviez me suivre. Cliquez ici pour plus de détails https://twitter.com/japwork

Recommended Posts

[Ruby on Rails] De la construction de MySQL au changement de base de données
Passer de SQLite3 à PostgreSQL dans un nouveau projet Ruby on Rails
[Ruby on Rails] Comment changer le nom de la colonne
[Mis à jour de temps en temps] Ruby on Rails Méthode pratique
[Ruby on Rails] Remplacez l'ID d'URL par le nom de la colonne
Déployer sur Ruby on Rails Elastic beanstalk (Construction de l'environnement)
Comment utiliser Ruby on Rails
Mémo de construction de l'environnement Ruby on Rails 6.0
Changer la base de données de SQLite en MySQL
Déployer sur Ruby on Rails Elastic beanstalk (changement d'autorisation IAM)
Déployer sur Heroku [Ruby on Rails] Débutant
Préparation à l'introduction de jQuery dans Ruby on Rails
[Ruby on Rails] Comment utiliser redirect_to
Bouton [Ruby on Rails] pour revenir en haut
Muscle Ruby on Rails Jour 1 ~ Construction de l'environnement ~
[Erreur] Changer la construction de l'environnement pour utiliser oss (open source) de Ruby on Rails
Comment résoudre la construction de l'environnement local de Ruby on Rails (MAC)!
[Note personnelle] Construction de l'environnement Ruby on Rails (Windows)
[Rails MySQL] Comment réinitialiser la base de données sur heroku
Connexion DataSource de WebSphere à MySQL (changement de propriété DataSource?)
Ruby on Rails élémentaire
Principes de base de Ruby on Rails
De Java à Ruby !!
[Première construction d'environnement] J'ai essayé de créer un environnement Rails6 + MySQL8.0 + Docker sur Windows 10.
[Introduction] Créer une application Ruby on Rails
Résumé des méthodes de mise à jour de plusieurs colonnes [Ruby on Rails]
Changez la clé primaire de la base de données (MySQL) sur n'importe quelle colonne.
Pour se connecter de Spring à MySQL sur un serveur virtuel (non résolu)
[Ruby On Rails] Comment réinitialiser DB dans Heroku
[Construction de l'environnement Mac] Ruby on Rails (+ Webpacker gère les erreurs)
(Ruby on Rails6) Refléter le contenu publié à partir du formulaire
(Ruby on Rails6) Comment créer un modèle et une table
Pour ceux qui souhaitent utiliser MySQL pour la base de données dans la construction de l'environnement de Rails6 ~.
Record d'apprentissage de Ruby on rails -2020.10.03
Ingénieur Rails Environnement Construction Ruby2.7.1
Création de portfolio Ruby on Rails
Construction de l'environnement des rails Rails5.2.1 ruby2.5.1 Catalina
[Ruby on Rails] Debuck (binding.pry)
Record d'apprentissage de Ruby on rails -2020.10.05
Record d'apprentissage de Ruby on rails -2020.10.09
Record d'apprentissage Ruby on rails-2020.10.07 ②