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

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

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

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

Q&A

1回答

1757閲覧

【mysql】Puma caught this error: Can't connect to local MySQL server through socket '/var/lib/mysql/my

gogoackman3

総合スコア109

MySQL

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

0グッド

0クリップ

投稿2016/12/19 05:39

編集2016/12/19 08:50

vagrant に開発環境を構築しているのですが、mysqlを5.5→5.7にアップデートして以降、

rails s -b 0.0.0.0

というコマンドを実行してpumaを起動する度に、以下のエラーが出ます。

Puma caught this error: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) (Mysql2::Error)

一応、手間ですが、毎回以下のコマンドを実行すれば、問題なく接続出来ます。

$ sudo /etc/init.d/mysqld restart

が、毎回面倒なので、解決したいです。

###試したこと

database.ymlに以下を記載し、socketを指定

socket: /var/lib/mysql/mysql.sock

/etc/my.cnf.d のファイルの[mysqld]のsocketのパスを以下に。

[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock #socket=/tmp/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 character-set-server=utf8 default-storage-engine=InnoDB innodb_file_per_table [mysql] default-character-set=utf8 [mysqldump] default-character-set=utf8 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [client] socket=/var/lib/mysql/mysql.sock

その他、以下のようにパスを確認しています。

mysqladmin -u root -p version Enter password: mysqladmin Ver 8.42 Distrib 5.7.17, for Linux on x86_64 Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Server version 5.7.17 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/lib/mysql/mysql.sock Uptime: 1 min 0 sec
mysql_config --socket /var/lib/mysql/mysql.sock

どうもvagrantを停止すると、/var/lib/mysqlからmysql.sockが消えてしまい、vagrantを再度起動しても消えたままでファイルがないと怒られているような気がします。

何か見逃しているところがありますでしょうか??

▼その他、関係ありそうなファイル

/etc/init.d/mysqldの内容(一部)

get_mysql_option mysqld datadir "/var/lib/mysql" datadir="$result" get_mysql_option mysqld socket "$datadir/mysql.sock" socketfile="$result" get_mysql_option mysqld_safe log-error "/var/log/mysqld.log" errlogfile="$result" get_mysql_option mysqld_safe pid-file "/var/run/mysqld/mysqld.pid" mypidfile="$result" case $socketfile in /*) adminsocket="$socketfile" ;; *) adminsocket="$datadir/$socketfile" ;; esac install_validate_password_sql_file () { local dir local initfile dir=/var/lib/mysql initfile="$(mktemp $dir/install-validate-password-plugin.XXXXXX.sql)" chown mysql:mysql "$initfile" echo "INSERT INTO mysql.plugin (name, dl) VALUES ('validate_password', 'validate_password.so');" > "$initfile" echo "SHUTDOWN;" >> "$initfile" echo "$initfile" } start(){ [ -x $exec ] || exit 5 # check to see if it's already running RESPONSE=$(/usr/bin/mysqladmin --no-defaults --socket="$adminsocket" --user=UNKNOWN_MYSQL_USER ping 2>&1) if [ $? = 0 ]; then # already running, do nothing action $"Starting $prog: " /bin/true ret=0 elif echo "$RESPONSE" | grep -q "Access denied for user" then # already running, do nothing action $"Starting $prog: " /bin/true ret=0 else # prepare for start if [ ! -e "$errlogfile" -a ! -h "$errlogfile" -a "x$(dirname "$errlogfile")" = "x/var/log" ]; then install /dev/null -m0640 -omysql -gmysql "$errlogfile" fi [ -x /sbin/restorecon ] && /sbin/restorecon "$errlogfile" if [ ! -d "$datadir/mysql" ] ; then

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

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

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

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

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

guest

回答1

0


投稿2020/01/22 08:21

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問