kata_1997
@kata_1997 (mu7kata)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Herokuでのデプロイ中につまづいてます。。

解決したいこと

workbenchでDB情報のインポート時に発生するエラーの解決

概要

PHPで作成したwebアプリをHerokuでデプロイするために、ローカル環境で使っていたデータベースを本番環境に移す作業を行っていますがworkbenchへのDB情報のインポートに苦戦しています。
phpMyAdminでエクスポートしたDB情報をworkbenchにインポートしようとした際にエラーが発生しました。

下記、エラーの解決法を教えていただきたいです。

エラー内容

スクリーンショット 2020-10-05 22.23.16.png
スクリーンショット 2020-10-05 20.41.45.png

↓エラー内容拡大

Unhandled exception: local variable 'pwd' referenced before assignment
Check the log for more details.

ERROR 1044 (42000) at line 22: Access denied for user '*********'@'%' to database 'studydiary'

環境

 【言語】
  PHP 7.3.9
 【DBMS】
  MySQL 5.7.26
 【フレームワーク】
  なし
 【開発環境】
  MacOS Catalina 10.15.5
 【バージョン管理】
  Git 2.24.3

エラーが起こるまでの経緯

①新規リモートリポジトリを作成

②デプロイするディレクトリに移動し、ローカルリポジトリの作成↓

$ git init

③add~push↓

$ git add.
$ git commit -m 'commit'
$ git push origin master

④Herokuにログイン↓

heroku login

⑤Heroku上に新しくアプリケーションを作成↓

$ heroku create munakatatest8
 Warning: heroku update available from 7.35.0 to 7.44.0.
Creating ⬢ munakatatest8... done
https://munakatatest8.herokuapp.com/ | https://git.heroku.com/munakatatest8.git

⑥HerokuのアプリケーションにClearDBを追加↓

$ heroku addons:create cleardb:ignite
Creating cleardb:ignite on ⬢ munakatatest8... free
Created cleardb-rectangular-89660 as CLEARDB_PUCE_URL
Use heroku addons:docs cleardb to view documentation

⑦データベース情報の確認↓

$ heroku config | grep CLEARDB_DATABASE_URL

CLEARDB_DATABASE_URL: mysql://******:******@us-cdbr-east-02.cleardb.com/heroku_dff14ec3ad68e70?reconnect=true
//↓下記のデータが入ってる認識
CLEARDB_DATABASE_URL: mysql://ユーザー名:パスワード@ホスト名/データベース名?reconnect=true

phpmyadmin から使用したいDBをエクスポート↓
スクリーンショット 2020-10-05 20.03.40.png

workbenchを起動し、Connectionを新規作成↓
CLEARDBで取得したユーザー名などを打ち込む
スクリーンショット 2020-10-05 20.17.15.png

『Test Connection』を実行したところ謎のwarningが表示されたが、無視して続行。↓

スクリーンショット 2020-10-05 20.16.57.png

パスワードを再度打ち込み→any continueと進み
『MySQL接続が正常に確立されました』との表示がでたため、↓
スクリーンショット 2020-10-05 20.23.15.png

戻って立ち上げたconectionをクリック
Data Import/Restore画面へ。

⑧エクスポートした、DB情報ファイルを入力、Default Target Schemaに設定したDB名を入力し、『startimport』を押下。↓

ここでエラーが発生しました。↓
スクリーンショット 2020-10-05 22.23.16.png
スクリーンショット 2020-10-05 20.41.45.png

やったこと

エラーが起こった原因としてConnectionユーザーがこのDBの権限が与えられていないからと推測しましたが、権限を与える方法が調べても理解することができませんでした。

解決法の分かるかたおりましたらご教示いただけると大変助かります。
よろしくお願いします。

0

2Answer

@kata_kata_1997 取り急ぎコメントしますが、 ClearDB のパスワードとユーザー名を公開してはだめです。誰でも接続できます。

2Like

Comments

  1. @kata_1997

    Questioner

    コメントありがとうございます!編集いたしました。
  2. @kata_1997

    Questioner

    その後の対応まで助言いただきありがとうございます!!承知いたしました。

エクスポートした SQL に CREATE DATABASE IF NOT EXISTS `studydiary` が含まれていそうです。 ClearDB では既定の heroku_xyz... 以外に新しいデータベースを作ることはできません。 phpMyAdmin で単一のデータベースについてエクスポートするか、 SQL ファイルを直接編集するといいでしょう。

1Like

Comments

  1. @kata_1997

    Questioner

    SQLファイル内にCREATE DATABASE IF NOT EXISTS `studydiary`が確かに存在していたため
    、対象分を削除し、再度インポートしたところ”Import Completed ”となることができました。ありがとうございました。

Your answer might help someone💌