- 投稿日:2021-03-05T23:16:05+09:00
久しぶりにLaravel触ろうとしてすっかり忘れてた [Mac]
久しぶりにLaravel触ろうとしてすっかり忘れてたので入力コマンドを一覧にしてみた
※諸事情によりLaravel6系でやります。
Laravelのサポートについてはこちらの方が詳しく説明されています。・構築環境
os: mac
エディタ: VSCode
シェル: bash目次
- composerが入っているかの確認
- composerでlaravelインストール
- バージョンを指定してプロジェクトを作成
- laravelの起動を確認
- MySQLの設定
- SQLiteの場合
- laravel日本語化
composerが入っているかの確認
composercomposer -v
開発環境の構築が必要な場合
Homebrewインストール
Homebrew~composer# Homebrewインストール /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # composerインストールと確認 brew install composer composer
composerでlaravelインストール
composer-laravelcomposer global require "laravel/installer"
バージョンを指定してプロジェクトを作成
composer-laravelcomposer create-project laravel/laravel "プロジェクト名" 6.* --prefer-dist
laravelの起動を確認
※ポートは任意。なくても良い
laravelcd "プロジェクト名" php artisan serve --port=8080
MySQLの設定
MySQLmysql.server start mysql -u root -p # パスを聞かれるがそのまま[enter]MySQLデータベース作成、パスワード設定create database 'データベース名'; show databases; use 'データベース名'; # MySQLのバージョンによりどちらか --- update mysql.user set password=password('パスワード') where user='root'; set password for 'root'@'localhost' = 'パスワード'; --- flush privileges; exit;MySQL再起動mysql.server stop mysql.server start
.envファイル変更
.env修正DB_CONNECTION=mysql DB_HOST=localhost //修正 DB_PORT=3306 DB_DATABASE='データベース名' //修正 DB_USERNAME=root DB_PASSWORD='パスワード' //修正*マイグレーション時にエラーが出る場合
エラー内容Illuminate\Database\QueryException : SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client (SQL: select * from information_schema.tables where table_schema = 'データベース名' and table_name = migrations and table_type = 'BASE TABLE')
データベース接続エラー(権限なし)
MySQL8系の場合、パスワード検証プラグインが「caching_sha2_password」で、PHPのデータベース接続用のPDOドライバが未対応みたいなので「mysql_native_password」に変更
参考1 データベースユーザ作成
念の為、制作用ユーザを作るところから
ユーザを作成しユーザ権限を与える# ユーザー作成 mysql> CREATE USER 'ユーザ名'@'localhost' IDENTIFIED BY 'root’; # ユーザー権限付与 mysql> GRANT ALL PRIVILEGES ON <データベース名>.* TO 'ユーザ名'@'localhost';2 権限の確認
ユーザを作成しユーザ権限を与えるmysql> show grants for 'ユーザ名'@'localhost'; +-------------------------------------------------------------+ | Grants for `ユーザ名`@localhost | +-------------------------------------------------------------+ | | GRANT ALL PRIVILEGES ON `<データベース名>`.* TO `ユーザ名`@`localhost` | +-------------------------------------------------------------+3 パスワードの検証プラグインの確認
パスワード検証プラグイン表示mysql> select user, host, plugin from mysql.user; +------------------+-----------+-----------------------+ | user | host | plugin | +------------------+-----------+-----------------------+ | `ユーザ名` | localhost | caching_sha2_password | +------------------+-----------+-----------------------+4 パスワードの検証プラグインを変更
パスワード検証プラグイン変更mysql> ALTER USER 'ユーザ名'@'localhost' IDENTIFIED WITH mysql_native_password BY 'パスワード';5 ユーザパスワードの検証プラグインの変更結果を確認
パスワード検証プラグイン表示mysql> select user, host, plugin from mysql.user; +------------------+-----------+-----------------------+ | user | host | plugin | +------------------+-----------+-----------------------+ | `ユーザ名` | localhost | mysql_native_password | +------------------+-----------+-----------------------+6 権限の反映
権限の反映mysql> flush privileges;7 .envファイル変更
.env修正DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE='データベース名' //修正 DB_USERNAME='ユーザ名' //修正 DB_PASSWORD='パスワード' //修正完了
SQLiteの場合
.env修正DB_CONNECTION=sqlite //変更 // DB_DATABASE='データベース名' //コメントアウトdatabaseディレクトリにファイル作成cd "プロジェクト名"/database touch database/database.sqlite
laravel日本語化
config/app.phpの修正
app.phpの修正'timezone' => 'Asia/Tokyo',// タイムゾーン 'locale' => 'ja', // 第一言語を日本語(ローカライゼーション) 'fallback_locale' => 'en', // 該当言語が見つからない場合の言語 'faker_locale' => 'ja_JP',ここまでで、laravel初期設定は完了です。
参考
https://qiita.com/park-jh/items/78efe8c3c93cf533aafa
https://qiita.com/S-Masakatsu/items/b231a8a02737aff6a808
- 投稿日:2021-03-05T21:10:16+09:00
【MySQL】NULLとDEFAULTの設定
- 投稿日:2021-03-05T17:26:19+09:00
MySQLがローカルで起動できない
現象
ターミナルからMySQLのサーバーが起動できない。
エラーコード
$mysql.server start ... dyld: Library not loaded: /usr/local/opt/openssl@1.1/lib/libssl.1.1.dylib Referenced from: /usr/local/Cellar/mysql/8.0.23_1/bin/my_print_defaults Reason: image not found ... ERROR! The server quit without updating PID file (/usr/local/var/mysql/{パソコン名}.local.pid).エラーの原因はいくつかに分かれているので、それぞれ対応します。
手順1:OpenSSLが悪さをしている。
手順2:{パソコン名}.local.pid
ファイルが存在していない。対応した方法
手順1:OpenSSLが悪さをしている
HomebrewでOpenSSLを再インストールしてみました。
$ brew reinstall openssl Error: /usr/local/opt/openssl@1.1 is not a valid kegなぜかエラーで弾かれます。
is not a valid keg
=インストール先のパスが有効でないと言われているので、brew上のopensslを確認してみます。$ brew list openssl Error: No such keg: /usr/local/Cellar/openssl@1.1リストに出てこないので、そもそもbrew経由でインストールされたフォルダではないようです。
そのため、ターミナルで/usr/local/opt/に移動してから、openssl@1.1ディレクトリを削除します。
削除後、再度インストールしてみました。$ brew install openssl ... For compilers to find openssl@1.1 you may need to set: export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib" export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include" ==> Analytics install: 866,703 (30 days), 2,419,116 (90 days), 8,609,687 (365 days) install-on-request: 131,320 (30 days), 381,540 (90 days), 1,255,364 (365 days) build-error: 0 (30 days)無事OpenSSLがインストールできました。
次にMacOS上でOpenSSLが機能しているか確認してみます。$ openssl version LibreSSL *.*.*MacOS上のSSLにopenSSLではなくLibreSSLが使われているようです、先ほどインストールしたopenSSLに変更するため、bash_profileでSSLのパスを書き換えます。
$ echo 'export PATH="/usr/local/opt/openssl/bin:$PATH' >> ~/.bash_profile $ source ~/.bash_profileこれでopenSSLの対応は完了しました。
手順2:
{パソコン名}.local.pid
ファイルが存在していない該当するpidファイルが存在しているか確認します。
$ cd /usr/local/var/mysql aaa bbb ccc ddd存在していない場合は自分で作ってしまいます。
$ touch /usr/local/var/mysql/{パソコン名}.local.pid実行して確認
最後に実行して確認してみます。
$ mysql.server start Starting MySQL SUCCESS!これでようやくMySQLが実行できるようになりました!
- 投稿日:2021-03-05T17:20:16+09:00
Dockerによる開発環境を立ち上げるまで【Rails + Nginx + Unicorn + MySQL】
Dockerを導入し、コンテナを立ち上げVSCodeで開発を行うところまで環境構築ができました。
備忘として導入した流れを簡単にまとめておきたいと思います。インストール
Docker公式サイトからDocker Desctopをダウンロード。
以下の記事を参考にしてインストールしました。フォルダ構成
Dockerfileは記事によって配置場所が異なりますが、個人的にはこの構成が一番綺麗にまとまってると思いました。
Dockerfileやdocker-compose.yml、それにNginxやUnicornの設定ファイルは自動生成されないので自分で作ります。app ├ config │ ├ database.yml │ └ unicorn_development.conf.rb ├ docker │ ├ web │ │ └ Dockerfile │ └ nginx │ ├ Dockerfile │ └ revorite.conf └ docker-compose.ymlDocker関連ファイルの記述
以下記事を参考にさせていただきました。
参考記事:DockerでNginx+unicorn+rails+Mysqlの開発環境を作ってみたdocker/web/Dockerfile
FROM ruby:2.7.1 # dockerizeパッケージダウンロード用環境変数 ENV DOCKERIZE_VERSION v0.6.1 # パッケージの取得 RUN apt-get update && \ apt-get install -y --no-install-recommends\ nodejs \ vim \ mariadb-client \ build-essential \ wget \ && wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY Gemfile /app/Gemfile COPY Gemfile.lock /app/Gemfile.lock RUN echo "alias cp='cp -i'" >> /root/.bashrc RUN echo "alias mv='mv -i'" >> /root/.bashrc RUN echo "alias rm='rm -i'" >> /root/.bashrc RUN echo "alias la='ls -al'" >> /root/.bashrc RUN echo "alias ll='ls -l'" >> /root/.bashrc RUN gem install bundler RUN bundle install COPY . /appdocker/nginx/Dockerfile
FROM nginx:stable # デフォルトのNginxの設定ファイルを削除し、作成しておいた設定ファイルをコピー RUN rm -f /etc/nginx/conf.d/* COPY ./docker/nginx/revorite.conf /etc/nginx/conf.d/revorite.conf RUN echo "alias cp='cp -i'" >> /root/.bashrc RUN echo "alias mv='mv -i'" >> /root/.bashrc RUN echo "alias rm='rm -i'" >> /root/.bashrc RUN echo "alias la='ls -al'" >> /root/.bashrc RUN echo "alias ll='ls -l'" >> /root/.bashrc # -c以降の設定ファイルを指定して起動 daemon offでフォアグラウンドで起動 CMD /usr/sbin/nginx -g 'daemon off;' -c /etc/nginx/nginx.confdocker/nginx/revorite.conf (Nginx設定ファイル)
docker/nginx/revorite.conf# log directory error_log /var/log/nginx.error.log; access_log /var/log/nginx.access.log; # max body size client_max_body_size 2G; upstream unicorn { # for UNIX domain socket setups server unix:/app/tmp/sockets/.unicorn.sock fail_timeout=0; } server { listen 80; server_name localhost; # nginx so increasing this is generally safe... keepalive_timeout 5; # path for static files root /app/public; location @unicorn { # HTTP headers proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://unicorn; } location / { try_files $uri/index.html $uri.html $uri @unicorn; include /etc/nginx/mime.types; } location ~ ^/assets/(.*) { alias /app/public/assets/$1; } # Rails error pages error_page 500 502 503 504 /500.html; location = /500.html { root /app/public; } }docker-compose.yml
docker-compose.ymlversion: '3' services: web: build: context: . dockerfile: ./docker/web/Dockerfile # dockerizeを使い、DBの起動を待ってからUnicornを起動する。 command: dockerize -wait tcp://db:3306 -timeout 20s bundle exec unicorn -p 3000 -c /app/config/unicorn_development.conf.rb environment: TZ: Asia/Tokyo tty: true # binding.pryを利用可能にするための2行 stdin_open: true # binding.pryを利用可能にするための2行 depends_on: - db ports: - "3000:3000" volumes: - .:/app:cached # ソケット通信用ファイルをnginxコンテナと共有 - tmp-data:/app/tmp/sockets # アセットファイルをnginxと共有 - public-data:/app/public db: image: mysql:5.7 command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci ports: - "4306:3306" environment: MYSQL_DATABASE: revorite_development MYSQL_ROOT_PASSWORD: password # dbのデータを永続化しておく volumes: - mysql-data:/var/lib/mysql nginx: build: context: . dockerfile: ./docker/nginx/Dockerfile ports: - 80:80 restart: always #明示的にstopさせるまでリスタートする。(失敗するたび遅延あり) volumes: - tmp-data:/app/tmp/sockets - public-data:/app/public depends_on: - web volumes: public-data: tmp-data: mysql-data:config/database.yml
database.ymldefault: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> development: <<: *default host: db username: root password: password database: revorite_developmentconfig/unicorn_development.conf.rb
config/unicorn_development.conf.rb# set lets $worker = 2 $timeout = 30 $app_dir = "/app" $listen = File.expand_path 'tmp/sockets/.unicorn.sock', $app_dir $pid = File.expand_path 'tmp/pids/unicorn.pid', $app_dir $std_log = File.expand_path 'log/unicorn.log', $app_dir # set config worker_processes $worker working_directory $app_dir stderr_path $std_log stdout_path $std_log timeout $timeout listen $listen pid $pid # loading booster preload_app true # before starting processes before_fork do |server, worker| defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect! old_pid = "#{server.config[:pid]}.oldbin" if old_pid != server.pid begin Process.kill "QUIT", File.read(old_pid).to_i rescue Errno::ENOENT, Errno::ESRCH end end end # after finishing processes after_fork do |server, worker| defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection endコンテナ作成・起動
$ docker-compose build # イメージの作成 $ docker-compose up -d # コンテナの作成・起動詰まった点
他の記事ではあまり語られておらず、自分が詰まった点をいくつか。
Unicornの起動で失敗する
関連ファイルを作り終え、いざ
docker-compose build
とdocker-compose up -d
を叩く。
そしてdocker ps
を叩くと・・・CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 11e605b70c51 revorite_nginx "/docker-entrypoint.…" 21 minutes ago Up 21 minutes 0.0.0.0:80->80/tcp revorite_nginx_1 313d53cbbc27 mysql:5.7 "docker-entrypoint.s…" 21 minutes ago Up 21 minutes 33060/tcp, 0.0.0.0:4306->3306/tcp revorite_db_1あれ?アプリサーバは???
で、docker-compose logs
でログを見てみるとweb_1 | 2021/03/04 11:01:27 Command exited with error: exit status 1
exit status 1
とは一体・・・
exitしたということは一度起動して即落ちた、と読めるので、落ちたコンテナに入ってログも見てみたのですがそれらしいログは出ていない。
(落ちたコンテナに入る方法はこちらを参考にしました)最終的に、
database.yml
にhost: db
の記述が漏れているためだということが判明。一文追加し、無事起動しました。
こんな単純なミスなのですが一日使ってしまったので、Dockerfileとdocker-composeだけを書いて満足しないように注意です。コンテナ内でGitが使えない
GitをインストールしSSH認証もできるようにしたのですが、どうしてもgit pushだけが弾かれてしまうんですよね。(commitまではできる)
git@github.com: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.仕方ないのでgit関連の操作はホスト側で実行しています(ホスト側でコンテナ内のソースコードに対しマウントしている)。git操作もコンテナ内で完結できたらベストだったのですが。
コンテナ内で開発を行う(VSCode: Remote Development)
コンテナ内で開発を行うには、VSCodeでコンテナ内のソースを参照・開発できるRemote Developmentという拡張機能を使います。
参考記事:VS Code Remote Development で Docker 開発環境を利用する前述の起動コマンドで起動できていれば、参考記事の通りに起動するだけで特に問題は起きないはず。
その他補足
docker関連のコマンドは長いので、~/.bashrcにエイリアスを設定すると便利。
またエラーが起きる度にコンテナやイメージの削除コマンドを打つのが大変のため、こちらも設定しておくと快適です。# 例 alias dco='docker-compose' alias docker-purge='docker stop $(docker ps -q) && docker rm $(docker ps -a -q) && docker rmi $(docker images -q -a) -f'改善点や誤りなどありましたらコメントで指摘いただけると幸いです。
- 投稿日:2021-03-05T16:30:15+09:00
RubyでMySQLに接続し、大量のINSERT文を作成する
大量のINSER文を発行する必要があったので、スクリプトで書いてみた。
RubyとMySQLはインストールしてある前提ディレクトリとファイルの作成
terminal$ mkdir ruby_scripts && cd $_ $ touch test.rb $ chmod 755 test.rbtest.rbの中身
test.rb#!/usr/bin/ruby require 'mysql2' connection = Mysql2::Client.new(host: "localhost", username: "root", password: 'pass', :encoding => 'utf8', database: 'database_name') // 自分の環境に合わせる selectSql = "SELECT id FROM table WHERE flag = 1;" //こんな単純なSELECT文ならそもそもスクリプトを書く必要はないと思うが... res = connection.query(selectSql) res.each do |r| code = r["id"] //実行結果のINSERT文内の変数rにハッシュがそのまま入ってしまうので、値だけを取り出して新しい変数codeに代入 puts "INSERT INTO table2 (id, code) VALUES (2, '#{code}');" endGemfileの作成
$ bundle initGemfileの一番下に記述
gem "mysql2"bundle install
$ bundle install実行
bundle exec ruby test.rb > hoge.sql上を実行して作られる
hoge.sql
をsourceコマンドで実行すればデータをINSERTできます。
- 投稿日:2021-03-05T09:05:06+09:00
【Docker】Ruby2.6.5とRails6.0.0とmysql DockerComposeで環境構築
はじめに
Ruby2.6.5とRails6.0.0とmysqlでDockerComposeで環境構築をしたので記録として記事を書きます。
もし誰かのお役に立てたら幸いです。Docker環境でアプリケーション開発する手順
1、RailsのDockerfileを作成してDockerをbuild
2、DockerCompose.ymlを作成しコンテナを作る
3、Rails のセットアップ
4、データベースを作成する開発環境
Docker version 20.10.0
docker-compose version 1.27.41、RailsのDockerfile作成
新しいデレクトリを作成します。
今回はデレクトリ名をexamとしてます。ターミナルmkdir [新規デレクトリ名] cd [新規デレクトリ名]Dockerfile
新規で作ったデレクトリに「Dockerfile」をいう名前でDockerファイルを作成します。
VSコードをお使いの方はcode Dockerfile
でターミナルから直接ファイルの作成&移動をしてくれます。
もちろんディレクトリを呼び込んでファイルを作成しても大丈夫です。exam/DockerfileFROM ruby:2.6.5 RUN apt-get update && apt-get install -y \ build-essential \ libpq-dev \ nodejs\ yarn \ vim WORKDIR /新規デレクトリ名 COPY Gemfile Gemfile.lock /新規デレクトリ名/ RUN bundle installGemファイルを作成する
ターミナルtouch Gemfile Gemfile.lockGemfileにファイルを持ってくるソースとrailsのバージョンを記述します。
Gemfilesource 'https://rubygems.org' gem 'rails', '~>6'Dockerを建てます。
ターミナルdocker build . . . . Installing rails 6.1.2.1 Bundle complete! 1 Gemfile dependency, 42 gems now installed. Use `bundle info [gemname]` to see where a bundled gem is installed. Removing intermediate container 06448279a57c ---> c21a3ec7e3a4 Successfully built c21a3ec7e3a4 #イメージが出来てるか調べる事も出来ます。 docker images #もし使っていないイメージがあれば下記のコマンドで削除できます。 docker rmi [IMAGE ID]2、DockerCompose.ymlを作成しコンテナを作る
dockerc-compose.ymlファイルを作成し記述する
ターミナルcode docker-compose.ymlこれで新しい
docker-compose.yml
が作成されます。docker-compose.ymlversion: '3' services: web: build: . ports: - 3000:3000 volumes: - '.:/[作成したディレクトリ名]' tty: true stdin_open: true
dockerc-ompose.yml
の確認をして実行します#確認します cat docker-compose.yml #実行します docker-compose up -d #コンテナが動いてる事を確認します。 docker ps docker-compose ps #コンテナの中に入ります。 docker-compose exec web bash3、Rails のセットアップ
Railsの環境でコンテナができのでその中で
rails new
をしてセットアップして行きます。#新しいrailsを作ります rails new . --force --database=mysql --skip-bundle #一度コンテナから抜けます exit #今のコンテナとイメージを削除します docker-compose down #Downになってるか確認します docker ps #新しいイメージでコンテナを建てます docker-compose up --build -d #確認します docker-compose ps #コンテナに入ります docker-compose exec web bash #Railsを起動します rails s -b 0.0.0.0 #現段階ではエラーが出ます現段階ではデータベースの記述を Dockerfileに記述していないので、mysql2のエラーが出ると思います。
下記の対応を試して下さい。【Docker】エラー Could not find gem 'mysql2 (~> 0.5)' in any of the gem sources listed in your Gemfile
https://qiita.com/AKI3/items/8009b5218be0ad67b6b7エラーが解決したら
rails s -b 0.0.0.0
でサーバーが立ち上がります。
実際にlocalhost:3000
でアクセスします。
しかしこのままではデータベースが無いのでエラー画面が表示されます。
4、データベースを作成する。
ローカルであれば
rails db:create
をするとデータベースを作れるのですが、コンテナ内では現状の設定では作れません。
Dockerではサービス(環境)ごとにコンテナを作る事が推奨されております。
今回であればRubyとmysqlのコンテナを別々に作り、それぞれのコンテナどうしを接続する必要があります。
その為、detabase.ymlの設定ファイルを編集して正しい指定をし、docker-compose.ymlの設定ファイルの編集します。先ずdetabase.ymlを編集します。
config/detabase.ymldefault: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> host: db development: <<: *default database: 新規デレクトリ名_development username: root password: 省略次にdocker-compose.ymlを編集します。
docker-compose.ymlversion: '3' volumes: db-data: services: web: build: . ports: - 3000:3000 volumes: - '.:/新規デレクトリ名' environment: - 'MYSQL_ROOT_PASSWORD=1' tty: true stdin_open: true depends_on: - db links: - db db: image: mysql:8 volumes: - 'db-data:/var/lib/mysql' # このenvironmentはテスト環境でのみ使用可能 environment: MYSQL_ALLOW_EMPTY_PASSWORD: 1 # command: bundle exec rails s -p 3000 -b '0.0.0.0' #こちらはお好みでdocker-compose.ymlを編集したので新しくコンテナを作ります。
今回はweb(Raisl)とdb(mysql)2つのコンテナを作る事になります。#再びコンテナを建てます docker-compose up -d #upになってるか確認します docker-compose ps #コンテナに入ります docker-compose exec web bash #データベースを作成します rails db:create #現段階ではエラーが出ますRails側のコンテナ内で作業を進めていきます。
先程作ったRails側のコンテナとmysql側のコンテナがしっかり繋がっていればrails db:create
のコマンドは通りますが、現段階では下記のエラーが発生します。Mysql2::Error::ConnectionError: Plugin caching_sha2_password could not be loaded: /usr/lib/x86_64-linux-gnu/mariadb19/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directoryこれはwebコンテナが mysql 8.0 の
caching_sha2_password
が認証方式に対応していないためだそうです。詳しくは、こちらの記事で解決できます。
https://blog.toshimaru.net/rails-on-docker-compose/コマンドだけこちらに記載します。
ターミナル#データベース側のコンテナに入る docker-compose exec db bash #mysqlを操作する mysql -u root #ユーザー一覧とその認証方式が閲覧 select User,Host,plugin from mysql.user; #root@% のユーザー設定を変更 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY ''; #再度ユーザー一覧とその認証方式が閲覧 select User,Host,plugin from mysql.user;エラーが解決できたら最後サーバーを立ち上げます。
ターミナルrails s -b 0.0.0.0 => Booting Puma => Rails 6.1.2.1 application starting in development => Run `bin/rails server --help` for more startup options Puma starting in single mode... * Puma version: 5.2.1 (ruby 2.6.5-p114) ("Fettisdagsbulle") * Min threads: 5 * Max threads: 5 * Environment: development * PID: 29 * Listening on http://0.0.0.0:3000 Use Ctrl-C to stop . . . 省略出来ました!
localhost3000
にアクセスすると-Yay! You’re on Rails!-の画面が表示されます。
最後に
手探りの対処療法でサーバー起動まで達成しましので、これからも継続学習が必要です。
なんとか環境構築まで至りましたが、Dockerについて完全に理解できておりません、万が一情報が間違っている場合ご指摘していただけると幸いです。エンジニア初学者ですが、同じ様に悩んでる方々の助けになればと思い記事を投稿しております。
万が一情報が間違っている場合ご指摘していただけると幸いです。参考
今回Udemyの教材とやっすんのエンジニア大学を主に参考にさせていただきました。
https://www.udemy.com/course/aidocker/
https://github.com/yassun-youtube/docker-compose-sample/blob/master/docker-compose.yml