Ich habe es geschafft, es unter Bezugnahme auf verschiedene Artikel vorzustellen, also Ich werde es als Memorandum belassen. Wenn es etwas Seltsames gibt oder etwas, das so gemacht werden sollte Ich würde es begrüßen, wenn Sie mich unterrichten könnten.
ruby 2.5.7 Rails 5.2.4.3 Vagrant 2.2.4 VirtualBox 6.0.14 OS: macOS Catalina centos 7
1 Erstellen Sie MySQL auf Vagrant 2 Ändern Sie die vorhandene App von Sqlite in MySQL 3 Stellen Sie die neue App auf MySQL ein
Überprüfen Sie zunächst das aktuelle CentOS. Überprüfen Sie zum Überprüfen die Vagrant-Datei in der Vagrant-Datei.
Vagrantfile
Vagrant.configure("2") do |config|
GUEST_RUBY_VERSION = '2.5.7'
config.vm.box = "centos/7"
...
Dieses Mal gehen wir davon aus, dass CentOS 7 ist. CentOS ist ein typisches Linux-basiertes Betriebssystem zum Erstellen einer virtuellen Umgebung.
Aufbau einer Vagrant + Rails6 + MySQL-Entwicklungsumgebung Erstellen Sie zunächst MySQL auf Vagrant, indem Sie auf diesen Artikel verweisen.
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
Wenn die Version angezeigt wird, ist es OK.
Stellen Sie ein, dass es automatisch startet, wenn der Vagabund startet. Die zweite Zeile ist in Ordnung, wenn mysqld.service aktiviert ist.
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 Dieser Artikel war also leicht zu verstehen Nach dem Ausführen von $ mysql_secure_installation Lassen Sie uns die anfängliche Einrichtung von MySQL in diesem Artikel durchführen! Bitte einstellen von.
#Legen Sie das Passwort für den Root-Benutzer fest(Legen Sie diesmal das Root-Passwort fest)
$ /usr/bin/mysqladmin -u root password 'root'
#Sicherheitsbezogene Grundeinstellungen(Wenn Sie hier nach einem Passwort gefragt werden'root'Zu)
$ mysql_secure_installation
Führen Sie nach dem Einstellen Folgendes aus und geben Sie das Passwort ein: mysql> Es ist in Ordnung, wenn diese Anzeige angezeigt wird.
Terminal
$ mysql -u root -p
Ich war süchtig danach, mysql2 mit Rails zu installieren [Anfänger] So ändern Sie die Datenbank einer vorhandenen Anwendung in MySQL Wir werden es unter Bezugnahme auf den obigen Artikel einführen.
Erstellen Sie eine Testtabelle mit Gerüst als Test.
Terminal
$ rails new sam
$ cd sam
$ rails g scaffold post name:string
Ich denke, dass config / database.yml so geschrieben ist. Standardmäßig wird die sqlite3-Datenbank verwendet.
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
Wenn Sie eine Fehlermeldung erhalten, gehen Sie wie folgt vor oder Gemfile gem'mysql2 'Version gem 'mysql2', '~> 0.4.4' Versuchen Sie, zu zu wechseln.
Terminal
$ sudo yum install -y mysql-devel
congig/database.yml
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: root
password:Geben Sie das Passwort ein, wenn Sie die Grundeinstellungen vorgenommen haben
host: localhost
development:
<<: *default
database: sam_development #sam ist der Name der App.
# 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 ist der Name der App.
production:
<<: *default
database: sample_production
username: sample_app
password: <%= ENV['SAMPLE_DATABASE_PASSWORD'] %>
Erstellen Sie unten eine Datenbank.
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)
Wenn es so aussieht, ist die Einstellung abgeschlossen.
Dies ist einfacher als das Ändern einer vorhandenen App.
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:Geben Sie das Passwort ein, wenn Sie die Grundeinstellungen vorgenommen haben
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
Wenn der Fehler "Zugriff verweigert" angezeigt wird, Bitte melden Sie sich einmal wie unten gezeigt an und führen Sie die obigen Schritte erneut aus.
Terminal
$ mysql -u root -p
exit
Es kann mit Zugriff gespielt werden, der durch die anfängliche Einstellung verweigert wurde. Dies kann aus Sicherheitsgründen unvermeidbar sein. Ich würde mich freuen, wenn Sie mir beibringen könnten, ob es falsche Beschreibungen oder Methoden gibt.
Auf Twitter werden auch Technologien und Ideen hochgeladen, die nicht auf Qiita hochgeladen wurden Ich wäre Ihnen dankbar, wenn Sie mir folgen könnten. Klicken Sie hier für Details https://twitter.com/japwork