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

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

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

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

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

1回答

3142閲覧

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)を解決したい。

purogram001

総合スコア17

MySQL

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

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

0グッド

0クリップ

投稿2020/04/30 08:08

編集2020/04/30 16:27

前提・実現したいこと

MySQLにログインできなくなってしまったので、ログインできるようにしたいです。

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

XAMPPでサイトを作っていたら、MySQLにログインできなくなってしまいました。

下記のエラーが出ています。

mysql.server start Starting MySQL . ERROR! The server quit without updating PID file (/usr/local/var/mysql/XXXXXXXXXXXX.pid).
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)

試したこと

行ったこと

すでに公開しているプログラムでローカルで落としても動かないプログラムがあり、
XAMPPのバージョン違いと思ったのでXAMPPをインストールし直したところ、
MySQLにログインできなくなりました。

①インストールし直したことによるソケットの設定がリセットされたせいだと思い、
php.iniとmy.cnfファイルのsocketの設定をし直しました。

https://www.softel.co.jp/blogs/tech/archives/2187
のサイトを参考に、下記のようになっています。

php.ini

1/Applications/XAMPP/xamppfiles/etcの階層にあります。) 2mysql.default_socket=/tmp/mysql.sock 3mysqli.default_socket=/tmp/mysql.sock 4pdo_mysql.default_socket=/tmp/mysql.sock

my.cnf

1(/Applications/XAMPP/xamppfiles/etcの階層にあります。) 2[client] 3#socket = /var/lib/mysql/mysql.sock #これを変更 4socket = /tmp/mysql.sock 5 6[mysqld] 7#socket = /var/lib/mysql/mysql.sock #これを変更 8socket = /tmp/mysql.sock

②mysql.sockは作成しました。/tmp/mysql.sockに作成しています。

$ mysql_config --socket

/tmp/mysql.sock

で確認しています。

(mysql.sockについて理解していないのですが、
プログラムとmysqlの通信してくれるファイルと認識しています。)

③MySQLのアンインストールとインストールを行いました。

https://yukiyuriweb.com/clean-install-mysql-on-mac-os-x-el-capitan/
を参考に

$brew install mysql

で行いました。
==> Summary
???? /usr/local/Cellar/mysql/8.0.19: 286 files, 288.7MB
になっています。

④sudoで実行しても、同じエラーが出てしまいます。

$sudo mysql.server start Password: Starting MySQL . ERROR! The server quit without updating PID file(/usr/local/var/mysql/XXXXXXXXXXXX.pid).
$ sudo chown mysql:mysql /tmp $ mysql -u root -p Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)

⑤PID fileファイルは作りました。
ホスト名をuname -nで確認し、XXXXXXの箇所に記入して、

$touch /usr/local/var/mysql/XXXXXX.local

で作成しました。

追記

ログを見ることができました。
よくわかっていないのですが、貼り付けておきます。

