0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

見習いがmysqldumpでハマった話

Last updated at Posted at 2024-09-05

経緯

EC2にあるDBをバックアップしようとmysqldumpを実行したら見慣れてるエラーが出た。

sudo mysqldump -u tiikawa -p rou_kusamusiri_db > 2024_0905_rou_kusamusiri_db.sql

mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) while connecting to the MySQL server

mysqlにsudo権限でログインできる&ステータスでアクティブなのは確認してるので
ソケットファイルがないのはおかしいと思い設定ファイルを見てみる

mysqld.cnf

[mysqld]
socket=/run/mysqld/mysql.sock

/var/run/mysqld/

mysql.sock
mysql.sock.lock
mysqlx.sock
mysqlx.sock.lock

mysqld.cnfでソケットファイルの指定があり
mysql.sockを名前指定してるからmysqld.sockが見つからず接続できないってコト?(ちいかわ感)
mysql起動時にソケットファイルは自動作成されるためmysqld.sockが作成されないと思われる。
既存環境なのでsockファイルの名前を変更するのは流石に影響がデカすぎる‥

結論

-hオプションを使用してTCP/IP経由でコマンド実行する必要があった。

補足

どうやらソケットファイル経由ではなくTCP/IP経由でやる必要があるらしい。
ホストのIPを明示的に指定する必要があるらしい。

sudo mysqldump -h 127.0.0.1 -u tiikawa -p rou_kusamusiri_db > 2024_0905_rou_kusamusiri_db.sql

上記のようにローカルのIPを指定したらうまくいった。
そういえば別件でRDSからEC2にmysqldumpしたときは確かにホスト指定してたなと。
初歩的なことですが解決して良かったです。

最後に

どうも新人見習い社会人です。
会社のナレッジ共有ツールで言語化してもほぼ誰にも見られない状態なのでこちらに投稿します。
保険をかけますが新人見習い社会人なのでご容赦ください。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?