Laravel で MySQL8 につなぐときの3つの注意点

エラー1

エラーメッセージ


SQLSTATE[HY000] [2054] Server sent charset unknown to the client. Please, report to the developers in ... on line 3



解決方法

MySQL データベースフォルダの my.ini を修正


[client]

default-character-set=utf8mb4


[mysql]

default-character-set=utf8mb4


[mysqld]

collation-server = utf8mb4_unicode_ci

character-set-server = utf8mb4

## UTF 8 Settings

skip-character-set-client-handshake


( 参考記事 )



エラー2

エラーメッセージ


SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client



解決方法

MySQL データベースフォルダの my.ini を修正


[mysqld]

default_authentication_plugin = mysql_native_password


( 参考記事 )




エラー3

エラーメッセージ


SQLSTATE[42000]: Syntax error or access violation: 1231 Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER' (SQL: sel

ect * from information_schema.tables where table_schema = microposts and table_name = migrations)



解決方法

プロジェクトルートディレクトリ/config/database.php を変更

'mysql' => [

        'strict' => false,

],


( 参考記事 )