前提・実現したいこと
laravelで、既存のデータベースから六行ほどの少ないデータをとりだそうと
しているのですが、このエラー画面が表示されてしまいます。
どうしたらいいでしょうか?
発生している問題・エラーメッセージ
SQLSTATE[HY000] [2006] MySQL server has gone away
該当のソースコード
PHP
1 public function getHome(){ 2 $menus = DB::select('select * from menus'); 3 return view('home',['menus' => $menus]); 4 }
configのdatabaseの方です。
PHP
1'default' => env('DB_CONNECTION', 'mysql'),
PHP
1'mysql' => [ 2 'driver' => 'mysql', 3 'url' => env('DATABASE_URL'), 4 'host' => env('DB_HOST', '伏せてます'), 5 'port' => env('DB_PORT', '22'), 6 'database' => env('DB_DATABASE', 'g1_db'), 7 'username' => env('DB_USERNAME', 'g1'), 8 'password' => env('DB_PASSWORD', '伏せてます'), 9 'unix_socket' => env('DB_SOCKET', ''), 10 'charset' => 'utf8mb4', 11 'collation' => 'utf8mb4_unicode_ci', 12 'prefix' => '', 13 'prefix_indexes' => true, 14 'strict' => true, 15 'engine' => null, 16 'options' => extension_loaded('pdo_mysql') ? array_filter([ 17 PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), 18 ]) : [], 19 ],
envファイルのほうです。
PHP
1DB_CONNECTION=mysql 2DB_HOST=nsc-jp.net 3DB_PORT=22 4DB_DATABASE=g1_db 5DB_USERNAME=g1 6DB_PASSWORD=nscnl001
試したこと
pockest,
soketsのサイズを大きくしようとしたら
スーパーpriviledge(特権)が必要と言われて
できませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
ツッコミどころが満載ですね・・・
①`Packets out of order` はどこで出てきたのでしょうか?質問文中に存在しません。
②ポートが22(SSH)なのが謎、通常3306なはず。
③.env経由の設定と、そうじゃない設定(env関数の第二引数を利用)が混在しているが適切に設定済なのか
④リモートのMySQLに繋ごうとしているならその旨と経緯と設定を書いて欲しい
1 すいません。これは、張ってある写真の右下の方に、小さく出ています。
2 ポートはそうなんですね、puttyを使って普段は接続しているのですが、そこのポート番号が22と書いてあったので、
3すいません。わからないです。
4 やろうとしてるのは、xamppのlocalhostで開こうとしています!
3306に変更したところ、
SQLSTATE[42000]: Syntax error or access violation: 1115 Unknown character set: 'utf8mb4' (SQL: select * from menus)
とでました。
ローカルのxamppのlocalhostに接続しようとしているなら3306でいいのでは?
> SQLSTATE[42000]: Syntax error or access violation: 1115 Unknown character set: 'utf8mb4'
これは、Mysqlのバージョンが古いからだと思います
取り急ぎ utf8 に変更すればOKかと
回答2件
あなたの回答
tips
プレビュー