質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

1回答

1213閲覧

Rails でデータベースMySQLに接続する

oakwoods

総合スコア1

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2020/08/22 05:25

Railsで ローカルのmysqlサーバーに接続しようとするとsocketのエラーがでてしまう。

以前にAWS のCloud9で作成したRails アプリケーションを自分のPCにコピーしました。
ローカル環境でRailsサーバを立ち上げWebアプリ(Chrome) でlocal host3000 に接続したところ
以下のエラーが出てしまいました。

発生している問題・エラーメッセージ

RA

Mysql2::Error::ConnectionError Can't connect to local MySQL server through socket var/lib/mysql/mysql.sock' (38)

試したこと

こちらの記事を参考に、そもそもRailsのデータベースの設定がローカル環境に合っていないのではないかと思われたので、以下を試しました。

まず、MySQLのsocketの位置を次のとおり確認。

(base) USE名:tmp user$ mysqladmin variables | grep socket | socket    | /tmp/mysql.sock |

これを参考に、
config/database.yml

###変更前
socket: /var/lib/mysql/mysql.sock
###変更後
socket: /tmp/mysql.sock

としました。

それからrailsサーバを再起動してみましたが、エラーメッセージが

変更後のエラーメッセージ

Mysql2::Error::ConnectionError Can't connect to local MySQL server through socket 'tmp/mysql.sock' (2)

と、末尾の数字が(38)から(2)に変わったものの解決はできませんでした。

補足情報

MySQLサーバが立ち上がらないという記事は多数あり、その中にはtmp/myswl.sockファイルの所有者をchownコマンドで_mysqlに変えるという方法も書かれていましたが、それをやってみたところターミナルからもMySQLが起動しなくなってしまったため、現状では所有者はuserに戻しています。(実は最初の所有者が何で合ったか、もはやよくわからないのですが)
ちなみに現在の.sock ファイルの状況は以下の通りです。

(base) USER名:tmp user$ ls -l total 16 srwxrwxrwx 1 user _mysql 0 8 22 12:36 mysql.sock

初歩的な問題かと思うのですが、解決できないままに半月ほど経ってしまいました。ご教示いただければとてもうれしいです。


###実行環境
PC:macOS Catalina
mysql 8.0.21 (bottled)
Rails 5.2.4.2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Mysql2::Error::ConnectionError Can't connect to local MySQL server through socket 'tmp/mysql.sock' (2)

というメッセージですが、tmp/mysql.sock の前に / が付いてませんね。config/database.yml の修正する際に / を消してしまっていませんでしょうか。

投稿2020/08/25 13:13

saoyagi2

総合スコア210

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oakwoods

2020/08/26 13:56

回答ありがとうございました。 早速修正して試したところ、無事接続しました。 やはり単純なスペルミスでした。こういうのをなくさないといけないとは思っているのですが・・・。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問