¥2020-04-30T16:06:02.6NZ mysqld_safe Logging to '/var/log/mysqld.log'. 2020-04-30T16:06:02.6NZ mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql 2020-04-30T16:06:03.364253Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2020-04-30T16:06:03.365590Z 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled 2020-04-30T16:06:03.366645Z 0 [Note] /usr/local/Cellar/mysql@5.7/5.7.29/bin/mysqld (mysqld 5.7.29) starting as process 8555 ... 2020-04-30T16:06:03.382354Z 0 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive 2020-04-30T16:06:03.391224Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2020-04-30T16:06:03.391274Z 0 [Note] InnoDB: Uses event mutexes 2020-04-30T16:06:03.391288Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier 2020-04-30T16:06:03.391300Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 2020-04-30T16:06:03.392806Z 0 [Note] InnoDB: Number of pools: 1 2020-04-30T16:06:03.395250Z 0 [Note] InnoDB: Using CPU crc32 instructions 2020-04-30T16:06:03.397396Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M 2020-04-30T16:06:03.415071Z 0 [Note] InnoDB: Completed initialization of buffer pool 2020-04-30T16:06:03.460536Z 0 [ERROR] [FATAL] InnoDB: Table flags are 0 in the data dictionary but the flags in file ./ibdata1 are 0x4800! 2020-05-01 01:06:03 0x11a5235c0 InnoDB: Assertion failure in thread 4736562624 in file ut0ut.cc line 918 InnoDB: We intentionally generate a memory trap. InnoDB: Submit a detailed bug report to http://bugs.mysql.com. InnoDB: If you get repeated assertion failures or crashes, even InnoDB: immediately after the mysqld startup, there may be InnoDB: corruption in the InnoDB tablespace. Please refer to InnoDB: http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html InnoDB: about forcing recovery. 16:06:03 UTC - mysqld got signal 6 ; This could be because you hit a bug. It is also possible that this binary or one of the libraries it was linked against is corrupt, improperly built, or misconfigured. This error can also be caused by malfunctioning hardware. Attempting to collect some information that could help diagnose the problem. As this is a crash and something is definitely wrong, the information collection process might fail. key_buffer_size=8388608 read_buffer_size=131072 max_used_connections=0 max_threads=151 thread_count=0 connection_count=0 It is possible that mysqld could use up to key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 68221 K bytes of memory Hope that's ok; if not, decrease some variables in the equation. Thread pointer: 0x0 Attempting backtrace. You can use the following information to find out where mysqld died. If you see no messages after this, something went terribly wrong... stack_bottom = 0 thread_stack 0x40000 0 mysqld 0x000000010b9e5139 my_print_stacktrace + 58 1 mysqld 0x000000010b964d1b handle_fatal_signal + 696 2 libsystem_platform.dylib 0x00007fff7b8bfb5d _sigtramp + 29 3 ??? 0x0000000000000000 0x0 + 0 4 libsystem_c.dylib 0x00007fff7b7796a6 abort + 127 5 mysqld 0x000000010bc91f88 _Z23ut_dbg_assertion_failedPKcS0_m + 161 6 mysqld 0x000000010bbd5947 _ZN2ib5fatalD2Ev + 91 7 mysqld 0x000000010bbd5985 _ZN2ib5fatalD1Ev + 9 8 mysqld 0x000000010ba7d55a _ZL18fil_node_open_fileP10fil_node_t + 2411 9 mysqld 0x000000010ba86e6e _ZL23fil_node_prepare_for_ioP10fil_node_tP12fil_system_tP11fil_space_t + 191 10 mysqld 0x000000010ba87556 _Z6fil_ioRK9IORequestbRK9page_id_tRK11page_size_tmmPvS8_ + 796 11 mysqld 0x000000010ba4e28c _ZL17buf_read_page_lowP7dberr_tbmmRK9page_id_tRK11page_size_tb + 408 12 mysqld 0x000000010ba4e3e3 _Z13buf_read_pageRK9page_id_tRK11page_size_t + 56 13 mysqld 0x000000010ba39cf7 _Z16buf_page_get_genRK9page_id_tRK11page_size_tmP11buf_block_tmPKcmP5mtr_tb + 953 14 mysqld 0x000000010bbc34fa _Z31trx_rseg_get_n_undo_tablespacesPm + 251 15 mysqld 0x000000010bba6f4b _Z34innobase_start_or_create_for_mysqlv + 6608 16 mysqld 0x000000010bad6a25 _ZL13innobase_initPv + 3636 17 mysqld 0x000000010b458508 _Z24ha_initialize_handlertonP13st_plugin_int + 78 18 mysqld 0x000000010b8b41fd _ZL17plugin_initializeP13st_plugin_int + 79 19 mysqld 0x000000010b8b3cfb _Z40plugin_register_builtin_and_init_core_sePiPPc + 707 20 mysqld 0x000000010b959cfd _Z11mysqld_mainiPPc + 2912 21 libdyld.dylib 0x00007fff7b6d43d5 start + 1 The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains information that should help you find out what is causing the crash. 2020-04-30T16:06:03.6NZ mysqld_safe mysqld from pid file /usr/local/var/mysql/XXXXXX.local.pid ended

