LoginSignup
3
3

More than 5 years have passed since last update.

MySQL5.7でユーザー作ろうとしたら怒られた…

Posted at

NO_AUTO_CREATE_USER

今まで開発テストユーザーの作成は、下記のフローを使っていました。

  1. とりあえずテストユーザの権限を剥奪(権限がない場合は自動作成)
  2. ユーザーの削除
  3. ユーザの作成
  4. 権限追加

しかし!
MySQL5.7でいつものようにユーザーを作成しようとして、1でユーザーの自動生成をしようとすると…
ERROR 1133 (42000): Can't find any matching row in the user table
というエラーが発生します。存在しないユーザを指定するなってことですね(^^;;
調べてみたら5.7からはNO_AUTO_CREATE_USERがデフォルトで有効になるみたいなので、とりあえず解決策を考えました。

sample.sql
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='';
GRANT USAGE ON *.* TO 'hoge'@'localhost';
DROP USER 'hoge'@'localhost';
CREATE USER 'hoge'@'localhost' IDENTIFIED BY 'hogehoge';
-- ここから権限作成
SET SQL_MODE=@OLD_SQL_MODE;

SQLモードが原因ならばそれを取り除けばいいじゃない!ってことですね。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3