1526617474 mysqlを学習するにあたって、参考書を見ながら学習していたのですが、ルート権限で"basic"という名称のデータベースを作成したので、GRANT構文で新しいユーザーをそのデータベースに対する全ての権限付で作成する部分でエラーが出てしまいました。 Add Star

スペルミスのようなものでもなく、参考書自体も今年の3月に第二版として発行されているので、それだけ短期間の間に文法が変わるものなのかなとは思います。

ユーザーを作成するために実行したコマンドは以下の通りです。
GRANT ALL PRIVILEGES ON basic.* TO myuser@localhost IDENTIFIED BY '12345';
これに対して、
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY '12345'' at line 1
です。
また、念のためユーザー目とホスト名をシングルクオーテーションで囲ってみましたが、結果は同じでした

mysqlのバージョンは、
Ver 8.0.11 for Win64 on x86_64 (MySQL Community Server - GPL)
動作環境は、Windows10 Pro 1803 OSビルド17134.48
mysqlはコマンドプロンプトを管理者権限で実行して操作しました。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2018/05/18 14:01:06
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154

ポイント1000pt

その本が前提にしているのは、Mysql 5.x 系じゃないでしょうか。
grant の構文が変更されてます。

Ver 5.6
https://dev.mysql.com/doc/refman/5.6/ja/grant.html

GRANT
    priv_type [(column_list)]
      [, priv_type [(column_list)]] ...
    ON [object_type] priv_level
    TO user_specification [, user_specification] ...
    [REQUIRE {NONE | ssl_option [[AND] ssl_option] ...}]
    [WITH with_option ...]

    ...

user_specification:
    user
    [
      | IDENTIFIED WITH auth_plugin [AS 'auth_string']
        IDENTIFIED BY [PASSWORD] 'password'             ★
    ]

Ver 8.0
https://dev.mysql.com/doc/refman/8.0/en/grant.html

GRANT
    priv_type [(column_list)]
      [, priv_type [(column_list)]] ...
    ON [object_type] priv_level
    TO user_or_role [, user_or_role] ...
    [WITH GRANT OPTION]

    ...

user_or_role: {
    user                    ★
  | role
}

GRANT ALL PRIVILEGES ON basic.* TO myuser@localhost IDENTIFIED BY '12345';

のところは、こうなるかと。

CREATE USER 'myuser'@'localhost' IDENTIFIED BY '12345';
GRANT ALL PRIVILEGES ON basic.* TO 'myuser'@'localhost';
他2件のコメントを見る
id:a-kuma3

あら、前は効いてた style 属性が消されるようになってる (´・ω・`)
引用範囲の最後のセンテンスを赤くしたつもりでした。

2018/05/18 14:10:46
id:tyusuke88

ありがとうございます。
一月ほど前の変更だったのですね。
確かに権限付与が、ユーザー作成を兼ねるというのはおかしな気がします。

2018/05/18 14:13:51

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません