1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【MySQL】Nuxt.jsにSequelizeを導入時遭遇したDB周りのエラー【Nuxt.js】

Posted at

Nuxt.js,Vuetifyにてスクレイピングアプリを作成中。
MySQLを導入し、Node.jsのライブラリであるSequelizeを導入している際のエラー。
どちらかというとSequelizeというよりはMySQLのエラーなのですが、備忘録かつ一助となればと思い、記します。
Sequelize...MySQL等のDBに簡単にアクセスできるNode.jsのライブラリ。

エラー1 「ERROR: connect ECONNREFUSED 127.0.0.1:3306」

local
$ npx sequelize-cli model:generate --name User --attributes name:string,itemName:string,price:integer,material:string,brandStyleId:string

$ New model was created at /Users/../Desktop/nuxt-scraping-app/models/user.js .
New migration was created at /Users/../Desktop/nuxt-scraping-app/migrations/20201218120926-create-user.js .

上記によりテーブルとカラムを正常に作成した。そして、

local
$ npx sequelize-cli db:migrate

によりmigrateしようとすると、

local
ERROR: connect ECONNREFUSED 127.0.0.1:3306

接続エラーが発生。

local
$ mysql -u root -D database_development -p -P 3306
$ ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)

?...なぜか接続できない。
初歩的なミスに気づく。そもそもMySQLサービスをスタートさせていない。

local
$ sudo mysql.server start
Starting MySQL
 SUCCESS! 

#エラー2  「ERROR: Access denied for user 'root'@'127.0.0.1' to database 'database_development」
こうしてようやくMySQLにログインできたので、再度migrate実行。

local
$ npx sequelize-cli db:migrate
$ ERROR: Access denied for user 'root'@'127.0.0.1' to database 'database_development'

接続が拒否される。何故だろうと思ったが、以前に同じようなエラーに遭遇し、権限関連のエラーと判定したため権限確認。

local
mysql> show grants for root@'127.0.0.1';
+------------------------------------------+
| Grants for root@127.0.0.1                |
+------------------------------------------+
| GRANT USAGE ON *.* TO `root`@`127.0.0.1` |
+------------------------------------------+
1 row in set (0.00 sec)

config.jsonのユーザー・hostで権限確認するとやはりアクセス権限が付与されていないことを確認。

local
mysql> GRANT ALL PRIVILEGES ON database_development.* TO root@'127.0.0.1';# 当該DBへのアクセス権限付与
mysql> show grants for root@'127.0.0.1';
+------------------------------------------------------------------------+
| Grants for root@127.0.0.1                                              |
+------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `root`@`127.0.0.1`                               |
| GRANT ALL PRIVILEGES ON `database_development`.* TO `root`@`127.0.0.1` |
+------------------------------------------------------------------------+
2 rows in set (0.00 sec)

アクセス権限が付与されたことを確認。これでOKなはず!

local
$ npx sequelize-cli db:migrate
Sequelize CLI [Node: 14.4.0, CLI: 6.2.0, ORM: 6.3.5]

Loaded configuration file "config/config.json".
Using environment "development".
== 20201218120925-create-user: migrating =======
== 20201218120925-create-user: migrated (0.023s)

Done!

学び

MySQLでのエラーは権限関連が多いと感じました。実務に駆け出したばかりのエンジニアは自分を含め、DB周りに弱いと聞きます。積極的にMySQLに触れていくことで、慣れると考えます。実務に入る前に再度MySQLに慣れていくことが必要だと感じました。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?