何がどうなっているのか
さっぱり分からなくなってきてしまいまい途方に暮れています。
何かしらヒントをいただけると大変助かります。
よろしくお願い致します。

以下が参考に読んだサイトです。
https://qiita.com/nishina555/items/4d0149a1b20079d4b8b4
https://mnmandahalf.hatenablog.com/entry/2017/10/03/002827
https://qiita.com/carotene4035/items/e00076fe3990b9178cc0
https://teratail.com/questions/114546
https://qiita.com/jonakp/items/477a18d4a94c01a31583
https://qiita.com/iwaseasahi/items/9d2e29b02df5cce7285d
https://qiita.com/avicii2314/items/cbe938339cb80f59f5a5
https://qiita.com/mogetarou/items/e34ca51d3756d55d7800
https://qiita.com/akiko-pusu/items/aef52b723da2cb5dc596
https://qiita.com/_natsu_no_yuki_/items/ae4c94187093e4ab3cdc
https://qiita.com/jonakp/items/477a18d4a94c01a31583
https://qiita.com/hondy12345/items/d32ed749fb49e9da7de6

補足情報(FW/ツールのバージョンなど)

macOS Mojave 10.14.6

$php -v
PHP 7.3.16 (cli) (built: Mar 19 2020 11:20:31) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.16, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.16, Copyright (c) 1999-2018, by Zend Technologies

$mysql --version
mysql Ver 14.14 Distrib 5.7.29, for osx10.14 (x86_64) using EditLine wrapper

XAMPP 7.2.30-0

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

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

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

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

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

guest

回答1

0

自己解決

どこがおかしかったのか結局よくわからなかったのですが、
以下のサイトを参考に行ったところ、自己解決できました。

https://qiita.com/gasekao/items/7c59add52f6fb5e623a5
https://mitsuba.hateblo.jp/entry/20110226/1298732743
https://qiita.com/yukihigasi/items/a1c84b14ad6807896003
https://qiita.com/kazu_wsx/items/bb787e9e4e919da03705

こちらのサイトを元に行いました。

①.err .pid ファイルを作った。
https://qiita.com/gasekao/items/7c59add52f6fb5e623a5

/usr/local/var/mysql/ ディレクトリの中に
XXXXX.local.err
XXXXX.local.pid
を作成し直した。

$ sudo touch /usr/local/var/mysql/XXXXX.local.err
$ sudo touch /usr/local/var/mysql/XXXXX.local.pid

②プロセスを確認して、動いているものを止めた。
https://mitsuba.hateblo.jp/entry/20110226/1298732743
$ ps aux | grep mysqld
でdeamonが動いているか確認。

$ sudo kill -TERM XXXXX
余計なプロセスを停止。

③socketファイルを削除し、再起動を行った。
https://mitsuba.hateblo.jp/entry/20110226/1298732743

$rm -f /tmp/mysql.sock で mysql.sock を消して再起動した。

④mysqlを消した。
https://qiita.com/kazu_wsx/items/bb787e9e4e919da03705
local配下のmysqlを全て削除する
$ rm -rf /usr/local/mysql
$ rm -rf /Library/StartupItems/MYSQL
$ rm -rf /Library/PreferencePanes/MySQL.prefPane
$ rm -rf /Library/Receipts/mysql-.pkg
$ rm -rf /usr/local/Cellar/mysql*
$ rm -rf /usr/local/bin/mysql*
$ rm -rf /usr/local/var/mysql*
$ rm -rf /usr/local/etc/my.cnf
$ rm -rf /usr/local/share/mysql*
$ rm -rf /usr/local/opt/mysql

⑤インストールし直した。
$brew install mysql@5.7


パスを通し直す。
$ echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.bash_profile

を行ったところ、動くようになりました。

https://mitsuba.hateblo.jp/entry/20110226/1298732743
のサイト様によると、

deamonが正しく起動していない
socketファイルがある場所が指定されていない
socketファイルが消滅している

とのことなので、
deamonが正しく起動していないか、ソケットが壊れていたか
あたりなのかと推測しています。

投稿2020/05/01 04:39

purogram001

総合スコア17

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問