前提・実現したいこと
プログラミングを勉強中の初心者です。こちらに初めて書き込みさせて頂きます。
現在自作のアプリを作成中で、ログインして登録した上で日本酒を検索できるアプリを作っております。userモデルを作成して、テーブルを作成する為に、
rails g devise userを実行しました。その後、rails db:migrateを実行したところ、
ターミナル上でエラーが発生しました。下記にエラーを記述します。
発生している問題・エラーメッセージ
rails aborted! Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38) /Users/ユーザー名/projects/アプリ名/bin/rails:9:in `<top (required)>' /Users/ユーザー名/projects/アプリ名/bin/spring:15:in `<top (required)>' bin/rails:3:in `load' bin/rails:3:in `<main>' Tasks: TOP => db:migrate (See full trace by running task with --trace)
該当のソースコード
Ruby on Rails 20210225065051_devise_create_users.rb # frozen_string_literal: true class DeviseCreateUsers < ActiveRecord::Migration[6.0] def change create_table :users do |t| ## Database authenticatable t.string :email, null: false, default: "" t.string :encrypted_password, null: false, default: "" ## Recoverable t.string :reset_password_token t.datetime :reset_password_sent_at ## Rememberable t.datetime :remember_created_at ## Trackable # t.integer :sign_in_count, default: 0, null: false # t.datetime :current_sign_in_at # t.datetime :last_sign_in_at # t.string :current_sign_in_ip # t.string :last_sign_in_ip ## Confirmable # t.string :confirmation_token # t.datetime :confirmed_at # t.datetime :confirmation_sent_at # t.string :unconfirmed_email # Only if using reconfirmable ## Lockable # t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts # t.string :unlock_token # Only if unlock strategy is :email or :both # t.datetime :locked_at t.timestamps null: false end add_index :users, :email, unique: true add_index :users, :reset_password_token, unique: true # add_index :users, :confirmation_token, unique: true # add_index :users, :unlock_token, unique: true end end ------------------------------------------------------------------ ユーザー名/bin/env ruby #!/usr/bin/env ruby begin load File.expand_path('../spring', __FILE__) rescue LoadError => e raise unless e.message.include?('spring') end APP_PATH = File.expand_path('../config/application', __dir__) require_relative '../config/boot' require 'rails/commands' ------------------------------------------------------------------- ユーザー名/bin/spring #!/usr/bin/env ruby # This file loads Spring without using Bundler, in order to be fast. # It gets overwritten when you run the `spring binstub` command. unless defined?(Spring) require 'rubygems' require 'bundler' lockfile = Bundler::LockfileParser.new(Bundler.default_lockfile.read) spring = lockfile.specs.detect { |spec| spec.name == 'spring' } if spring Gem.use_paths Gem.dir, Bundler.bundle_path.to_s, *Gem.path gem 'spring', spring.version require 'spring/binstub' end end
試したこと
①
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)が出ていた為、mysql.server startを試しました。しかし、Starting MySQL
... ERROR! The server quit without updating PID file (/usr/local/var/mysql/ユーザー名noAir.pid).と表示されてしまいました。
②
ウェブサイトで調べてmysql.server restartを実行してみました。しかし、
ERROR! MySQL server PID file could not be found!
Starting MySQL
... ERROR! The server quit without updating PID file (/usr/local/var/mysql/ユーザー名noAir.pid).
ユーザー名@ユーザー名noAir アプリ名 % touch /usr/local/var/mysql/アプリ名.local.pid
ユーザー名@ユーザー名noAir アプリ名 % rails db:migrate
rails aborted!と表示されました。
③
pidファイルがないと表示があった為、pidファイルが存在するか確認しました。
ターミナル上にcd /usr/local/var/mysqlを入力し、lsを入力して確認したところ、
「アプリ名.local.pid」の存在を確認しました。
④
mysql --versionのコマンドを入力し、バージョンを確認しました。
mysql Ver 14.14 Distrib 5.6.50, for osx10.15 (x86_64) using EditLine wrapperと確認しました。私の知る限り、更新されていないと思います。
また、Sequel Proの接続ボタンをクリックすると、MySQL の応答: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)
と表示され、接続できない状態です。
補足情報(FW/ツールのバージョンなど)
MacBookAirで、カタリナを使用しております。
現在勉強を初めて約2ヶ月が経過するのですが、この様な状態を初めてみました。
調べてみましたが、解決できませんでした。どなたかお知恵を貸して頂けませんでしょうか。
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー