2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

connect ECONNREFUSED 127.0.0.1:3306 ってなんぞや

Posted at

ハマった内容

Node.jsで開発環境を構築中に・・・
npm install --save mysql2

上記のコマンドでmysql2をインストール。 その後にmigrateしようとした所こんなエラーが。
ERROR: connect ECONNREFUSED 127.0.0.1:3306

ふむ…?
まぁ接続エラーなんだろうけど、解決手順で若干ハマった。
調べてもピンとくる解決方法が出てこない。
dockerの〜、とか書いてあるけどdocker使ってないしなぁ。

ふと我に返り、mysql自体起動してないじゃん!www

と思ったが

いや、起動の仕方・・・はて・・・?
Node.jsってnpmコマンドからMysql起動するんか?
いや普通にmysql.serverコマンドか・・・?

起動してないなら起動すれば良いじゃない、と思っていたが

mysql.server start コマンドを実行。

ERROR! The server quit without updating PID file (/usr/local/var/mysql/Mbp-2.local.pid).

おぉん?

ググったらこちらの記事を発見。

上記の通りに権限付与し、再度実行してみる。

どれどれ…

 ERROR! The server quit without updating PID file (/usr/local/var/mysql/Mbp-2.local.pid).

おい!!!!いま権限付与しただろうが!
権限どうなってんだよ!

起動できないから一旦綺麗に

上記の記事を参考にしてみる。
一番有力とされる「パターン5」を試してみよう。

一通り削除して。。。

2.MySQL再インストール
を試みる。

❯ brew install mysql

Error: No such file or directory - /usr/local/var/homebrew/linked/mysql

んなぁ〜〜〜〜、どうなってんだよ次から次へと…

大したデータもないので、上記を元に一旦クリーンアップを実行。

brew remove mysql
brew cleanup

綺麗さっぱり。
mysqlを再インストール。

❯ mysql --version        
mysql  Ver 8.0.31 for macos13.0 on x86_64 (Homebrew)

無事入りましたね。

無事インスコ完了したが

さてmysqlサーバーを起動しますか。

❯ mysql.server start    
Starting MySQL
... ERROR! The server quit without updating PID file (/usr/local/var/mysql/Mbp-2.local.pid).

おやおやおやおやおやおやおやおや。

-rw-r-----    1 _mysql      _mysql      5414 12  4 07:58 Mbp-2.local.err
-rw-r-----    1 _mysql      _mysql        56 12  4 07:47 auto.cnf
-rw-r-----    1 _mysql      _mysql       180 12  4 07:52 binlog.000001
-rw-r-----    1 _mysql      _mysql       180 12  4 07:54 binlog.000002
-rw-r-----    1 _mysql      _mysql       180 12  4 07:56 binlog.000003

PIDファイルが消えてますね。。。。度し難い。。。
再生成、実行、を行なっても同じ。

まさにこの記事。
のこの部分。

touch /usr/local/var/mysql/*****.local.pidでpidファイルを作成しようと試みる → 作成自体は出来るがなぜか一定時間経つと作成したpidファイルが消える

プロセスを確認してみる

❯ ps aux | grep mysql
[User name]       25828   0.0  0.0 34147976    744 s001  S+    8:10AM   0:00.01 grep --color=auto mysql

ううむ…

この時初めて気が付きました。mysql8系のプロセスが動いていることに…(2行目と3行目のやつです)。これまでの試行錯誤の中で8系のファイルなどは完全に消し去ったと思っていたのでとても驚きました。

ないぞ…

しかし

一旦
mysql -u root
を実行してみよう。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

これみたことあるやつや!
ここに参考対処法が載っていますね。
やってみましょう。

やっぱりmysql.startしてないとだめ、やっぱそうだよね。。。

ソケットもある。
権限は…

-rw-r--r--  1 root  wheel  0 12  4 08:15 /tmp/mysql.sock

おや?所有者がrootだね,
mysqlに変えてみよう。

❯ sudo chown -R mysql:mysql /tmp/mysql.sock  
-rw-r--r--  1 _mysql  _mysql  0 12  4 08:15 /tmp/mysql.sock
❯ sudo 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/Mbp-2.local.pid).

うー、振り出し。
プロセス問題なのかと思ってもこれ。

❯ ps ax | grep mysql 
28696 s001  R+     0:00.01 grep --color=auto mysql

一体どうしたら良いんや

待てよ?これじゃない?
弄ってたファイルの箇所と、参照先が別だったり?

sudo rm -rf /usr/local/var/mysql
/usr/local 32s
❯ mysql.server start
Starting MySQL
... ERROR! The server quit without updating PID file (/usr/local/var/mysql/Mbp-2.local.pid).

だめぽい。
無限ループ。

こちらを最後の頼みの綱に一通り実行。

❯ brew uninstall mysql  
Uninstalling /usr/local/Cellar/mysql/8.0.31... (315 files, 296.3MB)

❯ brew install mysql@8.0
Running `brew update --auto-update`...
==> Downloading https://ghcr.io/v2/homebrew/core/mysql/manifests/8.0.31
Already downloaded: /Users/noguchirui/Library/Caches/Homebrew/downloads/eeb7708d75e293e371d52ef35b6688a9ccb547d1c84c5bfd48d285550250c638--mysql-8.0.31.bottle_manifest.json
==> Downloading https://ghcr.io/v2/homebrew/core/mysql/blobs/sha256:060ac12104e90e62049852f99226424c570624217be883a9115ee7fd388b7290
Already downloaded: /Users/noguchirui/Library/Caches/Homebrew/downloads/ebddb1ec21452fcee0f2c93186cce37e12907688c2dfd4cbd326d142001ff36a--mysql--8.0.31.ventura.bottle.tar.gz
==> Pouring mysql--8.0.31.ventura.bottle.tar.gz
==> /usr/local/Cellar/mysql/8.0.31/bin/mysqld --initialize-insecure --user=noguchirui --basedir=/usr/local/Cellar/mysql/8.0.31 --datadir=/usr/local/var/mysql --tmpdir=/tmp
==> Caveats
We've installed your MySQL database without a root password. To secure it run:
    mysql_secure_installation

MySQL is configured to only allow connections from localhost by default

To connect run:
    mysql -u root

To restart mysql after an upgrade:
  brew services restart mysql
Or, if you don't want/need a background service you can just run:
  /usr/local/opt/mysql/bin/mysqld_safe --datadir=/usr/local/var/mysql
==> Summary
🍺  /usr/local/Cellar/mysql/8.0.31: 315 files, 296.3MB
==> Running `brew cleanup mysql`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

そして…

❯ mysql.server start    
Starting MySQL
...... SUCCESS! 

マジで言ってる?
こんな幕引きある?

remove じゃなくてuninstallだったら一発で解決できたのか…

マジで、お前…(3時間溶かした)

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?