キーマの作成(MAMPに接続)できずに困っています。...
ターミナルを使ったDBへの接続はMAMPを起動した状態じゃないと出来ないのでしょうか?
あれから、色々調べて
MAMPのバージョンがいけないのかや
php.initを調べたり
MAMPを起動した時にmysqlファイルの中に生成される
mysql.sock.lockファイルを削除したほうがいいという記事を見かけて半信半疑になったり(削除しなくてよかったです)
ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock
としてシンボリックを貼れば解決するよ!という記事を見てシンボリック貼ったり
など色々いじったのですが、解決せず
もうGUIでDB作っちゃおうと思いMANPを起動し、最後の試しに
./mysql -u root -pを実行したところ
成功しました。
大変恥ずかしいです。
動画内でMAMPを立ち上げているように見えなかったので勘違いしていました。
ターミナルを使ったDBへの接続はMAMPを起動した状態じゃないと出来ないのでしょうか?
———————————————————————————————————
まず、DBの接続には、DBサーバーが立ち上がっていることが必要です。
そして、 MAMPを起動すると、DBサーバーが立ち上がるようになっています。
よって、DBへ接続するためには、MAMPを起動させる必要があります。
手順は以下の流れになります。
(1) MAMPのStart Serverというボタンをクリックし、DBサーバーを起動させる
(2) ターミナルから「./mysql -u root -p」というコマンドを打って、DBサーバーへ接続する (/Applications/MAMP/Library/bin/に移動してそこでコマンドを実行)
また補足ではありますが、MAMPを使用する場合は、ターミナルから接続する場合と、phpmyadminから接続する場合とで、接続するDBサーバーは変わりません。
よってどちらの場合でも、同じDBの内容を確認することができます。
部活の学習一覧
Lesson 01 | Laravelと環境構築〜その1〜
Lesson 02 | Laravelと環境構築〜その2〜
Lesson 03 | Laravelと環境構築〜その3〜
Lesson 04 | Laravelでタイピングサービスを作ろう!〜テーブル設計〜
Lesson 05 | Laravelでタイピングサービスを作ろう!〜マイグレーションとテーブル作成〜
Lesson 06 | Laravelでタイピングサービスを作ろう!〜artisanコマンドと認証機能〜
Lesson 07 | Laravelでタイピングサービスを作ろう!〜Seeder〜
Lesson 08 | Laravelでタイピングサービスを作ろう!〜Bladeテンプレート〜
Lesson 09 | Laravelでタイピングサービスを作ろう!〜タイピング登録とルーティング〜
Lesson 10 | Laravelでタイピングサービスを作ろう!〜routeメソッドと多言語対応〜
Lesson 11 | Laravelでタイピングサービスを作ろう!〜バリデーションとEloquentORM〜
Lesson 12 | Laravelでタイピングサービスを作ろう!〜モデルで登録〜
Lesson 13 | Laravelでタイピングサービスを作ろう!〜ORMとルーティング、CSRF〜
Lesson 14 | Laravelでタイピングサービスを作ろう!〜一覧表示と任意・必須パラメータ〜
Lesson 15 | Laravelでタイピングサービスを作ろう!〜編集機能〜
Lesson 16 | Laravelでタイピングサービスを作ろう!〜削除機能〜
Lesson 17 | Laravelでタイピングサービスを作ろう!〜laravel-mixとvue.js〜
Lesson 18 | Laravelでタイピングサービスを作ろう!〜vue.jsの処理その1〜
Lesson 19 | Laravelでタイピングサービスを作ろう!〜vue.jsの処理その2〜
Lesson 20 | Laravelでタイピングサービスを作ろう!〜vue.jsの処理その3〜
Lesson 21 | Laravelでタイピングサービスを作ろう!〜ファサード〜
Lesson 22 | Laravelでタイピングサービスを作ろう!〜ビューコンポーザーとGuard〜
Lesson 23 | Laravelでタイピングサービスを作ろう!〜ビューコンポーザーその2〜
Lesson 24 | Laravelでタイピングサービスを作ろう!〜サービスプロバイダーとSQLログ出力〜
Lesson 25 | Laravelでタイピングサービスを作ろう!〜カラム追加とリレーション〜
Lesson 26 | Laravelでタイピングサービスを作ろう!〜カラム追加とリレーションその2〜
Lesson 27 | Laravelでタイピングサービスを作ろう!〜ミドルウェア〜
ご意見箱
現状ではphp artisan serveでlaravelのサーバへの接続までできています
cd /Applications/MAMP/Library/bin/を入力し、./mysql -u root -pでパスワードをデフォルト(デフォルトのままです)のrootとして入力すると
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/Applications/MAMP/tmp/mysql/mysql.sock' (2)
と出てきました。
どうやらmysql.sockと言うファイルがないよと言う意味らしいので
指定された場所に
$sudo touch /Applications/MAMP/tmp/mysql/mysql.sock
を実行しました。
再度./mysql -u root -pを実行したところ
今度は
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/Applications/MAMP/tmp/mysql/mysql.sock' (38)
と言うエラーが出ました。
これは権限の問題ということで
sudo chown mysql:mysql/Applications/MAMP/tmp/mysql/mysql.sock
とコマンドを打つと
usage: chown [-fhv] [-R [-H | -L | -P]] owner[:group] file ...
chown [-fhv] [-R [-H | -L | -P]] :group file ...
となり、再度
./mysql -u root -pと入力
すると
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/Applications/MAMP/tmp/mysql/mysql.sock' (38)
とエラーが出ました。
一応念のため
$chown mysql:mysql /Applications/MAMP/tmp
とし./mysql -u root -pと入力しても
同じ結果でした。
さらに調べてみると
サーバを再起動する必要があるということで
$sudo mysql.server restart
とやると
command not foundとなったので
アプリを直接再起動させました。
すると先ほど作成した
/Applications/MAMP/tmp/mysql/mysql.sock
のmysql.sockのファイルが消えてしまい
また./mysql -u root -pを実行したところ
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/Applications/MAMP/tmp/mysql/mysql.sock' (2)
のエラーが出て振り出しに戻ってしまいました。
原因がよくわからず困っています
使用環境は
Laravel Framework 5.8.35
PHP 7.1.23
Version 5.2 (351)
です。
どうぞよろしくお願いいたします。