• Laravelでス
    キーマの作成(MAMPに接続)できずに困っています。...
  • ライナスライナス 
    Laravelでスキーマの作成(MAMPに接続)できずに困っています。
    現状では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)
    です。
    どうぞよろしくお願いいたします。
    回答 0

    ライナス 
    質問なのですが、
    ターミナルを使った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の内容を確認することができます。