LoginSignup
5

More than 3 years have passed since last update.

【超初心者用】【MySQL 】ERROR 1044 (42000)とERROR 1064 (42000)

Last updated at Posted at 2020-07-21

ERROR 1044 (42000)必要な権限がないエラー

ERROR 1044 (42000): Access denied for user 'user'@'localhost' to database 'dotinstall_db'

ちゃんと教材通りに書いたのに・・・

ERROR 1064 (42000)構文エラー

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 'test'' at line 1

ちゃんと教材通りに書いたのに・・・
バージョンによって構文が変わるの?と思って調べて行きました。

結局ERROR 1064 (42000)をそのまんまググりつつ、ユーザの追加についてMySQL 5.6 リファレンスマニュアルがヒットするのでそれを参照

ドットインストールの通りにやったのに・・・

mysqlの使い方をドットインストールで勉強していましたがうまく行きませんでした。

バージョンの確認

自分のバージョン

// phpのバージョン確認
$ php -v 
PHP 7.4.8
// mysqlのバージョン確認
$ mysql --version
mysql Ver 8.0.19 for osx10.15 on x86_64 (Homebrew)

ドットインストールのバージョン

PHP 5.6.11
mysql 14.14 Distrib 5.5.44, for Linux (x86_64) using readline 5.1

ERROR 1064 (42000)は構文エラー

mysqlのバージョンがドットインストールのバージョンと違うことによるのか、ドットインストールのコマンドを使っても発生していた。

  1. ユーザの追加

ドットインストールでは

mysql> grant all on dotinstall_db.* to username@localhost identified by password

自分のバージョンでは

mysql> CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
(これだけじゃ足りなて、次の権限の付与が別で必要)

allall privilegesかの違いがあるよう。
また、with grant optionというのも必要らしい。

https://www.postgresql.jp/document/8.0/html/sql-grant.html
これによると

WITH GRANT OPTIONが指定されると、権限受領者はその後、他のユーザにその権限を与えることができます。 グラントオプションがないと、受領者はこれを行うことができません。 現時点では、グラントオプションは個々のユーザに対してのみ与えることができ、グループやPUBLICには与えることができません。

ということらしい。
とりあえず書いといた方が良いということかしら。

  1. 権限の付与
mysql> grant all privileges on dotinstall_db.* to 'username'@'localhost'
    -> with grant option;

上記二つ、つまり

mysql> CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
mysql> grant all privileges on dotinstall_db.* to 'dbuser'@'localhost'
    -> with grant option;

これらを実行することで、

$ mysql -u username -p

を実行してパスワードを入力すると入れました。

感想

ほんと一つずつうまく行かなくて全然進まない。
なんか他の環境を使えばもっと楽になるらしいですが、しっかり理解したいので、ローカル環境を使おうと思っているけど、

  1. バージョンごとの違い
  2. ディレクトリの違い

などでとにかくつまづく。でもその辺りの違いをしっかり理解していなければ、状況ごとに柔軟に対処できなくなると思うので、なんとか解決しながら進みたい!と決意。

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
5