ike81818
@ike81818

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!

PlanetScaleにローカルデータベースをインポートしたい

解決したいこと

PlanetScaleにローカルで作成したMySQLデータベースをインポートしたいです。
設定が間違っているのか?それとも、ローカルDBはインポートできないのでしょうか?
どなたかわかる方、教えていただければ幸いです。

経緯

Next.jsから、クラウドデータベースを利用したいと考え、
https://zenn.dev/nbr41to/articles/adabca83b2e6ea
を参考にして、プログラムを作成し、PlanetScale上のMySQLデータベースにテストデータを入力して、データ取得することまではできたのですが、
大量のCSVデータをインポートする必要があるため、一旦ローカルのMySQLにインポートして、それをPlanetScaleのMySQLデータベースにコピーしようと考えました。

試した設定内容

スクリーンショット 2022-06-20 10.48.49.png

発生している問題・エラー

スクリーンショット 2022-06-20 10.49.02.png

Host name に 127.0.0.1 を設定した場合

スクリーンショット 2022-06-21 9.40.15.png
スクリーンショット 2022-06-21 9.40.33.png

ファイアウォールをオフにして同じ作業をしてみました

スクリーンショット 2022-06-21 9.48.40.png
結果は同じでした。

コンソールからのログイン確認

% mysql -u ユーザー名 -p -h ホスト名 -P ポート番号 データベース名
※ MySQLは、MAMPのものを使用
スクリーンショット 2022-06-21 9.20.39.png
スクリーンショット 2022-06-21 9.21.23.png
ログインできました。

hostsの設定

スクリーンショット 2022-06-21 9.33.03.png

参考

0

1Answer

planetscaleというのが何かすら分からないのですが、もしかして、ひょっとすると、localhostが127.0.0.1に紐づけされていないということじゃないでしょうか??hostsとかちゃんと設定されていますか?あと、ポート番号が違うとか、ファイアウォールとか…エラーメッセージを見た感じ、接続自体に失敗している感じのようですが。

1Like

Comments

  1. @ike81818

    Questioner

    お返事ありがとうございます。
    ご指摘の内容を一つずつチェックしてみました。(結果を投稿に追加しました。)
    また何かお気づきの点があれば、教えてください。
  2. あー、なんか、変な手間取らせて申し訳ないです。

    ちょっと気になったので(PlanetScaleって知らなかった。便利そうですね)調べてみたのですが、

    https://docs.planetscale.com/concepts/database-imports

    この画面から行こうとしてるんですよね…なんか、パッと見た印象なのであれげですが、この感じだとグローバルに公開されているDBからデータをインポートするような機能な気がします…localhostってのは対応してないんじゃないかなぁ。あくまで、PlanetScale側から見えるhostnameじゃないとダメっぽい感じがしませんかね?

    なんか、たいして知りもしないので横やりっぽくて申し訳ないですが、その画面から行くのは諦めて、shellを叩いて、PlanetScale側に直接CSVをインポートってできないのだろうか?

    https://docs.planetscale.com/reference/shell

    もしかしてひょっとすると、Qiitaのネタに私も使ってみるかもしれません。そのとき、うまく行ったら、またコメントしに来ます。
  3. 暇だったので、ちょっと試してみたのですが、ローカルからpscaleを使ってCSVインポートとかってできないみたいです(local-infileをONにできない)。

    なので、ローカルにCSVがあるのなら、pscaleコマンドと適当なスクリプトを使って流し込むことはできます(ただ、PlanetScaleはSSLじゃなくても接続を受け付けるので、大事なデータだったら、その辺の設定はしっかり確認しないとダメ!)

    というわけで、もしかしたら役に立たないかもしれませんが:

    まず、PlanetScaleからpscaleコマンドを入手(Macならbrewで入るっぽい。いーなー、私はゲームやりたいからWindowsなのだ!)。

    pscale authを実行するとブラウザが開きます。コードが出てくるけど普通に確認するとpscaleでPlanetScale側のデータベースに接続できるようになる。

    pscale connectとやると、なんと、PlanetScale側のDBがローカルにバインドされます。こんな感じ↓。すごーい。

    ```
    D:\Project\bin>pscale connect [DB名] main
    Tried address 127.0.0.1:3306, but it's already in use. Picking up a random port ...
    Secure connection to database raido666 and branch main is established!.

    Local address to connect your application: 127.0.0.1:62724 (press ctrl-c to quit)
    ```

    これで、ローカルポートからPlanetScaleのDBにアクセスできるので、後はなんでもいいから、好きなスクリプト言語でCSVを読み込んでINSERTすればよいのじゃないかなぁ…。

Your answer might help someone💌