MySQLの認証方式を紹介していきます。
8.0ではデフォルトの認証方式となります。
CREATE USER junpeko@localhost IDENTIFIED WITH cacheing_sha2_password BY 'abcdeF1$';
デフォルト設定のままの場合、WITH cacheing_sha2_password
は指定しなくても問題ありません。
5.7まではデフォルトの認証方式でした。
CREATE USER takuya@localhost IDENTIFIED WITH mysql_native_password BY 'abcdeF1$';
Laravelはこれにしないとマイグレーションで失敗しますね。
auth_socket
を使用すると、OSのユーザー名と同じ名前のMySQLアカウントでパスワードを
入力せずにログインできます。
例えばvpsuser
というOSの一般ユーザーがある場合にMySQLで以下の様にユーザーを作成したとします。
INSTALL PLUGIN auth_socket SONAME 'auth_socket.so';
CREATE USER vpsuser@localhost IDENTIFIED WITH auth_socket;
この場合に、vpsuser
からは、
パスワードもホスト名も指定することなしに、mysqlにログイン出来る様になります。
※ UNIXソケットを使用した接続でのみ有効なので、
mysqld
とクライアントが同じサーバー内でのみ接続できます。
SELECT user, host, plugin from mysql.user;