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.
ruby 2.5.7 Rails 5.2.4.3 Vagrant 2.2.4 VirtualBox 6.0.14 OS: macOS Catalina centos 7
1 Construisez MySQL sur vagrant 2 Changer l'application existante de Sqlite à MySQL 3 Définissez la nouvelle application sur MySQL
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.
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.
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
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
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é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
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
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é.
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
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