MySQLが起動できない(Can't connect to local MySQL server through socket '/Applications/MAMP/tmp/mysql/mysql.sock' (38))
解決したいこと
MySQLのサーバーが起動していないようでしたのでターミナルで起動させたところ、エラーが出ました。
Can't connect to local MySQL server through socket'/Applications/MAMP/tmp/mysql/mysql.sock' (38)
何をしているか?
PHPのフレームワークLaravelでフォームのようなWebアプリをつくっています。開発環境はMAMPを利用し、MAMPで教本の300Pまでうまく行っていました。
その中で今までMacをスリープモードにして作業を続けていたのですが、昨日再起動してしまうとなぜか今まで動いていたMySQLが動かなくなりました。
どのようなエラーか?
おかしいなということでMAMPのブラウザからSQLを見たところ、
phpMyAdminがnot runnningとなっており、
このようなエラーが出ていたので、まずはターミナルからMySQLを起動させてみようと思い、
このようにしたところ、エラーが出てしまったのでググるとどうやらSocketが作成されていないらしいとのことで作成するコマンドを打つとエラーが今度は2から38に変わりました。ここまでは今までのQiitaの記事通りでいけると思っていました。
ここでほとんどの記事は38番のエラーはSocketの権限がないとのことでコマンドプロンプトで
sudo chown tokut /Applications/MAMP/tmp/mysql/mysql.sock
と打てば権限がユーザーのtokutになるので38番のエラーが消えるとのことでしたが、
MySQLを起動できません。
解決方法を教えて下さい。
追記:
自分でmysql.sockを作るのはエラーの元とのことでしたので削除したところ、ターミナルでMysqlを起動したところ、
Can't connect to local MySQL server through socket '/Applications/MAMP/tmp/mysql/mysql.sock' (2)
が出ました。
どうやらsocketでエラーが出ているようなのでtcp接続にしたい↓
またphpMyadmin/config.inc.phpのファイルでどうやら接続方法を変えるらしく
$cfg['Servers'][$i]['host'] = '127.0.0.1'; // MySQL hostname or IP address
$cfg['Servers'][$i]['port'] = '3306'; // MySQL port - leave blank for default port
$cfg['Servers'][$i]['socket'] = ''; // Path to the socket - leave blank for default socket
$cfg['Servers'][$i]['connect_type'] = 'tcp'; // How to connect to MySQL server ('tcp' or 'socket')
$cfg['Servers'][$i]['extension'] = 'mysql';
hostがlocalhostだとsocket通信で127.0.0.1だとtcp通信のようで
localhostだと
mysqli::real_connect(): (HY000/2002): No such file or directory
127.0.0.1だと
mysqli::real_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES)
のエラーがMAMPブラウザのMysqlに出ます。