by shigemk2

当面は技術的なことしか書かない

NO_AUTO_CREATE_USER

  • 8.0で廃止
  • sql_modeの中で指定される
  • 5.7→8.0でデータをdumpするときにエラーになる

認証情報が指定されない限り、GRANT ステートメントが自動的に新しいユーザアカウントを作成しないようにします。 文はIDENTIFIED BYを使用して空でないパスワードを指定するか、IDENTIFIED WITHを使用して認証プラグインを指定しなければなりません。 MySQLアカウントはGRANTではなくCREATE USERで作成する方が望ましいです。 NO_AUTO_CREATE_USERは非推奨で、デフォルトのSQLモードにはNO_AUTO_CREATE_USERが含まれています。 NO_AUTO_CREATE_USERモードの状態を変更するsql_modeへの代入は、sql_modeをDEFAULTに設定する代入を除き、警告を生成します。 将来のMySQLリリースでNO_AUTO_CREATE_USERが削除され、その効果が常に有効になることを期待しています(そしてGRANTがアカウントを作成しなくなることを期待しています)。 NO_AUTO_CREATE_USERが非推奨になる前の以前は、有効にしない理由の1つはレプリケーションセーフでないことでした。 現在では、これを有効にして、GRANTではなく、CREATE USER IF NOT EXISTS、DROP USER IF EXISTS、ALTER USER IF EXISTSを使用してレプリケーション・セーフなユーザ管理を行うことができます。 これらの文は、レプリカがソース上のグラントと異なるグラントを持つ可能性がある場合に、安全なレプリケーションを可能にします。 13.7.1.2項 「CREATE USER文」、13.7.1.3項 「DROP USER文」、および13.7.1.1項 「ALTER USER文」を参照のこと。

dev.mysql.com