MySQL に接続する
コネクターについての概要は以下のリンクを参照してください。- ダッシュボード
- ローカル
1
Connectorを作成する
トップページの「Connectors」タブを選択し「Create」ボタンを押下します。

2
MySQLの認証情報を入力する
表示されたフォームに接続するデータベースの認証情報を入力します。
リモートサーバー経由で接続する場合は「SSH」の欄にチェックを入れ任意の項目も入力します。入力後Createボタンを押下すると作成が完了します。パラメータに不備がある場合はエラーが表示されるため接続内容が正しいか再度ご確認ください。

| 項目名 | 説明 | 必須 | 例 |
|---|---|---|---|
Host | データベースのホスト名を入力します。 | ✅ | example.com |
Port | データベースの接続ポートを入力します。 | ✅ | 3306 |
Database | データベース名を入力します。 | ✅ | my_database |
Username | データベースのユーザー名を入力します。 | ✅ | db_user |
Password | データベースのユーザーのパスワードを入力します。 | ✅ | mypassword |
SSH | SSH接続を使用する場合に指定します。 | ||
SSH Host | リモートサーバーのホスト名を入力します。 | ssh.example.com | |
SSH Port | リモートサーバーの接続ポートを入力します。 | 22 | |
SSH Username | リモートサーバーのユーザー名を入力します。 | ssh_user | |
SSH Password | リモートサーバーのユーザーのパスワードを入力します。 | sshpassword | |
SSH Private Key | リモートサーバーの秘密鍵を入力します。 | -----BEGIN RSA PRIVATE KEY----- | |
SSH Passphrase | リモートサーバーの秘密鍵のパスフレーズを入力します。 | my_passphrase |
接続先のデータベースの IP ホワイトリストに必ず
54.150.149.0/32からのアクセスを許可するように設定してください。3
作成したデータベースに接続する
作成が成功すると一覧表示からコネクター名を取得することができます。アイコン横の文字列が
SQLまたはPythonのコードに作成したコネクター名を入力しデータを取得します。
connection_nameです。これを使用することでコード上でデータベースに接続可能です。
{{
config(
connection="connection_name"
)
}}
select * from table_name
import morph
from morph import MorphGlobalContext
from morph_lib.database import execute_sql
@morph.func
def main(context: MorphGlobalContext):
df = execute_sql(
sql="SELECT * from table_name"
connection="connection_name"
)
return df
1
morph initコマンドを実行する
morph initコマンドを実行してDBの接続情報を~/.morph/connections.ymlに保存します。Shell
morph init
morphパッケージのインストールを行なっていない場合は事前に下記のコマンドでインストールしてからお進みください。
shell
pip install morph-data
Shell
Select your database type:
1. PostgreSQL
2. MySQL
3. Redshift
4. SQLServer
5. Snowflake (User/Password)
6. BigQuery (Service Account)
Enter the number corresponding to your database type: 2
MySQL selected.
slugはコネクター名として扱うもので、この名前をSQLもしくはPythonで指定します。以下の入力例は実際に接続できる値に置き換えてください。shell
Create a slug for your connection: mysql-connection
Enter your MySQL host (default: localhost): localhost
Enter your MySQL username: your_user_name
Enter your MySQL password: your_password
Enter your MySQL port (default: 3306): 3306
Enter your MySQL database name: your_database_name
Enter your MySQL schema name (default: public): public
Select if you are using SSH tunneling (y/n): n
shell
Successfully initialized! 🎉
You can edit your connection details in `path_to_connections.yml`
connections.ymlは以下のように保存されています。他のコネクターを作成した場合はconnections以下に追加されます。shell
cat ~/.morph/connections.yml
connections:
mysql-connection: # コネクター名
dbname: your_database_name
host: localhost
password: your_password
port: 3306
schema_: public
ssh_host: null
ssh_password: null
ssh_port: null
ssh_private_key: null
ssh_user: null
type: mysql # 固定
user: your_user_name
2
コード上でコネクターを使いデータを取得する
SQLまたはPythonのコードに作成したコネクター名を入力しデータを取得します。
{{
config(
connection="connection_name"
)
}}
select * from table_name
import morph
from morph import MorphGlobalContext
from morph_lib.database import execute_sql
@morph.func
def main(context: MorphGlobalContext):
df = execute_sql(
sql="SELECT * from table_name"
connection="connection_name"
)
return df
実際にコネクターを指定してファイルを実行した場合の優先順位は以下の通りです。
また
morph deployを行なった環境ではダッシュボードで作成したコネクターのみが使用可能なため注意してください。- ローカルマシンの
~/.morph/connections.ymlに記載されたコネクター - クラウドで登録されたコネクター